fpPS4/vulkan/Vulkan.pas
2022-06-01 00:19:01 +03:00

38792 lines
1.9 MiB

(*
** Copyright (c) 2015-2016 The Khronos Group Inc.
** Copyright (c) 2016-2021, Benjamin Rosseaux (benjamin@rosseaux.de, the pascal headers)
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
** "Materials"), to deal in the Materials without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Materials, and to
** permit persons to whom the Materials are furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be included
** in all copies or substantial portions of the Materials.
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*)
(*
** This header is generated from the Khronos Vulkan XML API Registry.
**
*)
unit Vulkan;
{$ifdef fpc}
{$mode delphi}
{$z4}
{$packrecords c}
{$define CAN_INLINE}
{$define HAS_ADVANCED_RECORDS}
{$notes off}
{$else}
{$z4}
{$undef CAN_INLINE}
{$undef HAS_ADVANCED_RECORDS}
{$ifdef conditionalexpressions}
{$if CompilerVersion>=24.0}
{$legacyifend on}
{$ifend}
{$if CompilerVersion>=18.0}
{$define CAN_INLINE}
{$define HAS_ADVANCED_RECORDS}
{$ifend}
{$endif}
{$endif}
{$ifdef Win32}
{$define Windows}
{$endif}
{$ifdef Win64}
{$define Windows}
{$endif}
{$ifdef WinCE}
{$define Windows}
{$endif}
{$if defined(Android)}
{$define VK_USE_PLATFORM_ANDROID_KHR}
{$elseif defined(Windows)}
{$define VK_USE_PLATFORM_WIN32_KHR}
{$elseif defined(QNX)}
{$define VK_USE_PLATFORM_QNX_KHR}
{$elseif defined(Unix) or defined(Linux)}
{$ifdef WAYLAND}
{$define VK_USE_PLATFORM_WAYLAND_KHR}
{$endif}
{$ifdef XCB}
{$define VK_USE_PLATFORM_XCB_KHR}
{$endif}
{$ifdef XLIB}
{$define VK_USE_PLATFORM_XLIB_KHR}
{$endif}
{$ifend}
interface
uses {$if defined(Windows)}
Windows,
{$elseif defined(Unix)}
BaseUnix,UnixType,dl,
{$ifend}
{$if defined(XLIB) and defined(VulkanUseXLIBUnits)}x,xlib,{$ifend}
{$if defined(XCB) and defined(VulkanUseXCBUnits)}xcb,{$ifend}
{$if defined(Wayland) and defined(VulkanUseWaylandUnits)}Wayland,{$ifend}
{$if defined(Android) and defined(VulkanUseAndroidUnits)}Android,{$ifend}
{$if defined(Fuchsia) and defined(VulkanUseFuchsiaUnits)}Fuchsia,{$ifend}
{$if defined(DirectFB) and defined(VulkanUseDirectFBUnits)}DirectFB,{$ifend}
{$if defined(QNX) and defined(VulkanUseQNXUnits)}QNX,{$ifend}
SysUtils;
const VK_DEFAULT_LIB_NAME={$ifdef Windows}'vulkan-1.dll'{$else}{$ifdef Android}'libvulkan.so'{$else}{$ifdef Unix}'libvulkan.so.1'{$else}'libvulkan'{$endif}{$endif}{$endif};
type PPVkInt8=^PVkInt8;
PVkInt8=^TVkInt8;
TVkInt8={$ifdef FPC}Int8{$else}ShortInt{$endif};
PPVkUInt8=^PVkUInt8;
PVkUInt8=^TVkUInt8;
TVkUInt8={$ifdef FPC}UInt8{$else}Byte{$endif};
PPVkInt16=^PVkInt16;
PVkInt16=^TVkInt16;
TVkInt16={$ifdef FPC}Int16{$else}SmallInt{$endif};
PPVkUInt16=^PVkUInt16;
PVkUInt16=^TVkUInt16;
TVkUInt16={$ifdef FPC}UInt16{$else}Word{$endif};
PPVkInt32=^PVkInt32;
PVkInt32=^TVkInt32;
TVkInt32={$ifdef FPC}Int32{$else}LongInt{$endif};
PPVkUInt32=^PVkUInt32;
PVkUInt32=^TVkUInt32;
TVkUInt32={$ifdef FPC}UInt32{$else}LongWord{$endif};
PPVkInt64=^PVkInt64;
PVkInt64=^TVkInt64;
TVkInt64=Int64;
PPVkUInt64=^PVkUInt64;
PVkUInt64=^TVkUInt64;
TVkUInt64=UInt64;
PPVkChar=^PVkChar;
PVkChar=PAnsiChar;
TVkChar=AnsiChar;
PPVkPointer=^PVkPointer;
PVkPointer=^TVkPointer;
TVkPointer=Pointer;
PPVkVoid=^PVkVoid;
PVkVoid=Pointer;
TVkVoid=record
end;
PPVkHalfFloat=^PVkHalfFloat;
PVkHalfFloat=^TVkHalfFloat;
TVkHalfFloat=TVkUInt16;
PPVkFloat=^PVkFloat;
PVkFloat=^TVkFloat;
TVkFloat=Single;
PPVkDouble=^PVkDouble;
PVkDouble=^TVkDouble;
TVkDouble=Double;
PPVkPtrUInt=^PVkPtrUInt;
PPVkPtrInt=^PVkPtrInt;
PVkPtrUInt=^TVkPtrUInt;
PVkPtrInt=^TVkPtrInt;
{$ifdef fpc}
TVkPtrUInt=PtrUInt;
TVkPtrInt=PtrInt;
{$undef OldDelphi}
{$else}
{$ifdef conditionalexpressions}
{$if CompilerVersion>=23.0}
{$undef OldDelphi}
TVkPtrUInt=NativeUInt;
TVkPtrInt=NativeInt;
{$else}
{$define OldDelphi}
{$ifend}
{$else}
{$define OldDelphi}
{$endif}
{$endif}
{$ifdef OldDelphi}
{$ifdef cpu64}
TVkPtrUInt=TVkUInt64;
TVkPtrInt=TVkInt64;
{$else}
TVkPtrUInt=TVkUInt32;
TVkPtrInt=TVkInt32;
{$endif}
{$endif}
PPVkSizeUInt=^PVkSizeUInt;
PVkSizeUInt=^TVkSizeUInt;
TVkSizeUInt=TVkPtrUInt;
PPVkSizeInt=^PVkSizeInt;
PVkSizeInt=^TVkSizeInt;
TVkSizeInt=TVkPtrInt;
PPVkSize=^PVkSizeUInt;
PVkSize=^TVkSizeUInt;
TVkSize=TVkPtrUInt;
PPVkPtrDiff=^PVkPtrDiff;
PVkPtrDiff=^TVkPtrDiff;
TVkPtrDiff=TVkPtrInt;
PPVkCharString=^PVkCharString;
PVkCharString=^TVkCharString;
TVkCharString=AnsiString;
{$ifdef Android}
PPVkAndroidANativeWindow=^PVkAndroidANativeWindow;
PVkAndroidANativeWindow={$ifdef VulkanUseAndroidUnits}PANativeWindow{$else}TVkPointer{$endif};
PPVkAndroidAHardwareBuffer=^PVkAndroidAHardwareBuffer;
PVkAndroidAHardwareBuffer={$ifdef VulkanUseAndroidUnits}PAHardwareBuffer{$else}TVkPointer{$endif};
{$endif}
{$ifdef Fuchsia}
PPVkFuchsiaZXHandle=^PVkFuchsiaZXHandle;
PVkFuchsiaZXHandle=^TVkFuchsiaZXHandle;
TVkFuchsiaZXHandle={$ifdef VulkanUseFuchsiaUnits}Tzx_handle_t{$else}TVkSizeUInt{$endif};
{$endif}
{$ifdef DirectFB}
PPVkDirectFBIDirectFB=^PVkDirectFBIDirectFB;
PVkDirectFBIDirectFB=^TVkDirectFBIDirectFB;
TVkDirectFBIDirectFB={$ifdef VulkanUseDirectFBUnits}IDirectFB{$else}TVkSizeUInt{$endif};
PPVkDirectFBIDirectFBSurface=^PVkDirectFBIDirectFBSurface;
PVkDirectFBIDirectFBSurface=^TVkDirectFBIDirectFBSurface;
TVkDirectFBIDirectFBSurface={$ifdef VulkanUseDirectFBUnits}IDirectFBSurface{$else}TVkSizeUInt{$endif};
{$endif}
{$ifdef Wayland}
PPVkWaylandDisplay=^PVkWaylandDisplay;
PVkWaylandDisplay={$ifdef VulkanUseWaylandUnits}Pwl_display{$else}TVkPointer{$endif};
PPVkWaylandSurface=^PVkWaylandSurface;
PVkWaylandSurface={$ifdef VulkanUseWaylandUnits}Pwl_surface{$else}TVkPointer{$endif};
{$endif}
{$ifdef XCB}
PPVkXCBConnection=^PVkXCBConnection;
PVkXCBConnection={$ifdef VulkanUseXCBUnits}Pxcb_connection_t{$else}TVkPointer{$endif};
PPVkXCBVisualID=^PVkXCBVisualID;
PVkXCBVisualID={$ifdef VulkanUseXCBUnits}Pxcb_visualid_t{$else}^TVkXCBVisualID{$endif};
TVkXCBVisualID={$if defined(VulkanUseXCBUnits)}Pxcb_visualid_t{$elseif defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
PPVkXCBWindow=^PVkXCBWindow;
PVkXCBWindow={$ifdef VulkanUseXCBUnits}Pxcb_window_t{$else}^TVkXCBWindow{$endif};
TVkXCBWindow={$if defined(VulkanUseXCBUnits)}Txcb_window_t{$elseif defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
{$endif}
{$ifdef XLIB}
PPVkXLIBDisplay=^PVkXLIBDisplay;
PVkXLIBDisplay={$ifdef VulkanUseXLIBUnits}PDisplay{$else}TVkPointer{$endif};
{$ifdef VulkanUseXLIBUnits}TVkXLIBDisplay=TDisplay;{$endif}
PPVkXLIBVisualID=^PVkXLIBVisualID;
PVkXLIBVisualID={$ifdef VulkanUseXLIBUnits}PVisualID{$else}^TVkXLIBVisualID{$endif};
TVkXLIBVisualID={$if defined(VulkanUseXLIBUnits)}TVisualID{$elseif defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
PPVkXLIBWindow=^PVkXLIBWindow;
PVkXLIBWindow={$ifdef VulkanUseXLIBUnits}PWindow{$else}^TVkXLIBWindow{$endif};
TVkXLIBWindow={$if defined(VulkanUseXLIBUnits)}TWindow{$elseif defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
{$endif}
{$ifdef QNX}
PPVkQNXScreenContext=^PVkQNXScreenContext;
PVkQNXScreenContext=^TVkQNXScreenContext;
TVkQNXScreenContext={$if defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
PPVkQNXScreenWindow=^PVkQNXScreenWindow;
PVkQNXScreenWindow=^TVkQNXScreenWindow;
TVkQNXScreenWindow={$if defined(CPU64)}TVkUInt64{$else}TVKUInt32{$ifend};
{$endif}
TVkNonDefinedType=pointer;
PPVkGgpStreamDescriptor=^PVkGgpStreamDescriptor;
PVkGgpStreamDescriptor=^TVkGgpStreamDescriptor;
TVkGgpStreamDescriptor=TVkNonDefinedType;
PPVkGgpFrameToken=^PVkGgpFrameToken;
PVkGgpFrameToken=^TVkGgpFrameToken;
TVkGgpFrameToken=TVkNonDefinedType;
PPVkCAMetalLayer=^PVkCAMetalLayer;
PVkCAMetalLayer=^TVkCAMetalLayer;
TVkCAMetalLayer=TVkNonDefinedType;
const VK_NULL_HANDLE=0;
VK_NULL_INSTANCE=0;
VK_API_VERSION_WITHOUT_PATCH_MASK=TVkUInt32($fffff000);
VK_API_VERSION=(0 shl 29) or (1 shl 22) or (0 shl 12) or (0 shl 0);
VK_API_VERSION_1_0=(0 shl 29) or (1 shl 22) or (0 shl 12) or (0 shl 0);
VK_API_VERSION_1_1=(0 shl 29) or (1 shl 22) or (1 shl 12) or (0 shl 0);
VK_API_VERSION_1_2=(0 shl 29) or (1 shl 22) or (2 shl 12) or (0 shl 0);
VK_HEADER_VERSION=185;
VK_HEADER_VERSION_COMPLETE=(0 shl 29) or (1 shl 22) or (2 shl 12) or (VK_HEADER_VERSION shl 0);
VK_MAX_PHYSICAL_DEVICE_NAME_SIZE=256;
VK_UUID_SIZE=16;
VK_LUID_SIZE=8;
VK_LUID_SIZE_KHR=VK_LUID_SIZE;
VK_MAX_EXTENSION_NAME_SIZE=256;
VK_MAX_DESCRIPTION_SIZE=256;
VK_MAX_MEMORY_TYPES=32;
VK_MAX_MEMORY_HEAPS=16; //< The maximum number of unique memory heaps, each of which supporting 1 or more memory types
VK_LOD_CLAMP_NONE=1000.0;
VK_REMAINING_MIP_LEVELS=TVkUInt32($ffffffff);
VK_REMAINING_ARRAY_LAYERS=TVkUInt32($ffffffff);
VK_WHOLE_SIZE=TVkUInt64($ffffffffffffffff);
VK_ATTACHMENT_UNUSED=TVkUInt32($ffffffff);
VK_TRUE=1;
VK_FALSE=0;
VK_QUEUE_FAMILY_IGNORED=TVkUInt32($ffffffff);
VK_QUEUE_FAMILY_EXTERNAL=TVkUInt32($fffffffe);
VK_QUEUE_FAMILY_EXTERNAL_KHR=VK_QUEUE_FAMILY_EXTERNAL;
VK_QUEUE_FAMILY_FOREIGN_EXT=TVkUInt32($fffffffd);
VK_SUBPASS_EXTERNAL=TVkUInt32($ffffffff);
VK_MAX_DEVICE_GROUP_SIZE=32;
VK_MAX_DEVICE_GROUP_SIZE_KHR=VK_MAX_DEVICE_GROUP_SIZE;
VK_MAX_DRIVER_NAME_SIZE=256;
VK_MAX_DRIVER_NAME_SIZE_KHR=VK_MAX_DRIVER_NAME_SIZE;
VK_MAX_DRIVER_INFO_SIZE=256;
VK_MAX_DRIVER_INFO_SIZE_KHR=VK_MAX_DRIVER_INFO_SIZE;
VK_SHADER_UNUSED_KHR=TVkUInt32($ffffffff);
VK_SHADER_UNUSED_NV=VK_SHADER_UNUSED_KHR;
VK_MAX_GLOBAL_PRIORITY_SIZE_EXT=16;
VK_KHR_SURFACE_SPEC_VERSION=25;
VK_KHR_SURFACE_EXTENSION_NAME='VK_KHR_surface';
VK_KHR_SWAPCHAIN_SPEC_VERSION=70;
VK_KHR_SWAPCHAIN_EXTENSION_NAME='VK_KHR_swapchain';
VK_KHR_DISPLAY_SPEC_VERSION=23;
VK_KHR_DISPLAY_EXTENSION_NAME='VK_KHR_display';
VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION=10;
VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME='VK_KHR_display_swapchain';
VK_KHR_XLIB_SURFACE_SPEC_VERSION=6;
VK_KHR_XLIB_SURFACE_EXTENSION_NAME='VK_KHR_xlib_surface';
VK_KHR_XCB_SURFACE_SPEC_VERSION=6;
VK_KHR_XCB_SURFACE_EXTENSION_NAME='VK_KHR_xcb_surface';
VK_KHR_WAYLAND_SURFACE_SPEC_VERSION=6;
VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME='VK_KHR_wayland_surface';
VK_KHR_MIR_SURFACE_SPEC_VERSION=4;
VK_KHR_MIR_SURFACE_EXTENSION_NAME='VK_KHR_mir_surface';
VK_KHR_ANDROID_SURFACE_SPEC_VERSION=6;
VK_KHR_ANDROID_SURFACE_EXTENSION_NAME='VK_KHR_android_surface';
VK_KHR_WIN32_SURFACE_SPEC_VERSION=6;
VK_KHR_WIN32_SURFACE_EXTENSION_NAME='VK_KHR_win32_surface';
VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION=8;
VK_ANDROID_NATIVE_BUFFER_NUMBER=11;
VK_ANDROID_NATIVE_BUFFER_NAME='VK_ANDROID_native_buffer';
VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME=VK_ANDROID_NATIVE_BUFFER_NAME;
VK_EXT_DEBUG_REPORT_SPEC_VERSION=10;
VK_EXT_DEBUG_REPORT_EXTENSION_NAME='VK_EXT_debug_report';
VK_NV_GLSL_SHADER_SPEC_VERSION=1;
VK_NV_GLSL_SHADER_EXTENSION_NAME='VK_NV_glsl_shader';
VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION=1;
VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME='VK_EXT_depth_range_unrestricted';
VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION=3;
VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME='VK_KHR_sampler_mirror_clamp_to_edge';
VK_IMG_FILTER_CUBIC_SPEC_VERSION=1;
VK_IMG_FILTER_CUBIC_EXTENSION_NAME='VK_IMG_filter_cubic';
VK_AMD_EXTENSION_17_SPEC_VERSION=0;
VK_AMD_EXTENSION_17_EXTENSION_NAME='VK_AMD_extension_17';
VK_AMD_EXTENSION_18_SPEC_VERSION=0;
VK_AMD_EXTENSION_18_EXTENSION_NAME='VK_AMD_extension_18';
VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION=1;
VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME='VK_AMD_rasterization_order';
VK_AMD_EXTENSION_20_SPEC_VERSION=0;
VK_AMD_EXTENSION_20_EXTENSION_NAME='VK_AMD_extension_20';
VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION=1;
VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME='VK_AMD_shader_trinary_minmax';
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION=1;
VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME='VK_AMD_shader_explicit_vertex_parameter';
VK_EXT_DEBUG_MARKER_SPEC_VERSION=4;
VK_EXT_DEBUG_MARKER_EXTENSION_NAME='VK_EXT_debug_marker';
VK_KHR_VIDEO_QUEUE_SPEC_VERSION=1;
VK_KHR_VIDEO_QUEUE_EXTENSION_NAME='VK_KHR_video_queue';
VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION=1;
VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME='VK_KHR_video_decode_queue';
VK_AMD_GCN_SHADER_SPEC_VERSION=1;
VK_AMD_GCN_SHADER_EXTENSION_NAME='VK_AMD_gcn_shader';
VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION=1;
VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME='VK_NV_dedicated_allocation';
VK_EXT_EXTENSION_28_SPEC_VERSION=0;
VK_EXT_EXTENSION_28_EXTENSION_NAME='VK_NV_extension_28';
VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION=1;
VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME='VK_EXT_transform_feedback';
VK_NVX_BINARY_IMPORT_SPEC_VERSION=1;
VK_NVX_BINARY_IMPORT_EXTENSION_NAME='VK_NVX_binary_import';
VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION=2;
VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME='VK_NVX_image_view_handle';
VK_AMD_EXTENSION_32_SPEC_VERSION=0;
VK_AMD_EXTENSION_32_EXTENSION_NAME='VK_AMD_extension_32';
VK_AMD_EXTENSION_33_SPEC_VERSION=0;
VK_AMD_EXTENSION_33_EXTENSION_NAME='VK_AMD_extension_33';
VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION=2;
VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME='VK_AMD_draw_indirect_count';
VK_AMD_EXTENSION_35_SPEC_VERSION=0;
VK_AMD_EXTENSION_35_EXTENSION_NAME='VK_AMD_extension_35';
VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION=1;
VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME='VK_AMD_negative_viewport_height';
VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION=2;
VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME='VK_AMD_gpu_shader_half_float';
VK_AMD_SHADER_BALLOT_SPEC_VERSION=1;
VK_AMD_SHADER_BALLOT_EXTENSION_NAME='VK_AMD_shader_ballot';
VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION=1;
VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME='VK_EXT_video_encode_h264';
VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION=0;
VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME='VK_EXT_video_encode_h265';
VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION=1;
VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME='VK_EXT_video_decode_h264';
VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION=1;
VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME='VK_AMD_texture_gather_bias_lod';
VK_AMD_SHADER_INFO_SPEC_VERSION=1;
VK_AMD_SHADER_INFO_EXTENSION_NAME='VK_AMD_shader_info';
VK_AMD_EXTENSION_44_SPEC_VERSION=0;
VK_AMD_EXTENSION_44_EXTENSION_NAME='VK_AMD_extension_44';
VK_AMD_EXTENSION_45_SPEC_VERSION=0;
VK_AMD_EXTENSION_45_EXTENSION_NAME='VK_AMD_extension_45';
VK_AMD_EXTENSION_46_SPEC_VERSION=0;
VK_AMD_EXTENSION_46_EXTENSION_NAME='VK_AMD_extension_46';
VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION=1;
VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME='VK_AMD_shader_image_load_store_lod';
VK_NVX_EXTENSION_48_SPEC_VERSION=0;
VK_NVX_EXTENSION_48_EXTENSION_NAME='VK_NVX_extension_48';
VK_GOOGLE_EXTENSION_49_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_49_EXTENSION_NAME='VK_GOOGLE_extension_49';
VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION=1;
VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME='VK_GGP_stream_descriptor_surface';
VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION=2;
VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME='VK_NV_corner_sampled_image';
VK_NV_EXTENSION_52_SPEC_VERSION=0;
VK_NV_EXTENSION_52_EXTENSION_NAME='VK_NV_extension_52';
VK_NV_EXTENSION_53_SPEC_VERSION=0;
VK_NV_EXTENSION_53_EXTENSION_NAME='VK_NV_extension_53';
VK_KHR_MULTIVIEW_SPEC_VERSION=1;
VK_KHR_MULTIVIEW_EXTENSION_NAME='VK_KHR_multiview';
VK_IMG_FORMAT_PVRTC_SPEC_VERSION=1;
VK_IMG_FORMAT_PVRTC_EXTENSION_NAME='VK_IMG_format_pvrtc';
VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION=1;
VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME='VK_NV_external_memory_capabilities';
VK_NV_EXTERNAL_MEMORY_SPEC_VERSION=1;
VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME='VK_NV_external_memory';
VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION=1;
VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME='VK_NV_external_memory_win32';
VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION=2;
VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME='VK_NV_win32_keyed_mutex';
VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION=2;
VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME='VK_KHR_get_physical_device_properties2';
VK_KHR_DEVICE_GROUP_SPEC_VERSION=4;
VK_KHR_DEVICE_GROUP_EXTENSION_NAME='VK_KHR_device_group';
VK_EXT_VALIDATION_FLAGS_SPEC_VERSION=2;
VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME='VK_EXT_validation_flags';
VK_NN_VI_SURFACE_SPEC_VERSION=1;
VK_NN_VI_SURFACE_EXTENSION_NAME='VK_NN_vi_surface';
VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION=1;
VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME='VK_KHR_shader_draw_parameters';
VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION=1;
VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME='VK_EXT_shader_subgroup_ballot';
VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION=1;
VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME='VK_EXT_shader_subgroup_vote';
VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION=1;
VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME='VK_EXT_texture_compression_astc_hdr';
VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION=1;
VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME='VK_EXT_astc_decode_mode';
VK_IMG_EXTENSION_69_SPEC_VERSION=0;
VK_IMG_EXTENSION_69_EXTENSION_NAME='VK_IMG_extension_69';
VK_KHR_MAINTENANCE1_SPEC_VERSION=2;
VK_KHR_MAINTENANCE1_EXTENSION_NAME='VK_KHR_maintenance1';
VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION=1;
VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME='VK_KHR_device_group_creation';
VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION=1;
VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME='VK_KHR_external_memory_capabilities';
VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION=1;
VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME='VK_KHR_external_memory';
VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION=1;
VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME='VK_KHR_external_memory_win32';
VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION=1;
VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME='VK_KHR_external_memory_fd';
VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION=1;
VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME='VK_KHR_win32_keyed_mutex';
VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION=1;
VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME='VK_KHR_external_semaphore_capabilities';
VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION=1;
VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME='VK_KHR_external_semaphore';
VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION=1;
VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME='VK_KHR_external_semaphore_win32';
VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION=1;
VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME='VK_KHR_external_semaphore_fd';
VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION=2;
VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME='VK_KHR_push_descriptor';
VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION=2;
VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME='VK_EXT_conditional_rendering';
VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION=1;
VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME='VK_KHR_shader_float16_int8';
VK_KHR_16BIT_STORAGE_SPEC_VERSION=1;
VK_KHR_16BIT_STORAGE_EXTENSION_NAME='VK_KHR_16bit_storage';
VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION=2;
VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME='VK_KHR_incremental_present';
VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION=1;
VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME='VK_KHR_descriptor_update_template';
VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION=3;
VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME='VK_NVX_device_generated_commands';
VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION=1;
VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME='VK_NV_clip_space_w_scaling';
VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION=1;
VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME='VK_EXT_direct_mode_display';
VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION=1;
VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME='VK_EXT_acquire_xlib_display';
VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION=1;
VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME='VK_EXT_display_surface_counter';
VK_EXT_DISPLAY_CONTROL_SPEC_VERSION=1;
VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME='VK_EXT_display_control';
VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION=1;
VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME='VK_GOOGLE_display_timing';
VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION=1;
VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME='VK_NV_sample_mask_override_coverage';
VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION=1;
VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME='VK_NV_geometry_shader_passthrough';
VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION=1;
VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME='VK_NV_viewport_array2';
VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION=1;
VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME='VK_NVX_multiview_per_view_attributes';
VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION=1;
VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME='VK_NV_viewport_swizzle';
VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION=1;
VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME='VK_EXT_discard_rectangles';
VK_NV_EXTENSION_101_SPEC_VERSION=0;
VK_NV_EXTENSION_101_EXTENSION_NAME='VK_NV_extension_101';
VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION=1;
VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME='VK_EXT_conservative_rasterization';
VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION=1;
VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME='VK_EXT_depth_clip_enable';
VK_NV_EXTENSION_104_SPEC_VERSION=0;
VK_NV_EXTENSION_104_EXTENSION_NAME='VK_NV_extension_104';
VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION=4;
VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME='VK_EXT_swapchain_colorspace';
VK_EXT_HDR_METADATA_SPEC_VERSION=2;
VK_EXT_HDR_METADATA_EXTENSION_NAME='VK_EXT_hdr_metadata';
VK_IMG_EXTENSION_107_SPEC_VERSION=0;
VK_IMG_EXTENSION_107_EXTENSION_NAME='VK_IMG_extension_107';
VK_IMG_EXTENSION_108_SPEC_VERSION=0;
VK_IMG_EXTENSION_108_EXTENSION_NAME='VK_IMG_extension_108';
VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION=1;
VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME='VK_KHR_imageless_framebuffer';
VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION=1;
VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME='VK_KHR_create_renderpass2';
VK_IMG_EXTENSION_111_SPEC_VERSION=0;
VK_IMG_EXTENSION_111_EXTENSION_NAME='VK_IMG_extension_111';
VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION=1;
VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME='VK_KHR_shared_presentable_image';
VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION=1;
VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME='VK_KHR_external_fence_capabilities';
VK_KHR_EXTERNAL_FENCE_SPEC_VERSION=1;
VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME='VK_KHR_external_fence';
VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION=1;
VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME='VK_KHR_external_fence_win32';
VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION=1;
VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME='VK_KHR_external_fence_fd';
VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION=1;
VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME='VK_KHR_performance_query';
VK_KHR_MAINTENANCE2_SPEC_VERSION=1;
VK_KHR_MAINTENANCE2_EXTENSION_NAME='VK_KHR_maintenance2';
VK_KHR_EXTENSION_119_SPEC_VERSION=0;
VK_KHR_EXTENSION_119_EXTENSION_NAME='VK_KHR_extension_119';
VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION=1;
VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME='VK_KHR_get_surface_capabilities2';
VK_KHR_VARIABLE_POINTERS_SPEC_VERSION=1;
VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME='VK_KHR_variable_pointers';
VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION=1;
VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME='VK_KHR_get_display_properties2';
VK_MVK_IOS_SURFACE_SPEC_VERSION=3;
VK_MVK_IOS_SURFACE_EXTENSION_NAME='VK_MVK_ios_surface';
VK_MVK_MACOS_SURFACE_SPEC_VERSION=3;
VK_MVK_MACOS_SURFACE_EXTENSION_NAME='VK_MVK_macos_surface';
VK_MVK_MOLTENVK_SPEC_VERSION=0;
VK_MVK_MOLTENVK_EXTENSION_NAME='VK_MVK_moltenvk';
VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION=1;
VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME='VK_EXT_external_memory_dma_buf';
VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION=1;
VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME='VK_EXT_queue_family_foreign';
VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION=3;
VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME='VK_KHR_dedicated_allocation';
VK_EXT_DEBUG_UTILS_SPEC_VERSION=2;
VK_EXT_DEBUG_UTILS_EXTENSION_NAME='VK_EXT_debug_utils';
VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION=3;
VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME='VK_ANDROID_external_memory_android_hardware_buffer';
VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION=2;
VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME='VK_EXT_sampler_filter_minmax';
VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION=1;
VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME='VK_KHR_storage_buffer_storage_class';
VK_AMD_GPU_SHADER_INT16_SPEC_VERSION=2;
VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME='VK_AMD_gpu_shader_int16';
VK_AMD_EXTENSION_134_SPEC_VERSION=0;
VK_AMD_EXTENSION_134_EXTENSION_NAME='VK_AMD_extension_134';
VK_AMD_EXTENSION_135_SPEC_VERSION=0;
VK_AMD_EXTENSION_135_EXTENSION_NAME='VK_AMD_extension_135';
VK_AMD_EXTENSION_136_SPEC_VERSION=0;
VK_AMD_EXTENSION_136_EXTENSION_NAME='VK_AMD_extension_136';
VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION=1;
VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME='VK_AMD_mixed_attachment_samples';
VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION=1;
VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME='VK_AMD_shader_fragment_mask';
VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION=1;
VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME='VK_EXT_inline_uniform_block';
VK_AMD_EXTENSION_140_SPEC_VERSION=0;
VK_AMD_EXTENSION_140_EXTENSION_NAME='VK_AMD_extension_140';
VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION=1;
VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME='VK_EXT_shader_stencil_export';
VK_AMD_EXTENSION_142_SPEC_VERSION=0;
VK_AMD_EXTENSION_142_EXTENSION_NAME='VK_AMD_extension_142';
VK_AMD_EXTENSION_143_SPEC_VERSION=0;
VK_AMD_EXTENSION_143_EXTENSION_NAME='VK_AMD_extension_143';
VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION=1;
VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME='VK_EXT_sample_locations';
VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION=1;
VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME='VK_KHR_relaxed_block_layout';
VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION=1;
VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME='VK_KHR_get_memory_requirements2';
VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION=1;
VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME='VK_KHR_image_format_list';
VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION=2;
VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME='VK_EXT_blend_operation_advanced';
VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION=1;
VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME='VK_NV_fragment_coverage_to_color';
VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION=11;
VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME='VK_KHR_acceleration_structure';
VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION=1;
VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME='VK_KHR_ray_tracing_pipeline';
VK_KHR_RAY_QUERY_SPEC_VERSION=1;
VK_KHR_RAY_QUERY_EXTENSION_NAME='VK_KHR_ray_query';
VK_NV_EXTENSION_152_SPEC_VERSION=0;
VK_NV_EXTENSION_152_EXTENSION_NAME='VK_NV_extension_152';
VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION=1;
VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME='VK_NV_framebuffer_mixed_samples';
VK_NV_FILL_RECTANGLE_SPEC_VERSION=1;
VK_NV_FILL_RECTANGLE_EXTENSION_NAME='VK_NV_fill_rectangle';
VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION=1;
VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME='VK_NV_shader_sm_builtins';
VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION=1;
VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME='VK_EXT_post_depth_coverage';
VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION=14;
VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME='VK_KHR_sampler_ycbcr_conversion';
VK_KHR_BIND_MEMORY_2_SPEC_VERSION=1;
VK_KHR_BIND_MEMORY_2_EXTENSION_NAME='VK_KHR_bind_memory2';
VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION=1;
VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME='VK_EXT_image_drm_format_modifier';
VK_EXT_EXTENSION_160_SPEC_VERSION=0;
VK_EXT_EXTENSION_160_EXTENSION_NAME='VK_EXT_extension_160';
VK_EXT_VALIDATION_CACHE_SPEC_VERSION=1;
VK_EXT_VALIDATION_CACHE_EXTENSION_NAME='VK_EXT_validation_cache';
VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION=2;
VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME='VK_EXT_descriptor_indexing';
VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION=1;
VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME='VK_EXT_shader_viewport_index_layer';
VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION=1;
VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME='VK_KHR_portability_subset';
VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION=3;
VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME='VK_NV_shading_rate_image';
VK_NV_RAY_TRACING_SPEC_VERSION=3;
VK_NV_RAY_TRACING_EXTENSION_NAME='VK_NV_ray_tracing';
VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION=2;
VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME='VK_NV_representative_fragment_test';
VK_EXT_EXTENSION_168_SPEC_VERSION=0;
VK_EXT_EXTENSION_168_EXTENSION_NAME='VK_NV_extension_168';
VK_KHR_MAINTENANCE3_SPEC_VERSION=1;
VK_KHR_MAINTENANCE3_EXTENSION_NAME='VK_KHR_maintenance3';
VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION=1;
VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME='VK_KHR_draw_indirect_count';
VK_EXT_FILTER_CUBIC_SPEC_VERSION=3;
VK_EXT_FILTER_CUBIC_EXTENSION_NAME='VK_EXT_filter_cubic';
VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION=4;
VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME='VK_QCOM_render_pass_shader_resolve';
VK_QCOM_extension_173_SPEC_VERSION=0;
VK_QCOM_extension_173_EXTENSION_NAME='VK_QCOM_extension_173';
VK_QCOM_extension_174_SPEC_VERSION=0;
VK_QCOM_extension_174_EXTENSION_NAME='VK_QCOM_extension_174';
VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION=2;
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME='VK_EXT_global_priority';
VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION=1;
VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME='VK_KHR_shader_subgroup_extended_types';
VK_KHR_EXTENSION_177_SPEC_VERSION=0;
VK_KHR_EXTENSION_177_EXTENSION_NAME='VK_KHR_extension_177';
VK_KHR_8BIT_STORAGE_SPEC_VERSION=1;
VK_KHR_8BIT_STORAGE_EXTENSION_NAME='VK_KHR_8bit_storage';
VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION=1;
VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME='VK_EXT_external_memory_host';
VK_AMD_BUFFER_MARKER_SPEC_VERSION=1;
VK_AMD_BUFFER_MARKER_EXTENSION_NAME='VK_AMD_buffer_marker';
VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION=1;
VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME='VK_KHR_shader_atomic_int64';
VK_KHR_SHADER_CLOCK_SPEC_VERSION=1;
VK_KHR_SHADER_CLOCK_EXTENSION_NAME='VK_KHR_shader_clock';
VK_KHR_EXTENSION_183_SPEC_VERSION=0;
VK_KHR_EXTENSION_183_EXTENSION_NAME='VK_AMD_extension_183';
VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION=1;
VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME='VK_AMD_pipeline_compiler_control';
VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION=2;
VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME='VK_EXT_calibrated_timestamps';
VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION=2;
VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME='VK_AMD_shader_core_properties';
VK_KHR_EXTENSION_187_SPEC_VERSION=0;
VK_KHR_EXTENSION_187_EXTENSION_NAME='VK_AMD_extension_187';
VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION=1;
VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME='VK_EXT_video_decode_h265';
VK_KHR_EXTENSION_189_SPEC_VERSION=0;
VK_KHR_EXTENSION_189_EXTENSION_NAME='VK_AMD_extension_189';
VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION=1;
VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME='VK_AMD_memory_overallocation_behavior';
VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION=3;
VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME='VK_EXT_vertex_attribute_divisor';
VK_GGP_FRAME_TOKEN_SPEC_VERSION=1;
VK_GGP_FRAME_TOKEN_EXTENSION_NAME='VK_GGP_frame_token';
VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION=1;
VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME='VK_EXT_pipeline_creation_feedback';
VK_GOOGLE_EXTENSION_194_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_194_EXTENSION_NAME='VK_GOOGLE_extension_194';
VK_GOOGLE_EXTENSION_195_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_195_EXTENSION_NAME='VK_GOOGLE_extension_195';
VK_GOOGLE_EXTENSION_196_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_196_EXTENSION_NAME='VK_GOOGLE_extension_196';
VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION=1;
VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME='VK_KHR_driver_properties';
VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION=4;
VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME='VK_KHR_shader_float_controls';
VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION=1;
VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME='VK_NV_shader_subgroup_partitioned';
VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION=1;
VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME='VK_KHR_depth_stencil_resolve';
VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION=1;
VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME='VK_KHR_swapchain_mutable_format';
VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION=1;
VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME='VK_NV_compute_shader_derivatives';
VK_NV_MESH_SHADER_SPEC_VERSION=1;
VK_NV_MESH_SHADER_EXTENSION_NAME='VK_NV_mesh_shader';
VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION=1;
VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME='VK_NV_fragment_shader_barycentric';
VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION=2;
VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME='VK_NV_shader_image_footprint';
VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION=1;
VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME='VK_NV_scissor_exclusive';
VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION=2;
VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME='VK_NV_device_diagnostic_checkpoints';
VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION=2;
VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME='VK_KHR_timeline_semaphore';
VK_KHR_EXTENSION_209_SPEC_VERSION=0;
VK_KHR_EXTENSION_209_EXTENSION_NAME='VK_KHR_extension_209';
VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION=1;
VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME='VK_INTEL_shader_integer_functions2';
VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION=2;
VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME='VK_INTEL_performance_query';
VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION=3;
VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME='VK_KHR_vulkan_memory_model';
VK_EXT_PCI_BUS_INFO_SPEC_VERSION=2;
VK_EXT_PCI_BUS_INFO_EXTENSION_NAME='VK_EXT_pci_bus_info';
VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION=1;
VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME='VK_AMD_display_native_hdr';
VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION=1;
VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME='VK_FUCHSIA_imagepipe_surface';
VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION=1;
VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME='VK_KHR_shader_terminate_invocation';
VK_KHR_EXTENSION_217_SPEC_VERSION=0;
VK_KHR_EXTENSION_217_EXTENSION_NAME='VK_KHR_extension_217';
VK_EXT_METAL_SURFACE_SPEC_VERSION=1;
VK_EXT_METAL_SURFACE_EXTENSION_NAME='VK_EXT_metal_surface';
VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION=1;
VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME='VK_EXT_fragment_density_map';
VK_EXT_EXTENSION_220_SPEC_VERSION=0;
VK_EXT_EXTENSION_220_EXTENSION_NAME='VK_EXT_extension_220';
VK_KHR_EXTENSION_221_SPEC_VERSION=0;
VK_KHR_EXTENSION_221_EXTENSION_NAME='VK_KHR_extension_221';
VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION=1;
VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME='VK_EXT_scalar_block_layout';
VK_EXT_EXTENSION_223_SPEC_VERSION=0;
VK_EXT_EXTENSION_223_EXTENSION_NAME='VK_EXT_extension_223';
VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION=1;
VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME='VK_GOOGLE_hlsl_functionality1';
VK_GOOGLE_DECORATE_STRING_SPEC_VERSION=1;
VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME='VK_GOOGLE_decorate_string';
VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION=2;
VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME='VK_EXT_subgroup_size_control';
VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION=1;
VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME='VK_KHR_fragment_shading_rate';
VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION=1;
VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME='VK_AMD_shader_core_properties2';
VK_AMD_EXTENSION_229_SPEC_VERSION=0;
VK_AMD_EXTENSION_229_EXTENSION_NAME='VK_AMD_extension_229';
VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION=1;
VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME='VK_AMD_device_coherent_memory';
VK_AMD_EXTENSION_231_SPEC_VERSION=0;
VK_AMD_EXTENSION_231_EXTENSION_NAME='VK_AMD_extension_231';
VK_AMD_EXTENSION_232_SPEC_VERSION=0;
VK_AMD_EXTENSION_232_EXTENSION_NAME='VK_AMD_extension_232';
VK_AMD_EXTENSION_233_SPEC_VERSION=0;
VK_AMD_EXTENSION_233_EXTENSION_NAME='VK_AMD_extension_233';
VK_AMD_EXTENSION_234_SPEC_VERSION=0;
VK_AMD_EXTENSION_234_EXTENSION_NAME='VK_AMD_extension_234';
VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION=1;
VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME='VK_EXT_shader_image_atomic_int64';
VK_AMD_EXTENSION_236_SPEC_VERSION=0;
VK_AMD_EXTENSION_236_EXTENSION_NAME='VK_AMD_extension_236';
VK_KHR_SPIRV_1_4_SPEC_VERSION=1;
VK_KHR_SPIRV_1_4_EXTENSION_NAME='VK_KHR_spirv_1_4';
VK_EXT_MEMORY_BUDGET_SPEC_VERSION=1;
VK_EXT_MEMORY_BUDGET_EXTENSION_NAME='VK_EXT_memory_budget';
VK_EXT_MEMORY_PRIORITY_SPEC_VERSION=1;
VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME='VK_EXT_memory_priority';
VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION=1;
VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME='VK_KHR_surface_protected_capabilities';
VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION=1;
VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME='VK_NV_dedicated_allocation_image_aliasing';
VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION=1;
VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME='VK_KHR_separate_depth_stencil_layouts';
VK_INTEL_EXTENSION_243_SPEC_VERSION=0;
VK_INTEL_EXTENSION_243_EXTENSION_NAME='VK_INTEL_extension_243';
VK_MESA_EXTENSION_244_SPEC_VERSION=0;
VK_MESA_EXTENSION_244_EXTENSION_NAME='VK_MESA_extension_244';
VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION=2;
VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME='VK_EXT_buffer_device_address';
VK_EXT_TOOLING_INFO_SPEC_VERSION=1;
VK_EXT_TOOLING_INFO_EXTENSION_NAME='VK_EXT_tooling_info';
VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION=1;
VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME='VK_EXT_separate_stencil_usage';
VK_EXT_VALIDATION_FEATURES_SPEC_VERSION=5;
VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME='VK_EXT_validation_features';
VK_KHR_PRESENT_WAIT_SPEC_VERSION=1;
VK_KHR_PRESENT_WAIT_EXTENSION_NAME='VK_KHR_present_wait';
VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION=1;
VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME='VK_NV_cooperative_matrix';
VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION=1;
VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME='VK_NV_coverage_reduction_mode';
VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION=1;
VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME='VK_EXT_fragment_shader_interlock';
VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION=1;
VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME='VK_EXT_ycbcr_image_arrays';
VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION=1;
VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME='VK_KHR_uniform_buffer_standard_layout';
VK_EXT_PROVOKING_VERTEX_SPEC_VERSION=1;
VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME='VK_EXT_provoking_vertex';
VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION=4;
VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME='VK_EXT_full_screen_exclusive';
VK_EXT_HEADLESS_SURFACE_SPEC_VERSION=1;
VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME='VK_EXT_headless_surface';
VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION=1;
VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME='VK_KHR_buffer_device_address';
VK_EXT_EXTENSION_259_SPEC_VERSION=0;
VK_EXT_EXTENSION_259_EXTENSION_NAME='VK_EXT_extension_259';
VK_EXT_LINE_RASTERIZATION_SPEC_VERSION=1;
VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME='VK_EXT_line_rasterization';
VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION=1;
VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME='VK_EXT_shader_atomic_float';
VK_EXT_HOST_QUERY_RESET_SPEC_VERSION=1;
VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME='VK_EXT_host_query_reset';
VK_GOOGLE_EXTENSION_263_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_263_EXTENSION_NAME='VK_GGP_extension_263';
VK_BRCM_EXTENSION_264_SPEC_VERSION=0;
VK_BRCM_EXTENSION_264_EXTENSION_NAME='VK_BRCM_extension_264';
VK_BRCM_EXTENSION_265_SPEC_VERSION=0;
VK_BRCM_EXTENSION_265_EXTENSION_NAME='VK_BRCM_extension_265';
VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION=1;
VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME='VK_EXT_index_type_uint8';
VK_EXT_EXTENSION_267_SPEC_VERSION=0;
VK_EXT_extension_267='VK_EXT_extension_267';
VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION=1;
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME='VK_EXT_extended_dynamic_state';
VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION=4;
VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME='VK_KHR_deferred_host_operations';
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION=1;
VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME='VK_KHR_pipeline_executable_properties';
VK_INTEL_EXTENSION_271_SPEC_VERSION=0;
VK_INTEL_extension_271='VK_KHR_extension_271';
VK_INTEL_EXTENSION_272_SPEC_VERSION=0;
VK_INTEL_extension_272='VK_KHR_extension_272';
VK_INTEL_EXTENSION_273_SPEC_VERSION=0;
VK_INTEL_extension_273='VK_KHR_extension_273';
VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION=1;
VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME='VK_EXT_shader_atomic_float2';
VK_KHR_EXTENSION_275_SPEC_VERSION=0;
VK_KHR_extension_275='VK_KHR_extension_275';
VK_KHR_EXTENSION_276_SPEC_VERSION=0;
VK_KHR_extension_276='VK_KHR_extension_276';
VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION=1;
VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME='VK_EXT_shader_demote_to_helper_invocation';
VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION=3;
VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME='VK_NV_device_generated_commands';
VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION=1;
VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME='VK_NV_inherited_viewport_scissor';
VK_KHR_EXTENSION_280_SPEC_VERSION=0;
VK_KHR_extension_280='VK_KHR_extension_280';
VK_ARM_EXTENSION_281_SPEC_VERSION=0;
VK_ARM_extension_281='VK_ARM_extension_281';
VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION=1;
VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME='VK_EXT_texel_buffer_alignment';
VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION=2;
VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME='VK_QCOM_render_pass_transform';
VK_EXT_EXTENSION_284_SPEC_VERSION=0;
VK_EXT_extension_284='VK_EXT_extension_284';
VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION=2;
VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME='VK_EXT_device_memory_report';
VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION=1;
VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME='VK_EXT_acquire_drm_display';
VK_EXT_ROBUSTNESS_2_SPEC_VERSION=1;
VK_EXT_ROBUSTNESS_2_EXTENSION_NAME='VK_EXT_robustness2';
VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION=12;
VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME='VK_EXT_custom_border_color';
VK_EXT_EXTENSION_289_SPEC_VERSION=0;
VK_EXT_EXTENSION_289_EXTENSION_NAME='VK_EXT_extension_289';
VK_GOOGLE_USER_TYPE_SPEC_VERSION=1;
VK_GOOGLE_USER_TYPE_EXTENSION_NAME='VK_GOOGLE_user_type';
VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION=1;
VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME='VK_KHR_pipeline_library';
VK_NV_EXTENSION_292_SPEC_VERSION=0;
VK_NV_EXTENSION_292_EXTENSION_NAME='VK_NV_extension_292';
VK_NV_EXTENSION_293_SPEC_VERSION=0;
VK_NV_EXTENSION_293_EXTENSION_NAME='VK_NV_extension_293';
VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION=1;
VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME='VK_KHR_shader_non_semantic_info';
VK_KHR_PRESENT_ID_SPEC_VERSION=1;
VK_KHR_PRESENT_ID_EXTENSION_NAME='VK_KHR_present_id';
VK_EXT_PRIVATE_DATA_SPEC_VERSION=1;
VK_EXT_PRIVATE_DATA_EXTENSION_NAME='VK_EXT_private_data';
VK_KHR_EXTENSION_297_SPEC_VERSION=0;
VK_KHR_EXTENSION_297_EXTENSION_NAME='VK_KHR_extension_297';
VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION=3;
VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME='VK_EXT_pipeline_creation_cache_control';
VK_KHR_EXTENSION_299_SPEC_VERSION=0;
VK_KHR_EXTENSION_299_EXTENSION_NAME='VK_KHR_extension_299';
VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION=2;
VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME='VK_KHR_video_encode_queue';
VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION=1;
VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME='VK_NV_device_diagnostics_config';
VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION=2;
VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME='VK_QCOM_render_pass_store_ops';
VK_QCOM_extension_303_SPEC_VERSION=0;
VK_QCOM_extension_303_EXTENSION_NAME='VK_QCOM_extension_303';
VK_QCOM_extension_304_SPEC_VERSION=0;
VK_QCOM_extension_304_EXTENSION_NAME='VK_QCOM_extension_304';
VK_QCOM_extension_305_SPEC_VERSION=0;
VK_QCOM_extension_305_EXTENSION_NAME='VK_QCOM_extension_305';
VK_QCOM_extension_306_SPEC_VERSION=0;
VK_QCOM_extension_306_EXTENSION_NAME='VK_QCOM_extension_306';
VK_QCOM_extension_307_SPEC_VERSION=0;
VK_QCOM_extension_307_EXTENSION_NAME='VK_QCOM_extension_307';
VK_NV_EXTENSION_308_SPEC_VERSION=0;
VK_NV_EXTENSION_308_EXTENSION_NAME='VK_NV_extension_308';
VK_KHR_EXTENSION_309_SPEC_VERSION=0;
VK_KHR_EXTENSION_309_EXTENSION_NAME='VK_KHR_extension_309';
VK_QCOM_extension_310_SPEC_VERSION=0;
VK_QCOM_extension_310_EXTENSION_NAME='VK_QCOM_extension_310';
VK_NV_EXTENSION_311_SPEC_VERSION=0;
VK_NV_EXTENSION_311_EXTENSION_NAME='VK_NV_extension_311';
VK_EXT_EXTENSION_312_SPEC_VERSION=0;
VK_EXT_EXTENSION_312_EXTENSION_NAME='VK_EXT_extension_312';
VK_EXT_EXTENSION_313_SPEC_VERSION=0;
VK_EXT_EXTENSION_313_EXTENSION_NAME='VK_EXT_extension_313';
VK_AMD_EXTENSION_314_SPEC_VERSION=0;
VK_AMD_EXTENSION_314_EXTENSION_NAME='VK_AMD_extension_314';
VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION=1;
VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME='VK_KHR_synchronization2';
VK_AMD_EXTENSION_316_SPEC_VERSION=0;
VK_AMD_EXTENSION_316_EXTENSION_NAME='VK_AMD_extension_316';
VK_AMD_EXTENSION_317_SPEC_VERSION=0;
VK_AMD_EXTENSION_317_EXTENSION_NAME='VK_AMD_extension_317';
VK_AMD_EXTENSION_318_SPEC_VERSION=0;
VK_AMD_EXTENSION_318_EXTENSION_NAME='VK_AMD_extension_318';
VK_AMD_EXTENSION_319_SPEC_VERSION=0;
VK_AMD_EXTENSION_319_EXTENSION_NAME='VK_AMD_extension_319';
VK_AMD_EXTENSION_320_SPEC_VERSION=0;
VK_AMD_EXTENSION_320_EXTENSION_NAME='VK_AMD_extension_320';
VK_AMD_EXTENSION_321_SPEC_VERSION=0;
VK_AMD_EXTENSION_321_EXTENSION_NAME='VK_AMD_extension_321';
VK_AMD_EXTENSION_322_SPEC_VERSION=0;
VK_AMD_EXTENSION_322_EXTENSION_NAME='VK_AMD_extension_322';
VK_AMD_EXTENSION_323_SPEC_VERSION=0;
VK_AMD_EXTENSION_323_EXTENSION_NAME='VK_AMD_extension_323';
VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION=1;
VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME='VK_KHR_shader_subgroup_uniform_control_flow';
VK_KHR_EXTENSION_325_SPEC_VERSION=0;
VK_KHR_EXTENSION_325_EXTENSION_NAME='VK_KHR_extension_325';
VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION=1;
VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME='VK_KHR_zero_initialize_workgroup_memory';
VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION=1;
VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME='VK_NV_fragment_shading_rate_enums';
VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION=1;
VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME='VK_NV_ray_tracing_motion_blur';
VK_NV_EXTENSION_329_SPEC_VERSION=0;
VK_NV_EXTENSION_329_EXTENSION_NAME='VK_NV_extension_329';
VK_NV_EXTENSION_330_SPEC_VERSION=0;
VK_NV_EXTENSION_330_EXTENSION_NAME='VK_NV_extension_330';
VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION=1;
VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME='VK_EXT_ycbcr_2plane_444_formats';
VK_NV_EXTENSION_332_SPEC_VERSION=0;
VK_NV_EXTENSION_332_EXTENSION_NAME='VK_NV_extension_332';
VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION=1;
VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME='VK_EXT_fragment_density_map2';
VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION=1;
VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME='VK_QCOM_rotated_copy_commands';
VK_KHR_EXTENSION_335_SPEC_VERSION=0;
VK_KHR_EXTENSION_335_EXTENSION_NAME='VK_KHR_extension_335';
VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION=1;
VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME='VK_EXT_image_robustness';
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION=1;
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME='VK_KHR_workgroup_memory_explicit_layout';
VK_KHR_COPY_COMMANDS_2_SPEC_VERSION=1;
VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME='VK_KHR_copy_commands2';
VK_ARM_EXTENSION_339_SPEC_VERSION=0;
VK_ARM_EXTENSION_339_EXTENSION_NAME='VK_ARM_extension_339';
VK_EXT_EXTENSION_340_SPEC_VERSION=0;
VK_EXT_EXTENSION_340_EXTENSION_NAME='VK_EXT_extension_340';
VK_EXT_4444_FORMATS_SPEC_VERSION=1;
VK_EXT_4444_FORMATS_EXTENSION_NAME='VK_EXT_4444_formats';
VK_EXT_EXTENSION_342_SPEC_VERSION=0;
VK_EXT_EXTENSION_342_EXTENSION_NAME='VK_EXT_extension_342';
VK_ARM_EXTENSION_343_SPEC_VERSION=0;
VK_ARM_EXTENSION_343_EXTENSION_NAME='VK_ARM_extension_343';
VK_ARM_EXTENSION_344_SPEC_VERSION=0;
VK_ARM_EXTENSION_344_EXTENSION_NAME='VK_ARM_extension_344';
VK_ARM_EXTENSION_345_SPEC_VERSION=0;
VK_ARM_EXTENSION_345_EXTENSION_NAME='VK_ARM_extension_345';
VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION=1;
VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME='VK_NV_acquire_winrt_display';
VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION=1;
VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME='VK_EXT_directfb_surface';
VK_KHR_EXTENSION_350_SPEC_VERSION=0;
VK_KHR_EXTENSION_350_EXTENSION_NAME='VK_KHR_extension_350';
VK_NV_EXTENSION_351_SPEC_VERSION=0;
VK_NV_EXTENSION_351_EXTENSION_NAME='VK_NV_extension_351';
VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION=1;
VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME='VK_VALVE_mutable_descriptor_type';
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION=2;
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME='VK_EXT_vertex_input_dynamic_state';
VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION=1;
VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME='VK_EXT_physical_device_drm';
VK_EXT_EXTENSION_355_SPEC_VERSION=0;
VK_EXT_EXTENSION_355_EXTENSION_NAME='VK_EXT_extension_355';
VK_EXT_VERTEX_ATTRIBUTE_ALIASING_SPEC_VERSION=0;
VK_EXT_VERTEX_ATTRIBUTE_ALIASING_EXTENSION_NAME='VK_EXT_vertex_attribute_aliasing';
VK_EXT_EXTENSION_357_SPEC_VERSION=0;
VK_EXT_EXTENSION_357_NAME='VK_EXT_extension_357';
VK_KHR_EXTENSION_358_SPEC_VERSION=0;
VK_KHR_EXTENSION_358_EXTENSION_NAME='VK_KHR_extension_358';
VK_EXT_EXTENSION_359_SPEC_VERSION=0;
VK_EXT_EXTENSION_359_NAME='VK_EXT_extension_359';
VK_EXT_EXTENSION_360_SPEC_VERSION=0;
VK_EXT_EXTENSION_360_NAME='VK_EXT_extension_360';
VK_EXT_EXTENSION_361_SPEC_VERSION=0;
VK_EXT_EXTENSION_361_NAME='VK_EXT_extension_361';
VK_EXT_EXTENSION_362_SPEC_VERSION=0;
VK_EXT_EXTENSION_362_EXTENSION_NAME='VK_EXT_extension_362';
VK_EXT_EXTENSION_363_SPEC_VERSION=0;
VK_EXT_EXTENSION_363_EXTENSION_NAME='VK_EXT_extension_363';
VK_EXT_EXTENSION_364_SPEC_VERSION=0;
VK_EXT_EXTENSION_364_EXTENSION_NAME='VK_EXT_extension_364';
VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION=1;
VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME='VK_FUCHSIA_external_memory';
VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION=1;
VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME='VK_FUCHSIA_external_semaphore';
VK_EXT_EXTENSION_367_SPEC_VERSION=0;
VK_EXT_EXTENSION_367_EXTENSION_NAME='VK_EXT_extension_367';
VK_EXT_EXTENSION_368_SPEC_VERSION=0;
VK_EXT_EXTENSION_368_EXTENSION_NAME='VK_EXT_extension_368';
VK_QCOM_EXTENSION_369_SPEC_VERSION=0;
VK_QCOM_EXTENSION_369_EXTENSION_NAME='VK_QCOM_extension_369';
VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION=2;
VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME='VK_HUAWEI_subpass_shading';
VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION=1;
VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME='VK_HUAWEI_invocation_mask';
VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION=1;
VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME='VK_NV_external_memory_rdma';
VK_NV_EXTENSION_373_SPEC_VERSION=0;
VK_NV_EXTENSION_373_EXTENSION_NAME='VK_NV_extension_373';
VK_NV_EXTENSION_374_SPEC_VERSION=0;
VK_NV_EXTENSION_374_EXTENSION_NAME='VK_NV_extension_374';
VK_NV_EXTENSION_375_SPEC_VERSION=0;
VK_NV_EXTENSION_375_EXTENSION_NAME='VK_NV_extension_375';
VK_EXT_EXTENSION_376_SPEC_VERSION=0;
VK_EXT_EXTENSION_376_EXTENSION_NAME='VK_EXT_extension_376';
VK_EXT_EXTENSION_377_SPEC_VERSION=0;
VK_EXT_EXTENSION_377_EXTENSION_NAME='VK_EXT_extension_377';
VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION=1;
VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME='VK_EXT_extended_dynamic_state2';
VK_QNX_SCREEN_SURFACE_SPEC_VERSION=1;
VK_QNX_SCREEN_SURFACE_EXTENSION_NAME='VK_QNX_screen_surface';
VK_KHR_EXTENSION_380_SPEC_VERSION=0;
VK_KHR_EXTENSION_380_EXTENSION_NAME='VK_KHR_extension_380';
VK_KHR_EXTENSION_381_SPEC_VERSION=0;
VK_KHR_EXTENSION_381_EXTENSION_NAME='VK_KHR_extension_381';
VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION=1;
VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME='VK_EXT_color_write_enable';
VK_EXT_EXTENSION_383_SPEC_VERSION=0;
VK_EXT_EXTENSION_383_EXTENSION_NAME='VK_EXT_extension_383';
VK_EXT_EXTENSION_384_SPEC_VERSION=0;
VK_EXT_EXTENSION_384_EXTENSION_NAME='VK_EXT_extension_384';
VK_MESA_EXTENSION_385_SPEC_VERSION=0;
VK_MESA_EXTENSION_385_EXTENSION_NAME='VK_MESA_extension_385';
VK_GOOGLE_EXTENSION_386_SPEC_VERSION=0;
VK_GOOGLE_EXTENSION_386_EXTENSION_NAME='VK_GOOGLE_extension_386';
VK_KHR_EXTENSION_387_SPEC_VERSION=0;
VK_KHR_EXTENSION_387_EXTENSION_NAME='VK_KHR_extension_387';
VK_EXT_EXTENSION_388_SPEC_VERSION=0;
VK_EXT_EXTENSION_388_EXTENSION_NAME='VK_EXT_extension_388';
VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION=1;
VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME='VK_EXT_global_priority_query';
VK_EXT_EXTENSION_390_SPEC_VERSION=0;
VK_EXT_EXTENSION_390_EXTENSION_NAME='VK_EXT_extension_390';
VK_EXT_EXTENSION_391_SPEC_VERSION=0;
VK_EXT_EXTENSION_391_EXTENSION_NAME='VK_EXT_extension_391';
VK_EXT_EXTENSION_392_SPEC_VERSION=0;
VK_EXT_EXTENSION_392_EXTENSION_NAME='VK_EXT_extension_392';
VK_EXT_MULTI_DRAW_SPEC_VERSION=1;
VK_EXT_MULTI_DRAW_EXTENSION_NAME='VK_EXT_multi_draw';
VK_EXT_EXTENSION_394_SPEC_VERSION=0;
VK_EXT_EXTENSION_394_EXTENSION_NAME='VK_EXT_extension_394';
VK_KHR_EXTENSION_395_SPEC_VERSION=0;
VK_KHR_EXTENSION_395_EXTENSION_NAME='VK_KHR_extension_395';
VK_KHR_EXTENSION_396_SPEC_VERSION=0;
VK_KHR_EXTENSION_396_EXTENSION_NAME='VK_KHR_extension_396';
VK_NV_EXTENSION_397_SPEC_VERSION=0;
VK_NV_EXTENSION_397_EXTENSION_NAME='VK_NV_extension_397';
VK_NV_EXTENSION_398_SPEC_VERSION=0;
VK_NV_EXTENSION_398_EXTENSION_NAME='VK_NV_extension_398';
VK_JUICE_EXTENSION_399_SPEC_VERSION=0;
VK_JUICE_EXTENSION_399_EXTENSION_NAME='VK_JUICE_extension_399';
VK_JUICE_EXTENSION_400_SPEC_VERSION=0;
VK_JUICE_EXTENSION_400_EXTENSION_NAME='VK_JUICE_extension_400';
VK_KHR_EXTENSION_401_SPEC_VERSION=0;
VK_KHR_EXTENSION_401_EXTENSION_NAME='VK_KHR_extension_401';
VK_FB_EXTENSION_402_SPEC_VERSION=0;
VK_FB_EXTENSION_402_EXTENSION_NAME='VK_FB_extension_402';
VK_FB_EXTENSION_403_SPEC_VERSION=0;
VK_FB_EXTENSION_403_EXTENSION_NAME='VK_FB_extension_403';
VK_FB_EXTENSION_404_SPEC_VERSION=0;
VK_FB_EXTENSION_404_EXTENSION_NAME='VK_FB_extension_404';
VK_HUAWEI_EXTENSION_405_SPEC_VERSION=0;
VK_HUAWEI_EXTENSION_405_EXTENSION_NAME='VK_HUAWEI_extension_405';
VK_HUAWEI_EXTENSION_406_SPEC_VERSION=0;
VK_HUAWEI_EXTENSION_406_EXTENSION_NAME='VK_HUAWEI_extension_406';
VK_GGP_EXTENSION_407_SPEC_VERSION=0;
VK_GGP_EXTENSION_407_EXTENSION_NAME='VK_GGP_extension_407';
VK_GGP_EXTENSION_408_SPEC_VERSION=0;
VK_GGP_EXTENSION_408_EXTENSION_NAME='VK_GGP_extension_408';
VK_GGP_EXTENSION_409_SPEC_VERSION=0;
VK_GGP_EXTENSION_409_EXTENSION_NAME='VK_GGP_extension_409';
VK_GGP_EXTENSION_410_SPEC_VERSION=0;
VK_GGP_EXTENSION_410_EXTENSION_NAME='VK_GGP_extension_410';
VK_GGP_EXTENSION_411_SPEC_VERSION=0;
VK_GGP_EXTENSION_411_EXTENSION_NAME='VK_GGP_extension_411';
VK_NV_EXTENSION_412_SPEC_VERSION=0;
VK_NV_EXTENSION_412_EXTENSION_NAME='VK_NV_extension_412';
VK_NV_EXTENSION_413_SPEC_VERSION=0;
VK_NV_EXTENSION_413_EXTENSION_NAME='VK_NV_extension_413';
VK_NV_EXTENSION_414_SPEC_VERSION=0;
VK_NV_EXTENSION_414_EXTENSION_NAME='VK_NV_extension_414';
VK_HUAWEI_EXTENSION_415_SPEC_VERSION=0;
VK_HUAWEI_EXTENSION_415_EXTENSION_NAME='VK_HUAWEI_extension_415';
VK_ARM_EXTENSION_416_SPEC_VERSION=0;
VK_ARM_EXTENSION_416_EXTENSION_NAME='VK_ARM_extension_416';
VK_ARM_EXTENSION_417_SPEC_VERSION=0;
VK_ARM_EXTENSION_417_EXTENSION_NAME='VK_ARM_extension_417';
VK_ARM_EXTENSION_418_SPEC_VERSION=0;
VK_ARM_EXTENSION_418_EXTENSION_NAME='VK_ARM_extension_418';
VK_EXT_EXTENSION_419_SPEC_VERSION=0;
VK_EXT_EXTENSION_419_EXTENSION_NAME='VK_EXT_extension_419';
VK_EXT_EXTENSION_420_SPEC_VERSION=0;
VK_EXT_EXTENSION_420_EXTENSION_NAME='VK_EXT_extension_420';
VK_KHR_EXTENSION_421_SPEC_VERSION=0;
VK_KHR_EXTENSION_421_EXTENSION_NAME='VK_KHR_extension_421';
type PPVkDispatchableHandle=^PVkDispatchableHandle;
PVkDispatchableHandle=^TVkDispatchableHandle;
TVkDispatchableHandle=TVkPtrInt;
PPVkNonDispatchableHandle=^PVkNonDispatchableHandle;
PVkNonDispatchableHandle=^TVkNonDispatchableHandle;
TVkNonDispatchableHandle=TVkUInt64;
PPVkEnum=^PVkEnum;
PVkEnum=^TVkEnum;
TVkEnum=TVkInt32;
{$ifdef Windows}
PPVkHINSTANCE=^PVkHINSTANCE;
PVkHINSTANCE=^TVkHINSTANCE;
TVkHINSTANCE=TVkPtrUInt;
PPVkHWND=^PVkHWND;
PVkHWND=^TVkHWND;
TVkHWND=HWND;
PPVkHMONITOR=^PVkHMONITOR;
PVkHMONITOR=^TVkHMONITOR;
TVkHMONITOR=HMONITOR;
{$endif}
PPANativeWindow=^PANativeWindow;
PANativeWindow=^TANativeWindow;
TANativeWindow=TVkNonDefinedType;
PPAHardwareBuffer=^PAHardwareBuffer;
PAHardwareBuffer=^TAHardwareBuffer;
TAHardwareBuffer=TVkNonDefinedType;
PPCAMetalLayer=^PCAMetalLayer;
PCAMetalLayer=^TCAMetalLayer;
TCAMetalLayer=TVkNonDefinedType;
PPVkSampleMask=^PVkSampleMask;
PVkSampleMask=^TVkSampleMask;
TVkSampleMask=TVkUInt32;
PPVkBool32=^PVkBool32;
PVkBool32=^TVkBool32;
TVkBool32=TVkUInt32;
PPVkFlags=^PVkFlags;
PVkFlags=^TVkFlags;
TVkFlags=TVkUInt32;
PPVkFlags64=^PVkFlags64;
PVkFlags64=^TVkFlags64;
TVkFlags64=TVkUInt64;
PPVkDeviceSize=^PVkDeviceSize;
PVkDeviceSize=^TVkDeviceSize;
TVkDeviceSize=TVkUInt64;
PPVkDeviceAddress=^PVkDeviceAddress;
PVkDeviceAddress=^TVkDeviceAddress;
TVkDeviceAddress=TVkUInt64;
PPVkRemoteAddressNV=^PVkRemoteAddressNV;
PVkRemoteAddressNV=^TVkRemoteAddressNV;
TVkRemoteAddressNV=TVkVoid;
PPVkFramebufferCreateFlags=^PVkFramebufferCreateFlags;
PVkFramebufferCreateFlags=^TVkFramebufferCreateFlags;
TVkFramebufferCreateFlags=TVkFlags;
PPVkQueryPoolCreateFlags=^PVkQueryPoolCreateFlags;
PVkQueryPoolCreateFlags=^TVkQueryPoolCreateFlags;
TVkQueryPoolCreateFlags=TVkFlags;
PPVkRenderPassCreateFlags=^PVkRenderPassCreateFlags;
PVkRenderPassCreateFlags=^TVkRenderPassCreateFlags;
TVkRenderPassCreateFlags=TVkFlags;
PPVkSamplerCreateFlags=^PVkSamplerCreateFlags;
PVkSamplerCreateFlags=^TVkSamplerCreateFlags;
TVkSamplerCreateFlags=TVkFlags;
PPVkPipelineLayoutCreateFlags=^PVkPipelineLayoutCreateFlags;
PVkPipelineLayoutCreateFlags=^TVkPipelineLayoutCreateFlags;
TVkPipelineLayoutCreateFlags=TVkFlags;
PPVkPipelineCacheCreateFlags=^PVkPipelineCacheCreateFlags;
PVkPipelineCacheCreateFlags=^TVkPipelineCacheCreateFlags;
TVkPipelineCacheCreateFlags=TVkFlags;
PPVkPipelineDepthStencilStateCreateFlags=^PVkPipelineDepthStencilStateCreateFlags;
PVkPipelineDepthStencilStateCreateFlags=^TVkPipelineDepthStencilStateCreateFlags;
TVkPipelineDepthStencilStateCreateFlags=TVkFlags;
PPVkPipelineDynamicStateCreateFlags=^PVkPipelineDynamicStateCreateFlags;
PVkPipelineDynamicStateCreateFlags=^TVkPipelineDynamicStateCreateFlags;
TVkPipelineDynamicStateCreateFlags=TVkFlags;
PPVkPipelineColorBlendStateCreateFlags=^PVkPipelineColorBlendStateCreateFlags;
PVkPipelineColorBlendStateCreateFlags=^TVkPipelineColorBlendStateCreateFlags;
TVkPipelineColorBlendStateCreateFlags=TVkFlags;
PPVkPipelineMultisampleStateCreateFlags=^PVkPipelineMultisampleStateCreateFlags;
PVkPipelineMultisampleStateCreateFlags=^TVkPipelineMultisampleStateCreateFlags;
TVkPipelineMultisampleStateCreateFlags=TVkFlags;
PPVkPipelineRasterizationStateCreateFlags=^PVkPipelineRasterizationStateCreateFlags;
PVkPipelineRasterizationStateCreateFlags=^TVkPipelineRasterizationStateCreateFlags;
TVkPipelineRasterizationStateCreateFlags=TVkFlags;
PPVkPipelineViewportStateCreateFlags=^PVkPipelineViewportStateCreateFlags;
PVkPipelineViewportStateCreateFlags=^TVkPipelineViewportStateCreateFlags;
TVkPipelineViewportStateCreateFlags=TVkFlags;
PPVkPipelineTessellationStateCreateFlags=^PVkPipelineTessellationStateCreateFlags;
PVkPipelineTessellationStateCreateFlags=^TVkPipelineTessellationStateCreateFlags;
TVkPipelineTessellationStateCreateFlags=TVkFlags;
PPVkPipelineInputAssemblyStateCreateFlags=^PVkPipelineInputAssemblyStateCreateFlags;
PVkPipelineInputAssemblyStateCreateFlags=^TVkPipelineInputAssemblyStateCreateFlags;
TVkPipelineInputAssemblyStateCreateFlags=TVkFlags;
PPVkPipelineVertexInputStateCreateFlags=^PVkPipelineVertexInputStateCreateFlags;
PVkPipelineVertexInputStateCreateFlags=^TVkPipelineVertexInputStateCreateFlags;
TVkPipelineVertexInputStateCreateFlags=TVkFlags;
PPVkPipelineShaderStageCreateFlags=^PVkPipelineShaderStageCreateFlags;
PVkPipelineShaderStageCreateFlags=^TVkPipelineShaderStageCreateFlags;
TVkPipelineShaderStageCreateFlags=TVkFlags;
PPVkDescriptorSetLayoutCreateFlags=^PVkDescriptorSetLayoutCreateFlags;
PVkDescriptorSetLayoutCreateFlags=^TVkDescriptorSetLayoutCreateFlags;
TVkDescriptorSetLayoutCreateFlags=TVkFlags;
PPVkBufferViewCreateFlags=^PVkBufferViewCreateFlags;
PVkBufferViewCreateFlags=^TVkBufferViewCreateFlags;
TVkBufferViewCreateFlags=TVkFlags;
PPVkInstanceCreateFlags=^PVkInstanceCreateFlags;
PVkInstanceCreateFlags=^TVkInstanceCreateFlags;
TVkInstanceCreateFlags=TVkFlags;
PPVkDeviceCreateFlags=^PVkDeviceCreateFlags;
PVkDeviceCreateFlags=^TVkDeviceCreateFlags;
TVkDeviceCreateFlags=TVkFlags;
PPVkDeviceQueueCreateFlags=^PVkDeviceQueueCreateFlags;
PVkDeviceQueueCreateFlags=^TVkDeviceQueueCreateFlags;
TVkDeviceQueueCreateFlags=TVkFlags;
PPVkQueueFlags=^PVkQueueFlags;
PVkQueueFlags=^TVkQueueFlags;
TVkQueueFlags=TVkFlags;
PPVkMemoryPropertyFlags=^PVkMemoryPropertyFlags;
PVkMemoryPropertyFlags=^TVkMemoryPropertyFlags;
TVkMemoryPropertyFlags=TVkFlags;
PPVkMemoryHeapFlags=^PVkMemoryHeapFlags;
PVkMemoryHeapFlags=^TVkMemoryHeapFlags;
TVkMemoryHeapFlags=TVkFlags;
PPVkAccessFlags=^PVkAccessFlags;
PVkAccessFlags=^TVkAccessFlags;
TVkAccessFlags=TVkFlags;
PPVkBufferUsageFlags=^PVkBufferUsageFlags;
PVkBufferUsageFlags=^TVkBufferUsageFlags;
TVkBufferUsageFlags=TVkFlags;
PPVkBufferCreateFlags=^PVkBufferCreateFlags;
PVkBufferCreateFlags=^TVkBufferCreateFlags;
TVkBufferCreateFlags=TVkFlags;
PPVkShaderStageFlags=^PVkShaderStageFlags;
PVkShaderStageFlags=^TVkShaderStageFlags;
TVkShaderStageFlags=TVkFlags;
PPVkImageUsageFlags=^PVkImageUsageFlags;
PVkImageUsageFlags=^TVkImageUsageFlags;
TVkImageUsageFlags=TVkFlags;
PPVkImageCreateFlags=^PVkImageCreateFlags;
PVkImageCreateFlags=^TVkImageCreateFlags;
TVkImageCreateFlags=TVkFlags;
PPVkImageViewCreateFlags=^PVkImageViewCreateFlags;
PVkImageViewCreateFlags=^TVkImageViewCreateFlags;
TVkImageViewCreateFlags=TVkFlags;
PPVkPipelineCreateFlags=^PVkPipelineCreateFlags;
PVkPipelineCreateFlags=^TVkPipelineCreateFlags;
TVkPipelineCreateFlags=TVkFlags;
PPVkColorComponentFlags=^PVkColorComponentFlags;
PVkColorComponentFlags=^TVkColorComponentFlags;
TVkColorComponentFlags=TVkFlags;
PPVkFenceCreateFlags=^PVkFenceCreateFlags;
PVkFenceCreateFlags=^TVkFenceCreateFlags;
TVkFenceCreateFlags=TVkFlags;
PPVkSemaphoreCreateFlags=^PVkSemaphoreCreateFlags;
PVkSemaphoreCreateFlags=^TVkSemaphoreCreateFlags;
TVkSemaphoreCreateFlags=TVkFlags;
PPVkFormatFeatureFlags=^PVkFormatFeatureFlags;
PVkFormatFeatureFlags=^TVkFormatFeatureFlags;
TVkFormatFeatureFlags=TVkFlags;
PPVkQueryControlFlags=^PVkQueryControlFlags;
PVkQueryControlFlags=^TVkQueryControlFlags;
TVkQueryControlFlags=TVkFlags;
PPVkQueryResultFlags=^PVkQueryResultFlags;
PVkQueryResultFlags=^TVkQueryResultFlags;
TVkQueryResultFlags=TVkFlags;
PPVkShaderModuleCreateFlags=^PVkShaderModuleCreateFlags;
PVkShaderModuleCreateFlags=^TVkShaderModuleCreateFlags;
TVkShaderModuleCreateFlags=TVkFlags;
PPVkEventCreateFlags=^PVkEventCreateFlags;
PVkEventCreateFlags=^TVkEventCreateFlags;
TVkEventCreateFlags=TVkFlags;
PPVkCommandPoolCreateFlags=^PVkCommandPoolCreateFlags;
PVkCommandPoolCreateFlags=^TVkCommandPoolCreateFlags;
TVkCommandPoolCreateFlags=TVkFlags;
PPVkCommandPoolResetFlags=^PVkCommandPoolResetFlags;
PVkCommandPoolResetFlags=^TVkCommandPoolResetFlags;
TVkCommandPoolResetFlags=TVkFlags;
PPVkCommandBufferResetFlags=^PVkCommandBufferResetFlags;
PVkCommandBufferResetFlags=^TVkCommandBufferResetFlags;
TVkCommandBufferResetFlags=TVkFlags;
PPVkCommandBufferUsageFlags=^PVkCommandBufferUsageFlags;
PVkCommandBufferUsageFlags=^TVkCommandBufferUsageFlags;
TVkCommandBufferUsageFlags=TVkFlags;
PPVkQueryPipelineStatisticFlags=^PVkQueryPipelineStatisticFlags;
PVkQueryPipelineStatisticFlags=^TVkQueryPipelineStatisticFlags;
TVkQueryPipelineStatisticFlags=TVkFlags;
PPVkMemoryMapFlags=^PVkMemoryMapFlags;
PVkMemoryMapFlags=^TVkMemoryMapFlags;
TVkMemoryMapFlags=TVkFlags;
PPVkImageAspectFlags=^PVkImageAspectFlags;
PVkImageAspectFlags=^TVkImageAspectFlags;
TVkImageAspectFlags=TVkFlags;
PPVkSparseMemoryBindFlags=^PVkSparseMemoryBindFlags;
PVkSparseMemoryBindFlags=^TVkSparseMemoryBindFlags;
TVkSparseMemoryBindFlags=TVkFlags;
PPVkSparseImageFormatFlags=^PVkSparseImageFormatFlags;
PVkSparseImageFormatFlags=^TVkSparseImageFormatFlags;
TVkSparseImageFormatFlags=TVkFlags;
PPVkSubpassDescriptionFlags=^PVkSubpassDescriptionFlags;
PVkSubpassDescriptionFlags=^TVkSubpassDescriptionFlags;
TVkSubpassDescriptionFlags=TVkFlags;
PPVkPipelineStageFlags=^PVkPipelineStageFlags;
PVkPipelineStageFlags=^TVkPipelineStageFlags;
TVkPipelineStageFlags=TVkFlags;
PPVkSampleCountFlags=^PVkSampleCountFlags;
PVkSampleCountFlags=^TVkSampleCountFlags;
TVkSampleCountFlags=TVkFlags;
PPVkAttachmentDescriptionFlags=^PVkAttachmentDescriptionFlags;
PVkAttachmentDescriptionFlags=^TVkAttachmentDescriptionFlags;
TVkAttachmentDescriptionFlags=TVkFlags;
PPVkStencilFaceFlags=^PVkStencilFaceFlags;
PVkStencilFaceFlags=^TVkStencilFaceFlags;
TVkStencilFaceFlags=TVkFlags;
PPVkCullModeFlags=^PVkCullModeFlags;
PVkCullModeFlags=^TVkCullModeFlags;
TVkCullModeFlags=TVkFlags;
PPVkDescriptorPoolCreateFlags=^PVkDescriptorPoolCreateFlags;
PVkDescriptorPoolCreateFlags=^TVkDescriptorPoolCreateFlags;
TVkDescriptorPoolCreateFlags=TVkFlags;
PPVkDescriptorPoolResetFlags=^PVkDescriptorPoolResetFlags;
PVkDescriptorPoolResetFlags=^TVkDescriptorPoolResetFlags;
TVkDescriptorPoolResetFlags=TVkFlags;
PPVkDependencyFlags=^PVkDependencyFlags;
PVkDependencyFlags=^TVkDependencyFlags;
TVkDependencyFlags=TVkFlags;
PPVkSubgroupFeatureFlags=^PVkSubgroupFeatureFlags;
PVkSubgroupFeatureFlags=^TVkSubgroupFeatureFlags;
TVkSubgroupFeatureFlags=TVkFlags;
PPVkIndirectCommandsLayoutUsageFlagsNV=^PVkIndirectCommandsLayoutUsageFlagsNV;
PVkIndirectCommandsLayoutUsageFlagsNV=^TVkIndirectCommandsLayoutUsageFlagsNV;
TVkIndirectCommandsLayoutUsageFlagsNV=TVkFlags;
PPVkIndirectStateFlagsNV=^PVkIndirectStateFlagsNV;
PVkIndirectStateFlagsNV=^TVkIndirectStateFlagsNV;
TVkIndirectStateFlagsNV=TVkFlags;
PPVkGeometryFlagsKHR=^PVkGeometryFlagsKHR;
PVkGeometryFlagsKHR=^TVkGeometryFlagsKHR;
TVkGeometryFlagsKHR=TVkFlags;
PPVkGeometryFlagsNV=PPVkGeometryFlagsKHR;
PVkGeometryFlagsNV=PVkGeometryFlagsKHR;
TVkGeometryFlagsNV=TVkGeometryFlagsKHR;
PPVkGeometryInstanceFlagsKHR=^PVkGeometryInstanceFlagsKHR;
PVkGeometryInstanceFlagsKHR=^TVkGeometryInstanceFlagsKHR;
TVkGeometryInstanceFlagsKHR=TVkFlags;
PPVkGeometryInstanceFlagsNV=PPVkGeometryInstanceFlagsKHR;
PVkGeometryInstanceFlagsNV=PVkGeometryInstanceFlagsKHR;
TVkGeometryInstanceFlagsNV=TVkGeometryInstanceFlagsKHR;
PPVkBuildAccelerationStructureFlagsKHR=^PVkBuildAccelerationStructureFlagsKHR;
PVkBuildAccelerationStructureFlagsKHR=^TVkBuildAccelerationStructureFlagsKHR;
TVkBuildAccelerationStructureFlagsKHR=TVkFlags;
PPVkBuildAccelerationStructureFlagsNV=PPVkBuildAccelerationStructureFlagsKHR;
PVkBuildAccelerationStructureFlagsNV=PVkBuildAccelerationStructureFlagsKHR;
TVkBuildAccelerationStructureFlagsNV=TVkBuildAccelerationStructureFlagsKHR;
PPVkPrivateDataSlotCreateFlagsEXT=^PVkPrivateDataSlotCreateFlagsEXT;
PVkPrivateDataSlotCreateFlagsEXT=^TVkPrivateDataSlotCreateFlagsEXT;
TVkPrivateDataSlotCreateFlagsEXT=TVkFlags;
PPVkAccelerationStructureCreateFlagsKHR=^PVkAccelerationStructureCreateFlagsKHR;
PVkAccelerationStructureCreateFlagsKHR=^TVkAccelerationStructureCreateFlagsKHR;
TVkAccelerationStructureCreateFlagsKHR=TVkFlags;
PPVkDescriptorUpdateTemplateCreateFlags=^PVkDescriptorUpdateTemplateCreateFlags;
PVkDescriptorUpdateTemplateCreateFlags=^TVkDescriptorUpdateTemplateCreateFlags;
TVkDescriptorUpdateTemplateCreateFlags=TVkFlags;
PPVkDescriptorUpdateTemplateCreateFlagsKHR=PPVkDescriptorUpdateTemplateCreateFlags;
PVkDescriptorUpdateTemplateCreateFlagsKHR=PVkDescriptorUpdateTemplateCreateFlags;
TVkDescriptorUpdateTemplateCreateFlagsKHR=TVkDescriptorUpdateTemplateCreateFlags;
PPVkPipelineCreationFeedbackFlagsEXT=^PVkPipelineCreationFeedbackFlagsEXT;
PVkPipelineCreationFeedbackFlagsEXT=^TVkPipelineCreationFeedbackFlagsEXT;
TVkPipelineCreationFeedbackFlagsEXT=TVkFlags;
PPVkPerformanceCounterDescriptionFlagsKHR=^PVkPerformanceCounterDescriptionFlagsKHR;
PVkPerformanceCounterDescriptionFlagsKHR=^TVkPerformanceCounterDescriptionFlagsKHR;
TVkPerformanceCounterDescriptionFlagsKHR=TVkFlags;
PPVkAcquireProfilingLockFlagsKHR=^PVkAcquireProfilingLockFlagsKHR;
PVkAcquireProfilingLockFlagsKHR=^TVkAcquireProfilingLockFlagsKHR;
TVkAcquireProfilingLockFlagsKHR=TVkFlags;
PPVkSemaphoreWaitFlags=^PVkSemaphoreWaitFlags;
PVkSemaphoreWaitFlags=^TVkSemaphoreWaitFlags;
TVkSemaphoreWaitFlags=TVkFlags;
PPVkSemaphoreWaitFlagsKHR=PPVkSemaphoreWaitFlags;
PVkSemaphoreWaitFlagsKHR=PVkSemaphoreWaitFlags;
TVkSemaphoreWaitFlagsKHR=TVkSemaphoreWaitFlags;
PPVkPipelineCompilerControlFlagsAMD=^PVkPipelineCompilerControlFlagsAMD;
PVkPipelineCompilerControlFlagsAMD=^TVkPipelineCompilerControlFlagsAMD;
TVkPipelineCompilerControlFlagsAMD=TVkFlags;
PPVkShaderCorePropertiesFlagsAMD=^PVkShaderCorePropertiesFlagsAMD;
PVkShaderCorePropertiesFlagsAMD=^TVkShaderCorePropertiesFlagsAMD;
TVkShaderCorePropertiesFlagsAMD=TVkFlags;
PPVkDeviceDiagnosticsConfigFlagsNV=^PVkDeviceDiagnosticsConfigFlagsNV;
PVkDeviceDiagnosticsConfigFlagsNV=^TVkDeviceDiagnosticsConfigFlagsNV;
TVkDeviceDiagnosticsConfigFlagsNV=TVkFlags;
PPVkAccessFlags2KHR=^PVkAccessFlags2KHR;
PVkAccessFlags2KHR=^TVkAccessFlags2KHR;
TVkAccessFlags2KHR=TVkFlags64;
PPVkPipelineStageFlags2KHR=^PVkPipelineStageFlags2KHR;
PVkPipelineStageFlags2KHR=^TVkPipelineStageFlags2KHR;
TVkPipelineStageFlags2KHR=TVkFlags64;
PPVkAccelerationStructureMotionInfoFlagsNV=^PVkAccelerationStructureMotionInfoFlagsNV;
PVkAccelerationStructureMotionInfoFlagsNV=^TVkAccelerationStructureMotionInfoFlagsNV;
TVkAccelerationStructureMotionInfoFlagsNV=TVkFlags;
PPVkAccelerationStructureMotionInstanceFlagsNV=^PVkAccelerationStructureMotionInstanceFlagsNV;
PVkAccelerationStructureMotionInstanceFlagsNV=^TVkAccelerationStructureMotionInstanceFlagsNV;
TVkAccelerationStructureMotionInstanceFlagsNV=TVkFlags;
PPVkCompositeAlphaFlagsKHR=^PVkCompositeAlphaFlagsKHR;
PVkCompositeAlphaFlagsKHR=^TVkCompositeAlphaFlagsKHR;
TVkCompositeAlphaFlagsKHR=TVkFlags;
PPVkDisplayPlaneAlphaFlagsKHR=^PVkDisplayPlaneAlphaFlagsKHR;
PVkDisplayPlaneAlphaFlagsKHR=^TVkDisplayPlaneAlphaFlagsKHR;
TVkDisplayPlaneAlphaFlagsKHR=TVkFlags;
PPVkSurfaceTransformFlagsKHR=^PVkSurfaceTransformFlagsKHR;
PVkSurfaceTransformFlagsKHR=^TVkSurfaceTransformFlagsKHR;
TVkSurfaceTransformFlagsKHR=TVkFlags;
PPVkSwapchainCreateFlagsKHR=^PVkSwapchainCreateFlagsKHR;
PVkSwapchainCreateFlagsKHR=^TVkSwapchainCreateFlagsKHR;
TVkSwapchainCreateFlagsKHR=TVkFlags;
PPVkDisplayModeCreateFlagsKHR=^PVkDisplayModeCreateFlagsKHR;
PVkDisplayModeCreateFlagsKHR=^TVkDisplayModeCreateFlagsKHR;
TVkDisplayModeCreateFlagsKHR=TVkFlags;
PPVkDisplaySurfaceCreateFlagsKHR=^PVkDisplaySurfaceCreateFlagsKHR;
PVkDisplaySurfaceCreateFlagsKHR=^TVkDisplaySurfaceCreateFlagsKHR;
TVkDisplaySurfaceCreateFlagsKHR=TVkFlags;
PPVkAndroidSurfaceCreateFlagsKHR=^PVkAndroidSurfaceCreateFlagsKHR;
PVkAndroidSurfaceCreateFlagsKHR=^TVkAndroidSurfaceCreateFlagsKHR;
TVkAndroidSurfaceCreateFlagsKHR=TVkFlags;
PPVkViSurfaceCreateFlagsNN=^PVkViSurfaceCreateFlagsNN;
PVkViSurfaceCreateFlagsNN=^TVkViSurfaceCreateFlagsNN;
TVkViSurfaceCreateFlagsNN=TVkFlags;
PPVkWaylandSurfaceCreateFlagsKHR=^PVkWaylandSurfaceCreateFlagsKHR;
PVkWaylandSurfaceCreateFlagsKHR=^TVkWaylandSurfaceCreateFlagsKHR;
TVkWaylandSurfaceCreateFlagsKHR=TVkFlags;
PPVkWin32SurfaceCreateFlagsKHR=^PVkWin32SurfaceCreateFlagsKHR;
PVkWin32SurfaceCreateFlagsKHR=^TVkWin32SurfaceCreateFlagsKHR;
TVkWin32SurfaceCreateFlagsKHR=TVkFlags;
PPVkXlibSurfaceCreateFlagsKHR=^PVkXlibSurfaceCreateFlagsKHR;
PVkXlibSurfaceCreateFlagsKHR=^TVkXlibSurfaceCreateFlagsKHR;
TVkXlibSurfaceCreateFlagsKHR=TVkFlags;
PPVkXcbSurfaceCreateFlagsKHR=^PVkXcbSurfaceCreateFlagsKHR;
PVkXcbSurfaceCreateFlagsKHR=^TVkXcbSurfaceCreateFlagsKHR;
TVkXcbSurfaceCreateFlagsKHR=TVkFlags;
PPVkDirectFBSurfaceCreateFlagsEXT=^PVkDirectFBSurfaceCreateFlagsEXT;
PVkDirectFBSurfaceCreateFlagsEXT=^TVkDirectFBSurfaceCreateFlagsEXT;
TVkDirectFBSurfaceCreateFlagsEXT=TVkFlags;
PPVkIOSSurfaceCreateFlagsMVK=^PVkIOSSurfaceCreateFlagsMVK;
PVkIOSSurfaceCreateFlagsMVK=^TVkIOSSurfaceCreateFlagsMVK;
TVkIOSSurfaceCreateFlagsMVK=TVkFlags;
PPVkMacOSSurfaceCreateFlagsMVK=^PVkMacOSSurfaceCreateFlagsMVK;
PVkMacOSSurfaceCreateFlagsMVK=^TVkMacOSSurfaceCreateFlagsMVK;
TVkMacOSSurfaceCreateFlagsMVK=TVkFlags;
PPVkMetalSurfaceCreateFlagsEXT=^PVkMetalSurfaceCreateFlagsEXT;
PVkMetalSurfaceCreateFlagsEXT=^TVkMetalSurfaceCreateFlagsEXT;
TVkMetalSurfaceCreateFlagsEXT=TVkFlags;
PPVkImagePipeSurfaceCreateFlagsFUCHSIA=^PVkImagePipeSurfaceCreateFlagsFUCHSIA;
PVkImagePipeSurfaceCreateFlagsFUCHSIA=^TVkImagePipeSurfaceCreateFlagsFUCHSIA;
TVkImagePipeSurfaceCreateFlagsFUCHSIA=TVkFlags;
PPVkStreamDescriptorSurfaceCreateFlagsGGP=^PVkStreamDescriptorSurfaceCreateFlagsGGP;
PVkStreamDescriptorSurfaceCreateFlagsGGP=^TVkStreamDescriptorSurfaceCreateFlagsGGP;
TVkStreamDescriptorSurfaceCreateFlagsGGP=TVkFlags;
PPVkHeadlessSurfaceCreateFlagsEXT=^PVkHeadlessSurfaceCreateFlagsEXT;
PVkHeadlessSurfaceCreateFlagsEXT=^TVkHeadlessSurfaceCreateFlagsEXT;
TVkHeadlessSurfaceCreateFlagsEXT=TVkFlags;
PPVkScreenSurfaceCreateFlagsQNX=^PVkScreenSurfaceCreateFlagsQNX;
PVkScreenSurfaceCreateFlagsQNX=^TVkScreenSurfaceCreateFlagsQNX;
TVkScreenSurfaceCreateFlagsQNX=TVkFlags;
PPVkPeerMemoryFeatureFlags=^PVkPeerMemoryFeatureFlags;
PVkPeerMemoryFeatureFlags=^TVkPeerMemoryFeatureFlags;
TVkPeerMemoryFeatureFlags=TVkFlags;
PPVkPeerMemoryFeatureFlagsKHR=PPVkPeerMemoryFeatureFlags;
PVkPeerMemoryFeatureFlagsKHR=PVkPeerMemoryFeatureFlags;
TVkPeerMemoryFeatureFlagsKHR=TVkPeerMemoryFeatureFlags;
PPVkMemoryAllocateFlags=^PVkMemoryAllocateFlags;
PVkMemoryAllocateFlags=^TVkMemoryAllocateFlags;
TVkMemoryAllocateFlags=TVkFlags;
PPVkMemoryAllocateFlagsKHR=PPVkMemoryAllocateFlags;
PVkMemoryAllocateFlagsKHR=PVkMemoryAllocateFlags;
TVkMemoryAllocateFlagsKHR=TVkMemoryAllocateFlags;
PPVkDeviceGroupPresentModeFlagsKHR=^PVkDeviceGroupPresentModeFlagsKHR;
PVkDeviceGroupPresentModeFlagsKHR=^TVkDeviceGroupPresentModeFlagsKHR;
TVkDeviceGroupPresentModeFlagsKHR=TVkFlags;
PPVkDebugReportFlagsEXT=^PVkDebugReportFlagsEXT;
PVkDebugReportFlagsEXT=^TVkDebugReportFlagsEXT;
TVkDebugReportFlagsEXT=TVkFlags;
PPVkCommandPoolTrimFlags=^PVkCommandPoolTrimFlags;
PVkCommandPoolTrimFlags=^TVkCommandPoolTrimFlags;
TVkCommandPoolTrimFlags=TVkFlags;
PPVkCommandPoolTrimFlagsKHR=PPVkCommandPoolTrimFlags;
PVkCommandPoolTrimFlagsKHR=PVkCommandPoolTrimFlags;
TVkCommandPoolTrimFlagsKHR=TVkCommandPoolTrimFlags;
PPVkExternalMemoryHandleTypeFlagsNV=^PVkExternalMemoryHandleTypeFlagsNV;
PVkExternalMemoryHandleTypeFlagsNV=^TVkExternalMemoryHandleTypeFlagsNV;
TVkExternalMemoryHandleTypeFlagsNV=TVkFlags;
PPVkExternalMemoryFeatureFlagsNV=^PVkExternalMemoryFeatureFlagsNV;
PVkExternalMemoryFeatureFlagsNV=^TVkExternalMemoryFeatureFlagsNV;
TVkExternalMemoryFeatureFlagsNV=TVkFlags;
PPVkExternalMemoryHandleTypeFlags=^PVkExternalMemoryHandleTypeFlags;
PVkExternalMemoryHandleTypeFlags=^TVkExternalMemoryHandleTypeFlags;
TVkExternalMemoryHandleTypeFlags=TVkFlags;
PPVkExternalMemoryHandleTypeFlagsKHR=PPVkExternalMemoryHandleTypeFlags;
PVkExternalMemoryHandleTypeFlagsKHR=PVkExternalMemoryHandleTypeFlags;
TVkExternalMemoryHandleTypeFlagsKHR=TVkExternalMemoryHandleTypeFlags;
PPVkExternalMemoryFeatureFlags=^PVkExternalMemoryFeatureFlags;
PVkExternalMemoryFeatureFlags=^TVkExternalMemoryFeatureFlags;
TVkExternalMemoryFeatureFlags=TVkFlags;
PPVkExternalMemoryFeatureFlagsKHR=PPVkExternalMemoryFeatureFlags;
PVkExternalMemoryFeatureFlagsKHR=PVkExternalMemoryFeatureFlags;
TVkExternalMemoryFeatureFlagsKHR=TVkExternalMemoryFeatureFlags;
PPVkExternalSemaphoreHandleTypeFlags=^PVkExternalSemaphoreHandleTypeFlags;
PVkExternalSemaphoreHandleTypeFlags=^TVkExternalSemaphoreHandleTypeFlags;
TVkExternalSemaphoreHandleTypeFlags=TVkFlags;
PPVkExternalSemaphoreHandleTypeFlagsKHR=PPVkExternalSemaphoreHandleTypeFlags;
PVkExternalSemaphoreHandleTypeFlagsKHR=PVkExternalSemaphoreHandleTypeFlags;
TVkExternalSemaphoreHandleTypeFlagsKHR=TVkExternalSemaphoreHandleTypeFlags;
PPVkExternalSemaphoreFeatureFlags=^PVkExternalSemaphoreFeatureFlags;
PVkExternalSemaphoreFeatureFlags=^TVkExternalSemaphoreFeatureFlags;
TVkExternalSemaphoreFeatureFlags=TVkFlags;
PPVkExternalSemaphoreFeatureFlagsKHR=PPVkExternalSemaphoreFeatureFlags;
PVkExternalSemaphoreFeatureFlagsKHR=PVkExternalSemaphoreFeatureFlags;
TVkExternalSemaphoreFeatureFlagsKHR=TVkExternalSemaphoreFeatureFlags;
PPVkSemaphoreImportFlags=^PVkSemaphoreImportFlags;
PVkSemaphoreImportFlags=^TVkSemaphoreImportFlags;
TVkSemaphoreImportFlags=TVkFlags;
PPVkSemaphoreImportFlagsKHR=PPVkSemaphoreImportFlags;
PVkSemaphoreImportFlagsKHR=PVkSemaphoreImportFlags;
TVkSemaphoreImportFlagsKHR=TVkSemaphoreImportFlags;
PPVkExternalFenceHandleTypeFlags=^PVkExternalFenceHandleTypeFlags;
PVkExternalFenceHandleTypeFlags=^TVkExternalFenceHandleTypeFlags;
TVkExternalFenceHandleTypeFlags=TVkFlags;
PPVkExternalFenceHandleTypeFlagsKHR=PPVkExternalFenceHandleTypeFlags;
PVkExternalFenceHandleTypeFlagsKHR=PVkExternalFenceHandleTypeFlags;
TVkExternalFenceHandleTypeFlagsKHR=TVkExternalFenceHandleTypeFlags;
PPVkExternalFenceFeatureFlags=^PVkExternalFenceFeatureFlags;
PVkExternalFenceFeatureFlags=^TVkExternalFenceFeatureFlags;
TVkExternalFenceFeatureFlags=TVkFlags;
PPVkExternalFenceFeatureFlagsKHR=PPVkExternalFenceFeatureFlags;
PVkExternalFenceFeatureFlagsKHR=PVkExternalFenceFeatureFlags;
TVkExternalFenceFeatureFlagsKHR=TVkExternalFenceFeatureFlags;
PPVkFenceImportFlags=^PVkFenceImportFlags;
PVkFenceImportFlags=^TVkFenceImportFlags;
TVkFenceImportFlags=TVkFlags;
PPVkFenceImportFlagsKHR=PPVkFenceImportFlags;
PVkFenceImportFlagsKHR=PVkFenceImportFlags;
TVkFenceImportFlagsKHR=TVkFenceImportFlags;
PPVkSurfaceCounterFlagsEXT=^PVkSurfaceCounterFlagsEXT;
PVkSurfaceCounterFlagsEXT=^TVkSurfaceCounterFlagsEXT;
TVkSurfaceCounterFlagsEXT=TVkFlags;
PPVkPipelineViewportSwizzleStateCreateFlagsNV=^PVkPipelineViewportSwizzleStateCreateFlagsNV;
PVkPipelineViewportSwizzleStateCreateFlagsNV=^TVkPipelineViewportSwizzleStateCreateFlagsNV;
TVkPipelineViewportSwizzleStateCreateFlagsNV=TVkFlags;
PPVkPipelineDiscardRectangleStateCreateFlagsEXT=^PVkPipelineDiscardRectangleStateCreateFlagsEXT;
PVkPipelineDiscardRectangleStateCreateFlagsEXT=^TVkPipelineDiscardRectangleStateCreateFlagsEXT;
TVkPipelineDiscardRectangleStateCreateFlagsEXT=TVkFlags;
PPVkPipelineCoverageToColorStateCreateFlagsNV=^PVkPipelineCoverageToColorStateCreateFlagsNV;
PVkPipelineCoverageToColorStateCreateFlagsNV=^TVkPipelineCoverageToColorStateCreateFlagsNV;
TVkPipelineCoverageToColorStateCreateFlagsNV=TVkFlags;
PPVkPipelineCoverageModulationStateCreateFlagsNV=^PVkPipelineCoverageModulationStateCreateFlagsNV;
PVkPipelineCoverageModulationStateCreateFlagsNV=^TVkPipelineCoverageModulationStateCreateFlagsNV;
TVkPipelineCoverageModulationStateCreateFlagsNV=TVkFlags;
PPVkPipelineCoverageReductionStateCreateFlagsNV=^PVkPipelineCoverageReductionStateCreateFlagsNV;
PVkPipelineCoverageReductionStateCreateFlagsNV=^TVkPipelineCoverageReductionStateCreateFlagsNV;
TVkPipelineCoverageReductionStateCreateFlagsNV=TVkFlags;
PPVkValidationCacheCreateFlagsEXT=^PVkValidationCacheCreateFlagsEXT;
PVkValidationCacheCreateFlagsEXT=^TVkValidationCacheCreateFlagsEXT;
TVkValidationCacheCreateFlagsEXT=TVkFlags;
PPVkDebugUtilsMessageSeverityFlagsEXT=^PVkDebugUtilsMessageSeverityFlagsEXT;
PVkDebugUtilsMessageSeverityFlagsEXT=^TVkDebugUtilsMessageSeverityFlagsEXT;
TVkDebugUtilsMessageSeverityFlagsEXT=TVkFlags;
PPVkDebugUtilsMessageTypeFlagsEXT=^PVkDebugUtilsMessageTypeFlagsEXT;
PVkDebugUtilsMessageTypeFlagsEXT=^TVkDebugUtilsMessageTypeFlagsEXT;
TVkDebugUtilsMessageTypeFlagsEXT=TVkFlags;
PPVkDebugUtilsMessengerCreateFlagsEXT=^PVkDebugUtilsMessengerCreateFlagsEXT;
PVkDebugUtilsMessengerCreateFlagsEXT=^TVkDebugUtilsMessengerCreateFlagsEXT;
TVkDebugUtilsMessengerCreateFlagsEXT=TVkFlags;
PPVkDebugUtilsMessengerCallbackDataFlagsEXT=^PVkDebugUtilsMessengerCallbackDataFlagsEXT;
PVkDebugUtilsMessengerCallbackDataFlagsEXT=^TVkDebugUtilsMessengerCallbackDataFlagsEXT;
TVkDebugUtilsMessengerCallbackDataFlagsEXT=TVkFlags;
PPVkDeviceMemoryReportFlagsEXT=^PVkDeviceMemoryReportFlagsEXT;
PVkDeviceMemoryReportFlagsEXT=^TVkDeviceMemoryReportFlagsEXT;
TVkDeviceMemoryReportFlagsEXT=TVkFlags;
PPVkPipelineRasterizationConservativeStateCreateFlagsEXT=^PVkPipelineRasterizationConservativeStateCreateFlagsEXT;
PVkPipelineRasterizationConservativeStateCreateFlagsEXT=^TVkPipelineRasterizationConservativeStateCreateFlagsEXT;
TVkPipelineRasterizationConservativeStateCreateFlagsEXT=TVkFlags;
PPVkDescriptorBindingFlags=^PVkDescriptorBindingFlags;
PVkDescriptorBindingFlags=^TVkDescriptorBindingFlags;
TVkDescriptorBindingFlags=TVkFlags;
PPVkDescriptorBindingFlagsEXT=PPVkDescriptorBindingFlags;
PVkDescriptorBindingFlagsEXT=PVkDescriptorBindingFlags;
TVkDescriptorBindingFlagsEXT=TVkDescriptorBindingFlags;
PPVkConditionalRenderingFlagsEXT=^PVkConditionalRenderingFlagsEXT;
PVkConditionalRenderingFlagsEXT=^TVkConditionalRenderingFlagsEXT;
TVkConditionalRenderingFlagsEXT=TVkFlags;
PPVkResolveModeFlags=^PVkResolveModeFlags;
PVkResolveModeFlags=^TVkResolveModeFlags;
TVkResolveModeFlags=TVkFlags;
PPVkResolveModeFlagsKHR=PPVkResolveModeFlags;
PVkResolveModeFlagsKHR=PVkResolveModeFlags;
TVkResolveModeFlagsKHR=TVkResolveModeFlags;
PPVkPipelineRasterizationStateStreamCreateFlagsEXT=^PVkPipelineRasterizationStateStreamCreateFlagsEXT;
PVkPipelineRasterizationStateStreamCreateFlagsEXT=^TVkPipelineRasterizationStateStreamCreateFlagsEXT;
TVkPipelineRasterizationStateStreamCreateFlagsEXT=TVkFlags;
PPVkPipelineRasterizationDepthClipStateCreateFlagsEXT=^PVkPipelineRasterizationDepthClipStateCreateFlagsEXT;
PVkPipelineRasterizationDepthClipStateCreateFlagsEXT=^TVkPipelineRasterizationDepthClipStateCreateFlagsEXT;
TVkPipelineRasterizationDepthClipStateCreateFlagsEXT=TVkFlags;
PPVkSwapchainImageUsageFlagsANDROID=^PVkSwapchainImageUsageFlagsANDROID;
PVkSwapchainImageUsageFlagsANDROID=^TVkSwapchainImageUsageFlagsANDROID;
TVkSwapchainImageUsageFlagsANDROID=TVkFlags;
PPVkToolPurposeFlagsEXT=^PVkToolPurposeFlagsEXT;
PVkToolPurposeFlagsEXT=^TVkToolPurposeFlagsEXT;
TVkToolPurposeFlagsEXT=TVkFlags;
PPVkSubmitFlagsKHR=^PVkSubmitFlagsKHR;
PVkSubmitFlagsKHR=^TVkSubmitFlagsKHR;
TVkSubmitFlagsKHR=TVkFlags;
PPVkVideoCodecOperationFlagsKHR=^PVkVideoCodecOperationFlagsKHR;
PVkVideoCodecOperationFlagsKHR=^TVkVideoCodecOperationFlagsKHR;
TVkVideoCodecOperationFlagsKHR=TVkFlags;
PPVkVideoCapabilitiesFlagsKHR=^PVkVideoCapabilitiesFlagsKHR;
PVkVideoCapabilitiesFlagsKHR=^TVkVideoCapabilitiesFlagsKHR;
TVkVideoCapabilitiesFlagsKHR=TVkFlags;
PPVkVideoSessionCreateFlagsKHR=^PVkVideoSessionCreateFlagsKHR;
PVkVideoSessionCreateFlagsKHR=^TVkVideoSessionCreateFlagsKHR;
TVkVideoSessionCreateFlagsKHR=TVkFlags;
PPVkVideoBeginCodingFlagsKHR=^PVkVideoBeginCodingFlagsKHR;
PVkVideoBeginCodingFlagsKHR=^TVkVideoBeginCodingFlagsKHR;
TVkVideoBeginCodingFlagsKHR=TVkFlags;
PPVkVideoEndCodingFlagsKHR=^PVkVideoEndCodingFlagsKHR;
PVkVideoEndCodingFlagsKHR=^TVkVideoEndCodingFlagsKHR;
TVkVideoEndCodingFlagsKHR=TVkFlags;
PPVkVideoCodingQualityPresetFlagsKHR=^PVkVideoCodingQualityPresetFlagsKHR;
PVkVideoCodingQualityPresetFlagsKHR=^TVkVideoCodingQualityPresetFlagsKHR;
TVkVideoCodingQualityPresetFlagsKHR=TVkFlags;
PPVkVideoCodingControlFlagsKHR=^PVkVideoCodingControlFlagsKHR;
PVkVideoCodingControlFlagsKHR=^TVkVideoCodingControlFlagsKHR;
TVkVideoCodingControlFlagsKHR=TVkFlags;
PPVkVideoDecodeFlagsKHR=^PVkVideoDecodeFlagsKHR;
PVkVideoDecodeFlagsKHR=^TVkVideoDecodeFlagsKHR;
TVkVideoDecodeFlagsKHR=TVkFlags;
PPVkVideoDecodeH264FieldLayoutFlagsEXT=^PVkVideoDecodeH264FieldLayoutFlagsEXT;
PVkVideoDecodeH264FieldLayoutFlagsEXT=^TVkVideoDecodeH264FieldLayoutFlagsEXT;
TVkVideoDecodeH264FieldLayoutFlagsEXT=TVkFlags;
PPVkVideoDecodeH264CreateFlagsEXT=^PVkVideoDecodeH264CreateFlagsEXT;
PVkVideoDecodeH264CreateFlagsEXT=^TVkVideoDecodeH264CreateFlagsEXT;
TVkVideoDecodeH264CreateFlagsEXT=TVkFlags;
PPVkVideoDecodeH265CreateFlagsEXT=^PVkVideoDecodeH265CreateFlagsEXT;
PVkVideoDecodeH265CreateFlagsEXT=^TVkVideoDecodeH265CreateFlagsEXT;
TVkVideoDecodeH265CreateFlagsEXT=TVkFlags;
PPVkVideoEncodeFlagsKHR=^PVkVideoEncodeFlagsKHR;
PVkVideoEncodeFlagsKHR=^TVkVideoEncodeFlagsKHR;
TVkVideoEncodeFlagsKHR=TVkFlags;
PPVkVideoEncodeRateControlFlagsKHR=^PVkVideoEncodeRateControlFlagsKHR;
PVkVideoEncodeRateControlFlagsKHR=^TVkVideoEncodeRateControlFlagsKHR;
TVkVideoEncodeRateControlFlagsKHR=TVkFlags;
PPVkVideoEncodeRateControlModeFlagsKHR=^PVkVideoEncodeRateControlModeFlagsKHR;
PVkVideoEncodeRateControlModeFlagsKHR=^TVkVideoEncodeRateControlModeFlagsKHR;
TVkVideoEncodeRateControlModeFlagsKHR=TVkFlags;
PPVkVideoChromaSubsamplingFlagsKHR=^PVkVideoChromaSubsamplingFlagsKHR;
PVkVideoChromaSubsamplingFlagsKHR=^TVkVideoChromaSubsamplingFlagsKHR;
TVkVideoChromaSubsamplingFlagsKHR=TVkFlags;
PPVkVideoComponentBitDepthFlagsKHR=^PVkVideoComponentBitDepthFlagsKHR;
PVkVideoComponentBitDepthFlagsKHR=^TVkVideoComponentBitDepthFlagsKHR;
TVkVideoComponentBitDepthFlagsKHR=TVkFlags;
PPVkVideoEncodeH264CapabilitiesFlagsEXT=^PVkVideoEncodeH264CapabilitiesFlagsEXT;
PVkVideoEncodeH264CapabilitiesFlagsEXT=^TVkVideoEncodeH264CapabilitiesFlagsEXT;
TVkVideoEncodeH264CapabilitiesFlagsEXT=TVkFlags;
PPVkVideoEncodeH264InputModeFlagsEXT=^PVkVideoEncodeH264InputModeFlagsEXT;
PVkVideoEncodeH264InputModeFlagsEXT=^TVkVideoEncodeH264InputModeFlagsEXT;
TVkVideoEncodeH264InputModeFlagsEXT=TVkFlags;
PPVkVideoEncodeH264OutputModeFlagsEXT=^PVkVideoEncodeH264OutputModeFlagsEXT;
PVkVideoEncodeH264OutputModeFlagsEXT=^TVkVideoEncodeH264OutputModeFlagsEXT;
TVkVideoEncodeH264OutputModeFlagsEXT=TVkFlags;
PPVkVideoEncodeH264CreateFlagsEXT=^PVkVideoEncodeH264CreateFlagsEXT;
PVkVideoEncodeH264CreateFlagsEXT=^TVkVideoEncodeH264CreateFlagsEXT;
TVkVideoEncodeH264CreateFlagsEXT=TVkFlags;
PPVkInstance=^PVkInstance;
PVkInstance=^TVkInstance;
TVkInstance=TVkDispatchableHandle;
PPVkPhysicalDevice=^PVkPhysicalDevice;
PVkPhysicalDevice=^TVkPhysicalDevice;
TVkPhysicalDevice=TVkDispatchableHandle;
PPVkDevice=^PVkDevice;
PVkDevice=^TVkDevice;
TVkDevice=TVkDispatchableHandle;
PPVkQueue=^PVkQueue;
PVkQueue=^TVkQueue;
TVkQueue=TVkDispatchableHandle;
PPVkCommandBuffer=^PVkCommandBuffer;
PVkCommandBuffer=^TVkCommandBuffer;
TVkCommandBuffer=TVkDispatchableHandle;
PPVkDeviceMemory=^PVkDeviceMemory;
PVkDeviceMemory=^TVkDeviceMemory;
TVkDeviceMemory=TVkNonDispatchableHandle;
PPVkCommandPool=^PVkCommandPool;
PVkCommandPool=^TVkCommandPool;
TVkCommandPool=TVkNonDispatchableHandle;
PPVkBuffer=^PVkBuffer;
PVkBuffer=^TVkBuffer;
TVkBuffer=TVkNonDispatchableHandle;
PPVkBufferView=^PVkBufferView;
PVkBufferView=^TVkBufferView;
TVkBufferView=TVkNonDispatchableHandle;
PPVkImage=^PVkImage;
PVkImage=^TVkImage;
TVkImage=TVkNonDispatchableHandle;
PPVkImageView=^PVkImageView;
PVkImageView=^TVkImageView;
TVkImageView=TVkNonDispatchableHandle;
PPVkShaderModule=^PVkShaderModule;
PVkShaderModule=^TVkShaderModule;
TVkShaderModule=TVkNonDispatchableHandle;
PPVkPipeline=^PVkPipeline;
PVkPipeline=^TVkPipeline;
TVkPipeline=TVkNonDispatchableHandle;
PPVkPipelineLayout=^PVkPipelineLayout;
PVkPipelineLayout=^TVkPipelineLayout;
TVkPipelineLayout=TVkNonDispatchableHandle;
PPVkSampler=^PVkSampler;
PVkSampler=^TVkSampler;
TVkSampler=TVkNonDispatchableHandle;
PPVkDescriptorSet=^PVkDescriptorSet;
PVkDescriptorSet=^TVkDescriptorSet;
TVkDescriptorSet=TVkNonDispatchableHandle;
PPVkDescriptorSetLayout=^PVkDescriptorSetLayout;
PVkDescriptorSetLayout=^TVkDescriptorSetLayout;
TVkDescriptorSetLayout=TVkNonDispatchableHandle;
PPVkDescriptorPool=^PVkDescriptorPool;
PVkDescriptorPool=^TVkDescriptorPool;
TVkDescriptorPool=TVkNonDispatchableHandle;
PPVkFence=^PVkFence;
PVkFence=^TVkFence;
TVkFence=TVkNonDispatchableHandle;
PPVkSemaphore=^PVkSemaphore;
PVkSemaphore=^TVkSemaphore;
TVkSemaphore=TVkNonDispatchableHandle;
PPVkEvent=^PVkEvent;
PVkEvent=^TVkEvent;
TVkEvent=TVkNonDispatchableHandle;
PPVkQueryPool=^PVkQueryPool;
PVkQueryPool=^TVkQueryPool;
TVkQueryPool=TVkNonDispatchableHandle;
PPVkFramebuffer=^PVkFramebuffer;
PVkFramebuffer=^TVkFramebuffer;
TVkFramebuffer=TVkNonDispatchableHandle;
PPVkRenderPass=^PVkRenderPass;
PVkRenderPass=^TVkRenderPass;
TVkRenderPass=TVkNonDispatchableHandle;
PPVkPipelineCache=^PVkPipelineCache;
PVkPipelineCache=^TVkPipelineCache;
TVkPipelineCache=TVkNonDispatchableHandle;
PPVkIndirectCommandsLayoutNV=^PVkIndirectCommandsLayoutNV;
PVkIndirectCommandsLayoutNV=^TVkIndirectCommandsLayoutNV;
TVkIndirectCommandsLayoutNV=TVkNonDispatchableHandle;
PPVkDescriptorUpdateTemplate=^PVkDescriptorUpdateTemplate;
PVkDescriptorUpdateTemplate=^TVkDescriptorUpdateTemplate;
TVkDescriptorUpdateTemplate=TVkNonDispatchableHandle;
PPVkDescriptorUpdateTemplateKHR=PPVkDescriptorUpdateTemplate;
PVkDescriptorUpdateTemplateKHR=PVkDescriptorUpdateTemplate;
TVkDescriptorUpdateTemplateKHR=TVkDescriptorUpdateTemplate;
PPVkSamplerYcbcrConversion=^PVkSamplerYcbcrConversion;
PVkSamplerYcbcrConversion=^TVkSamplerYcbcrConversion;
TVkSamplerYcbcrConversion=TVkNonDispatchableHandle;
PPVkSamplerYcbcrConversionKHR=PPVkSamplerYcbcrConversion;
PVkSamplerYcbcrConversionKHR=PVkSamplerYcbcrConversion;
TVkSamplerYcbcrConversionKHR=TVkSamplerYcbcrConversion;
PPVkValidationCacheEXT=^PVkValidationCacheEXT;
PVkValidationCacheEXT=^TVkValidationCacheEXT;
TVkValidationCacheEXT=TVkNonDispatchableHandle;
PPVkAccelerationStructureKHR=^PVkAccelerationStructureKHR;
PVkAccelerationStructureKHR=^TVkAccelerationStructureKHR;
TVkAccelerationStructureKHR=TVkNonDispatchableHandle;
PPVkAccelerationStructureNV=^PVkAccelerationStructureNV;
PVkAccelerationStructureNV=^TVkAccelerationStructureNV;
TVkAccelerationStructureNV=TVkNonDispatchableHandle;
PPVkPerformanceConfigurationINTEL=^PVkPerformanceConfigurationINTEL;
PVkPerformanceConfigurationINTEL=^TVkPerformanceConfigurationINTEL;
TVkPerformanceConfigurationINTEL=TVkNonDispatchableHandle;
PPVkDeferredOperationKHR=^PVkDeferredOperationKHR;
PVkDeferredOperationKHR=^TVkDeferredOperationKHR;
TVkDeferredOperationKHR=TVkNonDispatchableHandle;
PPVkPrivateDataSlotEXT=^PVkPrivateDataSlotEXT;
PVkPrivateDataSlotEXT=^TVkPrivateDataSlotEXT;
TVkPrivateDataSlotEXT=TVkNonDispatchableHandle;
PPVkCuModuleNVX=^PVkCuModuleNVX;
PVkCuModuleNVX=^TVkCuModuleNVX;
TVkCuModuleNVX=TVkNonDispatchableHandle;
PPVkCuFunctionNVX=^PVkCuFunctionNVX;
PVkCuFunctionNVX=^TVkCuFunctionNVX;
TVkCuFunctionNVX=TVkNonDispatchableHandle;
PPVkDisplayKHR=^PVkDisplayKHR;
PVkDisplayKHR=^TVkDisplayKHR;
TVkDisplayKHR=TVkNonDispatchableHandle;
PPVkDisplayModeKHR=^PVkDisplayModeKHR;
PVkDisplayModeKHR=^TVkDisplayModeKHR;
TVkDisplayModeKHR=TVkNonDispatchableHandle;
PPVkSurfaceKHR=^PVkSurfaceKHR;
PVkSurfaceKHR=^TVkSurfaceKHR;
TVkSurfaceKHR=TVkNonDispatchableHandle;
PPVkSwapchainKHR=^PVkSwapchainKHR;
PVkSwapchainKHR=^TVkSwapchainKHR;
TVkSwapchainKHR=TVkNonDispatchableHandle;
PPVkDebugReportCallbackEXT=^PVkDebugReportCallbackEXT;
PVkDebugReportCallbackEXT=^TVkDebugReportCallbackEXT;
TVkDebugReportCallbackEXT=TVkNonDispatchableHandle;
PPVkDebugUtilsMessengerEXT=^PVkDebugUtilsMessengerEXT;
PVkDebugUtilsMessengerEXT=^TVkDebugUtilsMessengerEXT;
TVkDebugUtilsMessengerEXT=TVkNonDispatchableHandle;
PPVkVideoSessionKHR=^PVkVideoSessionKHR;
PVkVideoSessionKHR=^TVkVideoSessionKHR;
TVkVideoSessionKHR=TVkNonDispatchableHandle;
PPVkVideoSessionParametersKHR=^PVkVideoSessionParametersKHR;
PVkVideoSessionParametersKHR=^TVkVideoSessionParametersKHR;
TVkVideoSessionParametersKHR=TVkNonDispatchableHandle;
PPVkImageLayout=^PVkImageLayout;
PVkImageLayout=^TVkImageLayout;
TVkImageLayout=
(
VK_IMAGE_LAYOUT_UNDEFINED=0, //< Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
VK_IMAGE_LAYOUT_GENERAL=1, //< General layout when image can be used for any kind of access
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL=2, //< Optimal layout when image is only used for color attachment read/write
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL=3, //< Optimal layout when image is only used for depth/stencil attachment read/write
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL=4, //< Optimal layout when image is used for read only depth/stencil attachment and shader access
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL=5, //< Optimal layout when image is used for read only shader access
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL=6, //< Optimal layout when image is used only as source of transfer operations
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL=7, //< Optimal layout when image is used only as destination of transfer operations
VK_IMAGE_LAYOUT_PREINITIALIZED=8, //< Initial layout used when the data is populated by the CPU
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR=1000001002,
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR=1000024000,
VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR=1000024001,
VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR=1000024002,
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR=1000111000,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL=1000117000,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL=1000117001,
VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR=1000164003,
VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT=1000218000,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL=1000241000,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL=1000241001,
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL=1000241002,
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL=1000241003,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR=1000299000,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR=1000299001,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR=1000299002,
VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR=1000314000,
VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR=1000314001,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR=VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR=VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR=VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR=VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV=VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR=VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR=VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
);
PPVkAttachmentLoadOp=^PVkAttachmentLoadOp;
PVkAttachmentLoadOp=^TVkAttachmentLoadOp;
TVkAttachmentLoadOp=
(
VK_ATTACHMENT_LOAD_OP_LOAD=0,
VK_ATTACHMENT_LOAD_OP_CLEAR=1,
VK_ATTACHMENT_LOAD_OP_DONT_CARE=2
);
PPVkAttachmentStoreOp=^PVkAttachmentStoreOp;
PVkAttachmentStoreOp=^TVkAttachmentStoreOp;
TVkAttachmentStoreOp=
(
VK_ATTACHMENT_STORE_OP_STORE=0,
VK_ATTACHMENT_STORE_OP_DONT_CARE=1,
VK_ATTACHMENT_STORE_OP_NONE_QCOM=1000301000
);
PPVkImageType=^PVkImageType;
PVkImageType=^TVkImageType;
TVkImageType=
(
VK_IMAGE_TYPE_1D=0,
VK_IMAGE_TYPE_2D=1,
VK_IMAGE_TYPE_3D=2
);
PPVkImageTiling=^PVkImageTiling;
PVkImageTiling=^TVkImageTiling;
TVkImageTiling=
(
VK_IMAGE_TILING_OPTIMAL=0,
VK_IMAGE_TILING_LINEAR=1,
VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT=1000158000
);
PPVkImageViewType=^PVkImageViewType;
PVkImageViewType=^TVkImageViewType;
TVkImageViewType=
(
VK_IMAGE_VIEW_TYPE_1D=0,
VK_IMAGE_VIEW_TYPE_2D=1,
VK_IMAGE_VIEW_TYPE_3D=2,
VK_IMAGE_VIEW_TYPE_CUBE=3,
VK_IMAGE_VIEW_TYPE_1D_ARRAY=4,
VK_IMAGE_VIEW_TYPE_2D_ARRAY=5,
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY=6
);
PPVkCommandBufferLevel=^PVkCommandBufferLevel;
PVkCommandBufferLevel=^TVkCommandBufferLevel;
TVkCommandBufferLevel=
(
VK_COMMAND_BUFFER_LEVEL_PRIMARY=0,
VK_COMMAND_BUFFER_LEVEL_SECONDARY=1
);
PPVkComponentSwizzle=^PVkComponentSwizzle;
PVkComponentSwizzle=^TVkComponentSwizzle;
TVkComponentSwizzle=
(
VK_COMPONENT_SWIZZLE_IDENTITY=0,
VK_COMPONENT_SWIZZLE_ZERO=1,
VK_COMPONENT_SWIZZLE_ONE=2,
VK_COMPONENT_SWIZZLE_R=3,
VK_COMPONENT_SWIZZLE_G=4,
VK_COMPONENT_SWIZZLE_B=5,
VK_COMPONENT_SWIZZLE_A=6
);
PPVkDescriptorType=^PVkDescriptorType;
PVkDescriptorType=^TVkDescriptorType;
TVkDescriptorType=
(
VK_DESCRIPTOR_TYPE_SAMPLER=0,
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER=1,
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE=2,
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE=3,
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER=4,
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER=5,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER=6,
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER=7,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC=8,
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC=9,
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT=10,
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT=1000138000,
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR=1000150000,
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV=1000165000,
VK_DESCRIPTOR_TYPE_MUTABLE_VALVE=1000351000
);
PPVkQueryType=^PVkQueryType;
PVkQueryType=^TVkQueryType;
TVkQueryType=
(
VK_QUERY_TYPE_OCCLUSION=0,
VK_QUERY_TYPE_PIPELINE_STATISTICS=1, //< Optional
VK_QUERY_TYPE_TIMESTAMP=2,
VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR=1000023000,
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT=1000028004,
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR=1000116000,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR=1000150000,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR=1000150001,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV=1000165000,
VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL=1000210000,
VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR=1000299000
);
PPVkBorderColor=^PVkBorderColor;
PVkBorderColor=^TVkBorderColor;
TVkBorderColor=
(
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK=0,
VK_BORDER_COLOR_INT_TRANSPARENT_BLACK=1,
VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK=2,
VK_BORDER_COLOR_INT_OPAQUE_BLACK=3,
VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE=4,
VK_BORDER_COLOR_INT_OPAQUE_WHITE=5,
VK_BORDER_COLOR_FLOAT_CUSTOM_EXT=1000287003,
VK_BORDER_COLOR_INT_CUSTOM_EXT=1000287004
);
PPVkPipelineBindPoint=^PVkPipelineBindPoint;
PVkPipelineBindPoint=^TVkPipelineBindPoint;
TVkPipelineBindPoint=
(
VK_PIPELINE_BIND_POINT_GRAPHICS=0,
VK_PIPELINE_BIND_POINT_COMPUTE=1,
VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR=1000165000,
VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI=1000369003,
VK_PIPELINE_BIND_POINT_RAY_TRACING_NV=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR
);
PPVkPipelineCacheHeaderVersion=^PVkPipelineCacheHeaderVersion;
PVkPipelineCacheHeaderVersion=^TVkPipelineCacheHeaderVersion;
TVkPipelineCacheHeaderVersion=
(
VK_PIPELINE_CACHE_HEADER_VERSION_ONE=1
);
PPVkPipelineCacheCreateFlagBits=^PVkPipelineCacheCreateFlagBits;
PVkPipelineCacheCreateFlagBits=^TVkPipelineCacheCreateFlagBits;
TVkPipelineCacheCreateFlagBits=
(
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT=$00000001,
VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT=$00000002,
VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_KHR=$00000004,
VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_KHR=VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT
);
PPVkPrimitiveTopology=^PVkPrimitiveTopology;
PVkPrimitiveTopology=^TVkPrimitiveTopology;
TVkPrimitiveTopology=
(
VK_PRIMITIVE_TOPOLOGY_POINT_LIST=0,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST=1,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP=2,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST=3,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP=4,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN=5,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY=6,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY=7,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY=8,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY=9,
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST=10
);
PPVkSharingMode=^PVkSharingMode;
PVkSharingMode=^TVkSharingMode;
TVkSharingMode=
(
VK_SHARING_MODE_EXCLUSIVE=0,
VK_SHARING_MODE_CONCURRENT=1
);
PPVkIndexType=^PVkIndexType;
PVkIndexType=^TVkIndexType;
TVkIndexType=
(
VK_INDEX_TYPE_UINT16=0,
VK_INDEX_TYPE_UINT32=1,
VK_INDEX_TYPE_NONE_KHR=1000165000,
VK_INDEX_TYPE_UINT8_EXT=1000265000,
VK_INDEX_TYPE_NONE_NV=VK_INDEX_TYPE_NONE_KHR
);
PPVkFilter=^PVkFilter;
PVkFilter=^TVkFilter;
TVkFilter=
(
VK_FILTER_NEAREST=0,
VK_FILTER_LINEAR=1,
VK_FILTER_CUBIC_IMG=1000015000,
VK_FILTER_CUBIC_EXT=VK_FILTER_CUBIC_IMG
);
PPVkSamplerMipmapMode=^PVkSamplerMipmapMode;
PVkSamplerMipmapMode=^TVkSamplerMipmapMode;
TVkSamplerMipmapMode=
(
VK_SAMPLER_MIPMAP_MODE_NEAREST=0, //< Choose nearest mip level
VK_SAMPLER_MIPMAP_MODE_LINEAR=1 //< Linear filter between mip levels
);
PPVkSamplerAddressMode=^PVkSamplerAddressMode;
PVkSamplerAddressMode=^TVkSamplerAddressMode;
TVkSamplerAddressMode=
(
VK_SAMPLER_ADDRESS_MODE_REPEAT=0,
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT=1,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE=2,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER=3,
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE=4,
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR=VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
);
PPVkCompareOp=^PVkCompareOp;
PVkCompareOp=^TVkCompareOp;
TVkCompareOp=
(
VK_COMPARE_OP_NEVER=0,
VK_COMPARE_OP_LESS=1,
VK_COMPARE_OP_EQUAL=2,
VK_COMPARE_OP_LESS_OR_EQUAL=3,
VK_COMPARE_OP_GREATER=4,
VK_COMPARE_OP_NOT_EQUAL=5,
VK_COMPARE_OP_GREATER_OR_EQUAL=6,
VK_COMPARE_OP_ALWAYS=7
);
PPVkPolygonMode=^PVkPolygonMode;
PVkPolygonMode=^TVkPolygonMode;
TVkPolygonMode=
(
VK_POLYGON_MODE_FILL=0,
VK_POLYGON_MODE_LINE=1,
VK_POLYGON_MODE_POINT=2,
VK_POLYGON_MODE_FILL_RECTANGLE_NV=1000153000
);
PPVkFrontFace=^PVkFrontFace;
PVkFrontFace=^TVkFrontFace;
TVkFrontFace=
(
VK_FRONT_FACE_COUNTER_CLOCKWISE=0,
VK_FRONT_FACE_CLOCKWISE=1
);
PPVkBlendFactor=^PVkBlendFactor;
PVkBlendFactor=^TVkBlendFactor;
TVkBlendFactor=
(
VK_BLEND_FACTOR_ZERO=0,
VK_BLEND_FACTOR_ONE=1,
VK_BLEND_FACTOR_SRC_COLOR=2,
VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR=3,
VK_BLEND_FACTOR_DST_COLOR=4,
VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR=5,
VK_BLEND_FACTOR_SRC_ALPHA=6,
VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA=7,
VK_BLEND_FACTOR_DST_ALPHA=8,
VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA=9,
VK_BLEND_FACTOR_CONSTANT_COLOR=10,
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR=11,
VK_BLEND_FACTOR_CONSTANT_ALPHA=12,
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA=13,
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE=14,
VK_BLEND_FACTOR_SRC1_COLOR=15,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR=16,
VK_BLEND_FACTOR_SRC1_ALPHA=17,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA=18
);
PPVkBlendOp=^PVkBlendOp;
PVkBlendOp=^TVkBlendOp;
TVkBlendOp=
(
VK_BLEND_OP_ADD=0,
VK_BLEND_OP_SUBTRACT=1,
VK_BLEND_OP_REVERSE_SUBTRACT=2,
VK_BLEND_OP_MIN=3,
VK_BLEND_OP_MAX=4,
VK_BLEND_OP_ZERO_EXT=1000148000,
VK_BLEND_OP_SRC_EXT=1000148001,
VK_BLEND_OP_DST_EXT=1000148002,
VK_BLEND_OP_SRC_OVER_EXT=1000148003,
VK_BLEND_OP_DST_OVER_EXT=1000148004,
VK_BLEND_OP_SRC_IN_EXT=1000148005,
VK_BLEND_OP_DST_IN_EXT=1000148006,
VK_BLEND_OP_SRC_OUT_EXT=1000148007,
VK_BLEND_OP_DST_OUT_EXT=1000148008,
VK_BLEND_OP_SRC_ATOP_EXT=1000148009,
VK_BLEND_OP_DST_ATOP_EXT=1000148010,
VK_BLEND_OP_XOR_EXT=1000148011,
VK_BLEND_OP_MULTIPLY_EXT=1000148012,
VK_BLEND_OP_SCREEN_EXT=1000148013,
VK_BLEND_OP_OVERLAY_EXT=1000148014,
VK_BLEND_OP_DARKEN_EXT=1000148015,
VK_BLEND_OP_LIGHTEN_EXT=1000148016,
VK_BLEND_OP_COLORDODGE_EXT=1000148017,
VK_BLEND_OP_COLORBURN_EXT=1000148018,
VK_BLEND_OP_HARDLIGHT_EXT=1000148019,
VK_BLEND_OP_SOFTLIGHT_EXT=1000148020,
VK_BLEND_OP_DIFFERENCE_EXT=1000148021,
VK_BLEND_OP_EXCLUSION_EXT=1000148022,
VK_BLEND_OP_INVERT_EXT=1000148023,
VK_BLEND_OP_INVERT_RGB_EXT=1000148024,
VK_BLEND_OP_LINEARDODGE_EXT=1000148025,
VK_BLEND_OP_LINEARBURN_EXT=1000148026,
VK_BLEND_OP_VIVIDLIGHT_EXT=1000148027,
VK_BLEND_OP_LINEARLIGHT_EXT=1000148028,
VK_BLEND_OP_PINLIGHT_EXT=1000148029,
VK_BLEND_OP_HARDMIX_EXT=1000148030,
VK_BLEND_OP_HSL_HUE_EXT=1000148031,
VK_BLEND_OP_HSL_SATURATION_EXT=1000148032,
VK_BLEND_OP_HSL_COLOR_EXT=1000148033,
VK_BLEND_OP_HSL_LUMINOSITY_EXT=1000148034,
VK_BLEND_OP_PLUS_EXT=1000148035,
VK_BLEND_OP_PLUS_CLAMPED_EXT=1000148036,
VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT=1000148037,
VK_BLEND_OP_PLUS_DARKER_EXT=1000148038,
VK_BLEND_OP_MINUS_EXT=1000148039,
VK_BLEND_OP_MINUS_CLAMPED_EXT=1000148040,
VK_BLEND_OP_CONTRAST_EXT=1000148041,
VK_BLEND_OP_INVERT_OVG_EXT=1000148042,
VK_BLEND_OP_RED_EXT=1000148043,
VK_BLEND_OP_GREEN_EXT=1000148044,
VK_BLEND_OP_BLUE_EXT=1000148045
);
PPVkStencilOp=^PVkStencilOp;
PVkStencilOp=^TVkStencilOp;
TVkStencilOp=
(
VK_STENCIL_OP_KEEP=0,
VK_STENCIL_OP_ZERO=1,
VK_STENCIL_OP_REPLACE=2,
VK_STENCIL_OP_INCREMENT_AND_CLAMP=3,
VK_STENCIL_OP_DECREMENT_AND_CLAMP=4,
VK_STENCIL_OP_INVERT=5,
VK_STENCIL_OP_INCREMENT_AND_WRAP=6,
VK_STENCIL_OP_DECREMENT_AND_WRAP=7
);
PPVkLogicOp=^PVkLogicOp;
PVkLogicOp=^TVkLogicOp;
TVkLogicOp=
(
VK_LOGIC_OP_CLEAR=0,
VK_LOGIC_OP_AND=1,
VK_LOGIC_OP_AND_REVERSE=2,
VK_LOGIC_OP_COPY=3,
VK_LOGIC_OP_AND_INVERTED=4,
VK_LOGIC_OP_NO_OP=5,
VK_LOGIC_OP_XOR=6,
VK_LOGIC_OP_OR=7,
VK_LOGIC_OP_NOR=8,
VK_LOGIC_OP_EQUIVALENT=9,
VK_LOGIC_OP_INVERT=10,
VK_LOGIC_OP_OR_REVERSE=11,
VK_LOGIC_OP_COPY_INVERTED=12,
VK_LOGIC_OP_OR_INVERTED=13,
VK_LOGIC_OP_NAND=14,
VK_LOGIC_OP_SET=15
);
PPVkInternalAllocationType=^PVkInternalAllocationType;
PVkInternalAllocationType=^TVkInternalAllocationType;
TVkInternalAllocationType=
(
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE=0
);
PPVkSystemAllocationScope=^PVkSystemAllocationScope;
PVkSystemAllocationScope=^TVkSystemAllocationScope;
TVkSystemAllocationScope=
(
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND=0,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT=1,
VK_SYSTEM_ALLOCATION_SCOPE_CACHE=2,
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE=3,
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE=4
);
PPVkPhysicalDeviceType=^PVkPhysicalDeviceType;
PVkPhysicalDeviceType=^TVkPhysicalDeviceType;
TVkPhysicalDeviceType=
(
VK_PHYSICAL_DEVICE_TYPE_OTHER=0,
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU=1,
VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU=2,
VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU=3,
VK_PHYSICAL_DEVICE_TYPE_CPU=4
);
PPVkVertexInputRate=^PVkVertexInputRate;
PVkVertexInputRate=^TVkVertexInputRate;
TVkVertexInputRate=
(
VK_VERTEX_INPUT_RATE_VERTEX=0,
VK_VERTEX_INPUT_RATE_INSTANCE=1
);
PPVkFormat=^PVkFormat;
PVkFormat=^TVkFormat;
TVkFormat=
(
VK_FORMAT_UNDEFINED=0,
VK_FORMAT_R4G4_UNORM_PACK8=1,
VK_FORMAT_R4G4B4A4_UNORM_PACK16=2,
VK_FORMAT_B4G4R4A4_UNORM_PACK16=3,
VK_FORMAT_R5G6B5_UNORM_PACK16=4,
VK_FORMAT_B5G6R5_UNORM_PACK16=5,
VK_FORMAT_R5G5B5A1_UNORM_PACK16=6,
VK_FORMAT_B5G5R5A1_UNORM_PACK16=7,
VK_FORMAT_A1R5G5B5_UNORM_PACK16=8,
VK_FORMAT_R8_UNORM=9,
VK_FORMAT_R8_SNORM=10,
VK_FORMAT_R8_USCALED=11,
VK_FORMAT_R8_SSCALED=12,
VK_FORMAT_R8_UINT=13,
VK_FORMAT_R8_SINT=14,
VK_FORMAT_R8_SRGB=15,
VK_FORMAT_R8G8_UNORM=16,
VK_FORMAT_R8G8_SNORM=17,
VK_FORMAT_R8G8_USCALED=18,
VK_FORMAT_R8G8_SSCALED=19,
VK_FORMAT_R8G8_UINT=20,
VK_FORMAT_R8G8_SINT=21,
VK_FORMAT_R8G8_SRGB=22,
VK_FORMAT_R8G8B8_UNORM=23,
VK_FORMAT_R8G8B8_SNORM=24,
VK_FORMAT_R8G8B8_USCALED=25,
VK_FORMAT_R8G8B8_SSCALED=26,
VK_FORMAT_R8G8B8_UINT=27,
VK_FORMAT_R8G8B8_SINT=28,
VK_FORMAT_R8G8B8_SRGB=29,
VK_FORMAT_B8G8R8_UNORM=30,
VK_FORMAT_B8G8R8_SNORM=31,
VK_FORMAT_B8G8R8_USCALED=32,
VK_FORMAT_B8G8R8_SSCALED=33,
VK_FORMAT_B8G8R8_UINT=34,
VK_FORMAT_B8G8R8_SINT=35,
VK_FORMAT_B8G8R8_SRGB=36,
VK_FORMAT_R8G8B8A8_UNORM=37,
VK_FORMAT_R8G8B8A8_SNORM=38,
VK_FORMAT_R8G8B8A8_USCALED=39,
VK_FORMAT_R8G8B8A8_SSCALED=40,
VK_FORMAT_R8G8B8A8_UINT=41,
VK_FORMAT_R8G8B8A8_SINT=42,
VK_FORMAT_R8G8B8A8_SRGB=43,
VK_FORMAT_B8G8R8A8_UNORM=44,
VK_FORMAT_B8G8R8A8_SNORM=45,
VK_FORMAT_B8G8R8A8_USCALED=46,
VK_FORMAT_B8G8R8A8_SSCALED=47,
VK_FORMAT_B8G8R8A8_UINT=48,
VK_FORMAT_B8G8R8A8_SINT=49,
VK_FORMAT_B8G8R8A8_SRGB=50,
VK_FORMAT_A8B8G8R8_UNORM_PACK32=51,
VK_FORMAT_A8B8G8R8_SNORM_PACK32=52,
VK_FORMAT_A8B8G8R8_USCALED_PACK32=53,
VK_FORMAT_A8B8G8R8_SSCALED_PACK32=54,
VK_FORMAT_A8B8G8R8_UINT_PACK32=55,
VK_FORMAT_A8B8G8R8_SINT_PACK32=56,
VK_FORMAT_A8B8G8R8_SRGB_PACK32=57,
VK_FORMAT_A2R10G10B10_UNORM_PACK32=58,
VK_FORMAT_A2R10G10B10_SNORM_PACK32=59,
VK_FORMAT_A2R10G10B10_USCALED_PACK32=60,
VK_FORMAT_A2R10G10B10_SSCALED_PACK32=61,
VK_FORMAT_A2R10G10B10_UINT_PACK32=62,
VK_FORMAT_A2R10G10B10_SINT_PACK32=63,
VK_FORMAT_A2B10G10R10_UNORM_PACK32=64,
VK_FORMAT_A2B10G10R10_SNORM_PACK32=65,
VK_FORMAT_A2B10G10R10_USCALED_PACK32=66,
VK_FORMAT_A2B10G10R10_SSCALED_PACK32=67,
VK_FORMAT_A2B10G10R10_UINT_PACK32=68,
VK_FORMAT_A2B10G10R10_SINT_PACK32=69,
VK_FORMAT_R16_UNORM=70,
VK_FORMAT_R16_SNORM=71,
VK_FORMAT_R16_USCALED=72,
VK_FORMAT_R16_SSCALED=73,
VK_FORMAT_R16_UINT=74,
VK_FORMAT_R16_SINT=75,
VK_FORMAT_R16_SFLOAT=76,
VK_FORMAT_R16G16_UNORM=77,
VK_FORMAT_R16G16_SNORM=78,
VK_FORMAT_R16G16_USCALED=79,
VK_FORMAT_R16G16_SSCALED=80,
VK_FORMAT_R16G16_UINT=81,
VK_FORMAT_R16G16_SINT=82,
VK_FORMAT_R16G16_SFLOAT=83,
VK_FORMAT_R16G16B16_UNORM=84,
VK_FORMAT_R16G16B16_SNORM=85,
VK_FORMAT_R16G16B16_USCALED=86,
VK_FORMAT_R16G16B16_SSCALED=87,
VK_FORMAT_R16G16B16_UINT=88,
VK_FORMAT_R16G16B16_SINT=89,
VK_FORMAT_R16G16B16_SFLOAT=90,
VK_FORMAT_R16G16B16A16_UNORM=91,
VK_FORMAT_R16G16B16A16_SNORM=92,
VK_FORMAT_R16G16B16A16_USCALED=93,
VK_FORMAT_R16G16B16A16_SSCALED=94,
VK_FORMAT_R16G16B16A16_UINT=95,
VK_FORMAT_R16G16B16A16_SINT=96,
VK_FORMAT_R16G16B16A16_SFLOAT=97,
VK_FORMAT_R32_UINT=98,
VK_FORMAT_R32_SINT=99,
VK_FORMAT_R32_SFLOAT=100,
VK_FORMAT_R32G32_UINT=101,
VK_FORMAT_R32G32_SINT=102,
VK_FORMAT_R32G32_SFLOAT=103,
VK_FORMAT_R32G32B32_UINT=104,
VK_FORMAT_R32G32B32_SINT=105,
VK_FORMAT_R32G32B32_SFLOAT=106,
VK_FORMAT_R32G32B32A32_UINT=107,
VK_FORMAT_R32G32B32A32_SINT=108,
VK_FORMAT_R32G32B32A32_SFLOAT=109,
VK_FORMAT_R64_UINT=110,
VK_FORMAT_R64_SINT=111,
VK_FORMAT_R64_SFLOAT=112,
VK_FORMAT_R64G64_UINT=113,
VK_FORMAT_R64G64_SINT=114,
VK_FORMAT_R64G64_SFLOAT=115,
VK_FORMAT_R64G64B64_UINT=116,
VK_FORMAT_R64G64B64_SINT=117,
VK_FORMAT_R64G64B64_SFLOAT=118,
VK_FORMAT_R64G64B64A64_UINT=119,
VK_FORMAT_R64G64B64A64_SINT=120,
VK_FORMAT_R64G64B64A64_SFLOAT=121,
VK_FORMAT_B10G11R11_UFLOAT_PACK32=122,
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32=123,
VK_FORMAT_D16_UNORM=124,
VK_FORMAT_X8_D24_UNORM_PACK32=125,
VK_FORMAT_D32_SFLOAT=126,
VK_FORMAT_S8_UINT=127,
VK_FORMAT_D16_UNORM_S8_UINT=128,
VK_FORMAT_D24_UNORM_S8_UINT=129,
VK_FORMAT_D32_SFLOAT_S8_UINT=130,
VK_FORMAT_BC1_RGB_UNORM_BLOCK=131,
VK_FORMAT_BC1_RGB_SRGB_BLOCK=132,
VK_FORMAT_BC1_RGBA_UNORM_BLOCK=133,
VK_FORMAT_BC1_RGBA_SRGB_BLOCK=134,
VK_FORMAT_BC2_UNORM_BLOCK=135,
VK_FORMAT_BC2_SRGB_BLOCK=136,
VK_FORMAT_BC3_UNORM_BLOCK=137,
VK_FORMAT_BC3_SRGB_BLOCK=138,
VK_FORMAT_BC4_UNORM_BLOCK=139,
VK_FORMAT_BC4_SNORM_BLOCK=140,
VK_FORMAT_BC5_UNORM_BLOCK=141,
VK_FORMAT_BC5_SNORM_BLOCK=142,
VK_FORMAT_BC6H_UFLOAT_BLOCK=143,
VK_FORMAT_BC6H_SFLOAT_BLOCK=144,
VK_FORMAT_BC7_UNORM_BLOCK=145,
VK_FORMAT_BC7_SRGB_BLOCK=146,
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK=147,
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK=148,
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK=149,
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK=150,
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK=151,
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK=152,
VK_FORMAT_EAC_R11_UNORM_BLOCK=153,
VK_FORMAT_EAC_R11_SNORM_BLOCK=154,
VK_FORMAT_EAC_R11G11_UNORM_BLOCK=155,
VK_FORMAT_EAC_R11G11_SNORM_BLOCK=156,
VK_FORMAT_ASTC_4x4_UNORM_BLOCK=157,
VK_FORMAT_ASTC_4x4_SRGB_BLOCK=158,
VK_FORMAT_ASTC_5x4_UNORM_BLOCK=159,
VK_FORMAT_ASTC_5x4_SRGB_BLOCK=160,
VK_FORMAT_ASTC_5x5_UNORM_BLOCK=161,
VK_FORMAT_ASTC_5x5_SRGB_BLOCK=162,
VK_FORMAT_ASTC_6x5_UNORM_BLOCK=163,
VK_FORMAT_ASTC_6x5_SRGB_BLOCK=164,
VK_FORMAT_ASTC_6x6_UNORM_BLOCK=165,
VK_FORMAT_ASTC_6x6_SRGB_BLOCK=166,
VK_FORMAT_ASTC_8x5_UNORM_BLOCK=167,
VK_FORMAT_ASTC_8x5_SRGB_BLOCK=168,
VK_FORMAT_ASTC_8x6_UNORM_BLOCK=169,
VK_FORMAT_ASTC_8x6_SRGB_BLOCK=170,
VK_FORMAT_ASTC_8x8_UNORM_BLOCK=171,
VK_FORMAT_ASTC_8x8_SRGB_BLOCK=172,
VK_FORMAT_ASTC_10x5_UNORM_BLOCK=173,
VK_FORMAT_ASTC_10x5_SRGB_BLOCK=174,
VK_FORMAT_ASTC_10x6_UNORM_BLOCK=175,
VK_FORMAT_ASTC_10x6_SRGB_BLOCK=176,
VK_FORMAT_ASTC_10x8_UNORM_BLOCK=177,
VK_FORMAT_ASTC_10x8_SRGB_BLOCK=178,
VK_FORMAT_ASTC_10x10_UNORM_BLOCK=179,
VK_FORMAT_ASTC_10x10_SRGB_BLOCK=180,
VK_FORMAT_ASTC_12x10_UNORM_BLOCK=181,
VK_FORMAT_ASTC_12x10_SRGB_BLOCK=182,
VK_FORMAT_ASTC_12x12_UNORM_BLOCK=183,
VK_FORMAT_ASTC_12x12_SRGB_BLOCK=184,
VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG=1000054000,
VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG=1000054001,
VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG=1000054002,
VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG=1000054003,
VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG=1000054004,
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG=1000054005,
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG=1000054006,
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG=1000054007,
VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT=1000066000,
VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT=1000066001,
VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT=1000066002,
VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT=1000066003,
VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT=1000066004,
VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT=1000066005,
VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT=1000066006,
VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT=1000066007,
VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT=1000066008,
VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT=1000066009,
VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT=1000066010,
VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT=1000066011,
VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT=1000066012,
VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT=1000066013,
VK_FORMAT_G8B8G8R8_422_UNORM=1000156000,
VK_FORMAT_B8G8R8G8_422_UNORM=1000156001,
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM=1000156002,
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM=1000156003,
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM=1000156004,
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM=1000156005,
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM=1000156006,
VK_FORMAT_R10X6_UNORM_PACK16=1000156007,
VK_FORMAT_R10X6G10X6_UNORM_2PACK16=1000156008,
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16=1000156009,
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16=1000156010,
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16=1000156011,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16=1000156012,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16=1000156013,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16=1000156014,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16=1000156015,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16=1000156016,
VK_FORMAT_R12X4_UNORM_PACK16=1000156017,
VK_FORMAT_R12X4G12X4_UNORM_2PACK16=1000156018,
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16=1000156019,
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16=1000156020,
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16=1000156021,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16=1000156022,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16=1000156023,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16=1000156024,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16=1000156025,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16=1000156026,
VK_FORMAT_G16B16G16R16_422_UNORM=1000156027,
VK_FORMAT_B16G16R16G16_422_UNORM=1000156028,
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM=1000156029,
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM=1000156030,
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM=1000156031,
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM=1000156032,
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM=1000156033,
VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT=1000288000,
VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT=1000288001,
VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT=1000288002,
VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT=1000288003,
VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT=1000288004,
VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT=1000288005,
VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT=1000288006,
VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT=1000288007,
VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT=1000288008,
VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT=1000288009,
VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT=1000288010,
VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT=1000288011,
VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT=1000288012,
VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT=1000288013,
VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT=1000288014,
VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT=1000288015,
VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT=1000288016,
VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT=1000288017,
VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT=1000288018,
VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT=1000288019,
VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT=1000288020,
VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT=1000288021,
VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT=1000288022,
VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT=1000288023,
VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT=1000288024,
VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT=1000288025,
VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT=1000288026,
VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT=1000288027,
VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT=1000288028,
VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT=1000288029,
VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT=1000330000,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT=1000330001,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT=1000330002,
VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT=1000330003,
VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT=1000340000,
VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT=1000340001,
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR=VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR=VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
VK_FORMAT_B16G16R16G16_422_UNORM_KHR=VK_FORMAT_B16G16R16G16_422_UNORM,
VK_FORMAT_B8G8R8G8_422_UNORM_KHR=VK_FORMAT_B8G8R8G8_422_UNORM,
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR=VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR=VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR=VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR=VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR=VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR=VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR=VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR=VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR=VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR=VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR=VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR=VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
VK_FORMAT_G16B16G16R16_422_UNORM_KHR=VK_FORMAT_G16B16G16R16_422_UNORM,
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR=VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR=VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR=VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR=VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR=VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
VK_FORMAT_G8B8G8R8_422_UNORM_KHR=VK_FORMAT_G8B8G8R8_422_UNORM,
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR=VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR=VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR=VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR=VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR=VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR=VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR=VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
VK_FORMAT_R10X6_UNORM_PACK16_KHR=VK_FORMAT_R10X6_UNORM_PACK16,
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR=VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR=VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
VK_FORMAT_R12X4_UNORM_PACK16_KHR=VK_FORMAT_R12X4_UNORM_PACK16
);
PPVkStructureType=^PVkStructureType;
PVkStructureType=^TVkStructureType;
TVkStructureType=
(
VK_STRUCTURE_TYPE_APPLICATION_INFO=0,
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO=1,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO=2,
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO=3,
VK_STRUCTURE_TYPE_SUBMIT_INFO=4,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO=5,
VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE=6,
VK_STRUCTURE_TYPE_BIND_SPARSE_INFO=7,
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO=8,
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO=9,
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO=10,
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO=11,
VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO=12,
VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO=13,
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO=14,
VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO=15,
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO=16,
VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO=17,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO=18,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO=19,
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO=20,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO=21,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO=22,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO=23,
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO=24,
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO=25,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO=26,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO=27,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO=28,
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO=29,
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO=30,
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO=31,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO=32,
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO=33,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO=34,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET=35,
VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET=36,
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO=37,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO=38,
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO=39,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO=40,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO=41,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO=42,
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO=43,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER=44,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER=45,
VK_STRUCTURE_TYPE_MEMORY_BARRIER=46,
VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO=47, //< Reserved for internal use by the loader, layers, and ICDs
VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO=48, //< Reserved for internal use by the loader, layers, and ICDs
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES=49,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES=50,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES=51,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES=52,
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR=1000001000,
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR=1000001001,
VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR=1000002000,
VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR=1000002001,
VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR=1000003000,
VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR=1000004000,
VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR=1000005000,
VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR=1000006000,
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR=1000008000,
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR=1000009000,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID=1000010000,
VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID=1000010001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID=1000010002,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT=1000011000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD=1000018000,
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT=1000022000,
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT=1000022001,
VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT=1000022002,
VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR=1000023000,
VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR=1000023001,
VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR=1000023002,
VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR=1000023003,
VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR=1000023004,
VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR=1000023005,
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR=1000023006,
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR=1000023007,
VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR=1000023008,
VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR=1000023009,
VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR=1000023010,
VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR=1000023011,
VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR=1000023012,
VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR=1000023013,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR=1000023014,
VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR=1000023015,
VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR=1000024000,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV=1000026000,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV=1000026001,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV=1000026002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT=1000028000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT=1000028001,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT=1000028002,
VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX=1000029000,
VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX=1000029001,
VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX=1000029002,
VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX=1000030000,
VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX=1000030001,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT=1000038000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT=1000038001,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT=1000038002,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT=1000038003,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT=1000038004,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT=1000038005,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT=1000038006,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT=1000038007,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT=1000038008,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT=1000040000,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT=1000040001,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT=1000040002,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT=1000040003,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT=1000040004,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT=1000040005,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT=1000040006,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT=1000040007,
VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD=1000041000,
VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP=1000049000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV=1000050000,
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO=1000053000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES=1000053001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES=1000053002,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV=1000056000,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV=1000056001,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV=1000057000,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV=1000057001,
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV=1000058000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2=1000059000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2=1000059001,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2=1000059002,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2=1000059003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2=1000059004,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2=1000059005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2=1000059006,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2=1000059007,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2=1000059008,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO=1000060000,
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO=1000060003,
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO=1000060004,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO=1000060005,
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO=1000060006,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR=1000060007,
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR=1000060008,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR=1000060009,
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR=1000060010,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR=1000060011,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR=1000060012,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO=1000060013,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO=1000060014,
VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT=1000061000,
VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN=1000062000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES=1000063000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT=1000066000,
VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT=1000067000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT=1000067001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES=1000070000,
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO=1000070001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO=1000071000,
VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES=1000071001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO=1000071002,
VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES=1000071003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES=1000071004,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO=1000072000,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO=1000072001,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO=1000072002,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR=1000073000,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR=1000073001,
VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR=1000073002,
VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR=1000073003,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR=1000074000,
VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR=1000074001,
VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR=1000074002,
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR=1000075000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO=1000076000,
VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES=1000076001,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO=1000077000,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR=1000078000,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR=1000078001,
VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR=1000078002,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR=1000078003,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR=1000079000,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR=1000079001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR=1000080000,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT=1000081000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT=1000081001,
VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT=1000081002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES=1000082000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES=1000083000,
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR=1000084000,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO=1000085000,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV=1000087000,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT=1000090000,
VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT=1000091000,
VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT=1000091001,
VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT=1000091002,
VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT=1000091003,
VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE=1000092000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES=1000094000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX=1000097000,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV=1000098000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT=1000099000,
VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT=1000099001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT=1000101000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT=1000101001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT=1000102000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT=1000102001,
VK_STRUCTURE_TYPE_HDR_METADATA_EXT=1000105000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES=1000108000,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO=1000108001,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO=1000108002,
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO=1000108003,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2=1000109000,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2=1000109001,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2=1000109002,
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2=1000109003,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2=1000109004,
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO=1000109005,
VK_STRUCTURE_TYPE_SUBPASS_END_INFO=1000109006,
VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR=1000111000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO=1000112000,
VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES=1000112001,
VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO=1000113000,
VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR=1000114000,
VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR=1000114001,
VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR=1000114002,
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR=1000115000,
VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR=1000115001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR=1000116000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR=1000116001,
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR=1000116002,
VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR=1000116003,
VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR=1000116004,
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR=1000116005,
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR=1000116006,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES=1000117000,
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO=1000117001,
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO=1000117002,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO=1000117003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR=1000119000,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR=1000119001,
VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR=1000119002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES=1000120000,
VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR=1000121000,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR=1000121001,
VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR=1000121002,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR=1000121003,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR=1000121004,
VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK=1000122000,
VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK=1000123000,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS=1000127000,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO=1000127001,
VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT=1000128000,
VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT=1000128001,
VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT=1000128002,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT=1000128003,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT=1000128004,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID=1000129000,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID=1000129001,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID=1000129002,
VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID=1000129003,
VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID=1000129004,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID=1000129005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES=1000130000,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO=1000130001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT=1000138000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT=1000138001,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT=1000138002,
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT=1000138003,
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT=1000143000,
VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT=1000143001,
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT=1000143002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT=1000143003,
VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT=1000143004,
VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO=1000145000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES=1000145001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES=1000145002,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2=1000145003,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2=1000146000,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2=1000146001,
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2=1000146002,
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2=1000146003,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2=1000146004,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO=1000147000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT=1000148000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT=1000148001,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT=1000148002,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV=1000149000,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR=1000150000,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR=1000150002,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR=1000150003,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR=1000150004,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR=1000150005,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR=1000150006,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR=1000150007,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR=1000150009,
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR=1000150010,
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR=1000150011,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR=1000150012,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR=1000150013,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR=1000150014,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR=1000150015,
VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR=1000150016,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR=1000150017,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR=1000150018,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR=1000150020,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV=1000152000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV=1000154000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV=1000154001,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO=1000156000,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO=1000156001,
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO=1000156002,
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO=1000156003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES=1000156004,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES=1000156005,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO=1000157000,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO=1000157001,
VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT=1000158000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT=1000158002,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT=1000158003,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT=1000158004,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT=1000158005,
VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT=1000160000,
VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT=1000160001,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO=1000161000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES=1000161001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES=1000161002,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO=1000161003,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT=1000161004,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR=1000163000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR=1000163001,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV=1000164000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV=1000164001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV=1000164002,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV=1000164005,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV=1000165000,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV=1000165001,
VK_STRUCTURE_TYPE_GEOMETRY_NV=1000165003,
VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV=1000165004,
VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV=1000165005,
VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV=1000165006,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV=1000165007,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV=1000165008,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV=1000165009,
VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV=1000165011,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV=1000165012,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV=1000166000,
VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV=1000166001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES=1000168000,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT=1000168001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT=1000170000,
VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT=1000170001,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT=1000174000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES=1000175000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES=1000177000,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT=1000178000,
VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT=1000178001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT=1000178002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES=1000180000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR=1000181000,
VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD=1000183000,
VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT=1000184000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD=1000185000,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT=1000187000,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT=1000187001,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT=1000187002,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT=1000187003,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT=1000187004,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT=1000187005,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT=1000187006,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD=1000189000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT=1000190000,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT=1000190001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT=1000190002,
VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP=1000191000,
VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT=1000192000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES=1000196000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES=1000197000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES=1000199000,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE=1000199001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV=1000201000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV=1000202000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV=1000202001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV=1000203000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV=1000204000,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV=1000205000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV=1000205002,
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV=1000206000,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV=1000206001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES=1000207000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES=1000207001,
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO=1000207002,
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO=1000207003,
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO=1000207004,
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO=1000207005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL=1000209000,
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL=1000210000,
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL=1000210001,
VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL=1000210002,
VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL=1000210003,
VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL=1000210004,
VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL=1000210005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES=1000211000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT=1000212000,
VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD=1000213000,
VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD=1000213001,
VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA=1000214000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR=1000215000,
VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT=1000217000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT=1000218000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT=1000218001,
VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT=1000218002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES=1000221000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT=1000225000,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT=1000225001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT=1000225002,
VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR=1000226000,
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR=1000226001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR=1000226002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR=1000226003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR=1000226004,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD=1000227000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD=1000229000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT=1000234000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT=1000237000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT=1000238000,
VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT=1000238001,
VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR=1000239000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV=1000240000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES=1000241000,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT=1000241001,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT=1000241002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT=1000244000,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO=1000244001,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT=1000244002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT=1000245000,
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO=1000246000,
VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT=1000247000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR=1000248000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV=1000249000,
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV=1000249001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV=1000249002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV=1000250000,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV=1000250001,
VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV=1000250002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT=1000251000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT=1000252000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES=1000253000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT=1000254000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT=1000254001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT=1000254002,
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT=1000255000,
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT=1000255001,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT=1000255002,
VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT=1000256000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES=1000257000,
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO=1000257002,
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO=1000257003,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO=1000257004,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT=1000259000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT=1000259001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT=1000259002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT=1000260000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES=1000261000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT=1000265000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT=1000267000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR=1000269000,
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR=1000269001,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR=1000269002,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR=1000269003,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR=1000269004,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR=1000269005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT=1000273000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT=1000276000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV=1000277000,
VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV=1000277001,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV=1000277002,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV=1000277003,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV=1000277004,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV=1000277005,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV=1000277006,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV=1000277007,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV=1000278000,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV=1000278001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT=1000281000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT=1000281001,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM=1000282000,
VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM=1000282001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT=1000284000,
VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT=1000284001,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT=1000284002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT=1000286000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT=1000286001,
VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT=1000287000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT=1000287001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT=1000287002,
VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR=1000290000,
VK_STRUCTURE_TYPE_PRESENT_ID_KHR=1000294000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR=1000294001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT=1000295000,
VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT=1000295001,
VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT=1000295002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT=1000297000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR=1000299000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR=1000299001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV=1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV=1000300001,
VK_STRUCTURE_TYPE_RESERVED_QCOM=1000309000,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR=1000314000,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR=1000314001,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR=1000314002,
VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR=1000314003,
VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR=1000314004,
VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR=1000314005,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR=1000314006,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR=1000314007,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV=1000314008,
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV=1000314009,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR=1000323000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR=1000325000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV=1000326000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV=1000326001,
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV=1000326002,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV=1000327000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV=1000327001,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV=1000327002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT=1000330000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT=1000332000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT=1000332001,
VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM=1000333000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT=1000335000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR=1000336000,
VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR=1000337000,
VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR=1000337001,
VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR=1000337002,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR=1000337003,
VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR=1000337004,
VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR=1000337005,
VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR=1000337006,
VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR=1000337007,
VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR=1000337008,
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR=1000337009,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR=1000337010,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT=1000340000,
VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT=1000346000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR=1000347000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR=1000347001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR=1000348013,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE=1000351000,
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE=1000351002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT=1000352000,
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT=1000352001,
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT=1000352002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT=1000353000,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA=1000364000,
VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA=1000364001,
VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA=1000364002,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA=1000365000,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA=1000365001,
VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI=1000369000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI=1000369001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI=1000369002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI=1000370000,
VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV=1000371000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV=1000371001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT=1000377000,
VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX=1000378000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT=1000381000,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT=1000381001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT=1000388000,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT=1000388001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT=1000392000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT=1000392001,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR=VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR=VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR=VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR=VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR=VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR=VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR=VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR=VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR=VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT=VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR=VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR=VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT=VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR=VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR=VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR=VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR=VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR=VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR=VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR=VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR=VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR=VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR=VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT=VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR=VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR=VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR=VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR=VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR=VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL=VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR=VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR=VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT=VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR=VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR=VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR=VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR=VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR=VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR=VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR=VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR=VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR=VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR=VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT=VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR=VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
);
PPVkSubpassContents=^PVkSubpassContents;
PVkSubpassContents=^TVkSubpassContents;
TVkSubpassContents=
(
VK_SUBPASS_CONTENTS_INLINE=0,
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS=1
);
PPVkResult=^PVkResult;
PVkResult=^TVkResult;
TVkResult=
(
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS=-1000257000,
VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT=-1000255000,
VK_ERROR_NOT_PERMITTED_EXT=-1000174001,
VK_ERROR_FRAGMENTATION=-1000161000,
VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT=-1000158000,
VK_ERROR_INVALID_EXTERNAL_HANDLE=-1000072003,
VK_ERROR_OUT_OF_POOL_MEMORY=-1000069000,
VK_ERROR_INVALID_SHADER_NV=-1000012000,
VK_ERROR_VALIDATION_FAILED_EXT=-1000011001,
VK_ERROR_INCOMPATIBLE_DISPLAY_KHR=-1000003001,
VK_ERROR_OUT_OF_DATE_KHR=-1000001004,
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR=-1000000001,
VK_ERROR_SURFACE_LOST_KHR=-1000000000,
_UNUSED_START=-14, //< This is the next unused available error code (negative value)
VK_ERROR_UNKNOWN=-13, //< An unknown error has occurred, due to an implementation or application bug
VK_ERROR_FRAGMENTED_POOL=-12, //< A requested pool allocation has failed due to fragmentation of the pool's memory
VK_ERROR_FORMAT_NOT_SUPPORTED=-11, //< Requested format is not supported on this device
VK_ERROR_TOO_MANY_OBJECTS=-10, //< Too many objects of the type have already been created
VK_ERROR_INCOMPATIBLE_DRIVER=-9, //< Unable to find a Vulkan driver
VK_ERROR_FEATURE_NOT_PRESENT=-8, //< Requested feature is not available on this device
VK_ERROR_EXTENSION_NOT_PRESENT=-7, //< Extension specified does not exist
VK_ERROR_LAYER_NOT_PRESENT=-6, //< Layer specified does not exist
VK_ERROR_MEMORY_MAP_FAILED=-5, //< Mapping of a memory object has failed
VK_ERROR_DEVICE_LOST=-4, //< The logical device has been lost. See <<devsandqueues-lost-device>>
VK_ERROR_INITIALIZATION_FAILED=-3, //< Initialization of a object has failed
VK_ERROR_OUT_OF_DEVICE_MEMORY=-2, //< A device memory allocation has failed
VK_ERROR_OUT_OF_HOST_MEMORY=-1, //< A host memory allocation has failed
VK_SUCCESS=0, //< Command completed successfully
VK_NOT_READY=1, //< A fence or query has not yet completed
VK_TIMEOUT=2, //< A wait operation has not completed in the specified time
VK_EVENT_SET=3, //< An event is signaled
VK_EVENT_RESET=4, //< An event is unsignaled
VK_INCOMPLETE=5, //< A return array was too small for the result
VK_SUBOPTIMAL_KHR=1000001003,
VK_THREAD_IDLE_KHR=1000268000,
VK_THREAD_DONE_KHR=1000268001,
VK_OPERATION_DEFERRED_KHR=1000268002,
VK_OPERATION_NOT_DEFERRED_KHR=1000268003,
VK_PIPELINE_COMPILE_REQUIRED_EXT=1000297000,
VK_ERROR_FRAGMENTATION_EXT=VK_ERROR_FRAGMENTATION,
VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR=VK_ERROR_INVALID_EXTERNAL_HANDLE,
VK_ERROR_INVALID_DEVICE_ADDRESS_EXT=VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR=VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
VK_ERROR_OUT_OF_POOL_MEMORY_KHR=VK_ERROR_OUT_OF_POOL_MEMORY,
VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT=VK_PIPELINE_COMPILE_REQUIRED_EXT
);
PPVkDynamicState=^PVkDynamicState;
PVkDynamicState=^TVkDynamicState;
TVkDynamicState=
(
VK_DYNAMIC_STATE_VIEWPORT=0,
VK_DYNAMIC_STATE_SCISSOR=1,
VK_DYNAMIC_STATE_LINE_WIDTH=2,
VK_DYNAMIC_STATE_DEPTH_BIAS=3,
VK_DYNAMIC_STATE_BLEND_CONSTANTS=4,
VK_DYNAMIC_STATE_DEPTH_BOUNDS=5,
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK=6,
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK=7,
VK_DYNAMIC_STATE_STENCIL_REFERENCE=8,
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV=1000087000,
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT=1000099000,
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT=1000143000,
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV=1000164004,
VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV=1000164006,
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV=1000205001,
VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR=1000226000,
VK_DYNAMIC_STATE_LINE_STIPPLE_EXT=1000259000,
VK_DYNAMIC_STATE_CULL_MODE_EXT=1000267000,
VK_DYNAMIC_STATE_FRONT_FACE_EXT=1000267001,
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT=1000267002,
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT=1000267003,
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT=1000267004,
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT=1000267005,
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT=1000267006,
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT=1000267007,
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT=1000267008,
VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT=1000267009,
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT=1000267010,
VK_DYNAMIC_STATE_STENCIL_OP_EXT=1000267011,
VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR=1000347000,
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT=1000352000,
VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT=1000377000,
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT=1000377001,
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT=1000377002,
VK_DYNAMIC_STATE_LOGIC_OP_EXT=1000377003,
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT=1000377004,
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT=1000381000
);
PPVkDescriptorUpdateTemplateType=^PVkDescriptorUpdateTemplateType;
PVkDescriptorUpdateTemplateType=^TVkDescriptorUpdateTemplateType;
TVkDescriptorUpdateTemplateType=
(
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET=0, //< Create descriptor update template for descriptor set updates
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR=1,
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR=VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
);
PPVkObjectType=^PVkObjectType;
PVkObjectType=^TVkObjectType;
TVkObjectType=
(
VK_OBJECT_TYPE_UNKNOWN=0,
VK_OBJECT_TYPE_INSTANCE=1,
VK_OBJECT_TYPE_PHYSICAL_DEVICE=2,
VK_OBJECT_TYPE_DEVICE=3,
VK_OBJECT_TYPE_QUEUE=4,
VK_OBJECT_TYPE_SEMAPHORE=5,
VK_OBJECT_TYPE_COMMAND_BUFFER=6,
VK_OBJECT_TYPE_FENCE=7,
VK_OBJECT_TYPE_DEVICE_MEMORY=8,
VK_OBJECT_TYPE_BUFFER=9,
VK_OBJECT_TYPE_IMAGE=10,
VK_OBJECT_TYPE_EVENT=11,
VK_OBJECT_TYPE_QUERY_POOL=12,
VK_OBJECT_TYPE_BUFFER_VIEW=13,
VK_OBJECT_TYPE_IMAGE_VIEW=14,
VK_OBJECT_TYPE_SHADER_MODULE=15,
VK_OBJECT_TYPE_PIPELINE_CACHE=16,
VK_OBJECT_TYPE_PIPELINE_LAYOUT=17,
VK_OBJECT_TYPE_RENDER_PASS=18,
VK_OBJECT_TYPE_PIPELINE=19,
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT=20,
VK_OBJECT_TYPE_SAMPLER=21,
VK_OBJECT_TYPE_DESCRIPTOR_POOL=22,
VK_OBJECT_TYPE_DESCRIPTOR_SET=23,
VK_OBJECT_TYPE_FRAMEBUFFER=24,
VK_OBJECT_TYPE_COMMAND_POOL=25,
VK_OBJECT_TYPE_SURFACE_KHR=1000000000,
VK_OBJECT_TYPE_SWAPCHAIN_KHR=1000001000,
VK_OBJECT_TYPE_DISPLAY_KHR=1000002000,
VK_OBJECT_TYPE_DISPLAY_MODE_KHR=1000002001,
VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT=1000011000,
VK_OBJECT_TYPE_VIDEO_SESSION_KHR=1000023000,
VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR=1000023001,
VK_OBJECT_TYPE_CU_MODULE_NVX=1000029000,
VK_OBJECT_TYPE_CU_FUNCTION_NVX=1000029001,
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE=1000085000,
VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT=1000128000,
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR=1000150000,
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION=1000156000,
VK_OBJECT_TYPE_VALIDATION_CACHE_EXT=1000160000,
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV=1000165000,
VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL=1000210000,
VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR=1000268000,
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV=1000277000,
VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT=1000295000,
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR=VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR=VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION
);
PPVkQueueFlagBits=^PVkQueueFlagBits;
PVkQueueFlagBits=^TVkQueueFlagBits;
TVkQueueFlagBits=
(
VK_QUEUE_GRAPHICS_BIT=$00000001, //< Queue supports graphics operations
VK_QUEUE_COMPUTE_BIT=$00000002, //< Queue supports compute operations
VK_QUEUE_TRANSFER_BIT=$00000004, //< Queue supports transfer operations
VK_QUEUE_SPARSE_BINDING_BIT=$00000008, //< Queue supports sparse resource memory management operations
VK_QUEUE_PROTECTED_BIT=$00000010,
VK_QUEUE_VIDEO_DECODE_BIT_KHR=$00000020,
VK_QUEUE_VIDEO_ENCODE_BIT_KHR=$00000040
);
PPVkCullModeFlagBits=^PVkCullModeFlagBits;
PVkCullModeFlagBits=^TVkCullModeFlagBits;
TVkCullModeFlagBits=
(
VK_CULL_MODE_NONE=0,
VK_CULL_MODE_FRONT_BIT=$00000001,
VK_CULL_MODE_BACK_BIT=$00000002,
VK_CULL_MODE_FRONT_AND_BACK=3
);
PPVkRenderPassCreateFlagBits=^PVkRenderPassCreateFlagBits;
PVkRenderPassCreateFlagBits=^TVkRenderPassCreateFlagBits;
TVkRenderPassCreateFlagBits=
(
VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR=$00000001,
VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM=$00000002
);
PPVkDeviceQueueCreateFlagBits=^PVkDeviceQueueCreateFlagBits;
PVkDeviceQueueCreateFlagBits=^TVkDeviceQueueCreateFlagBits;
TVkDeviceQueueCreateFlagBits=
(
VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT=$00000001
);
PPVkMemoryPropertyFlagBits=^PVkMemoryPropertyFlagBits;
PVkMemoryPropertyFlagBits=^TVkMemoryPropertyFlagBits;
TVkMemoryPropertyFlagBits=
(
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT=$00000001, //< If otherwise stated, then allocate memory on device
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT=$00000002, //< Memory is mappable by host
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT=$00000004, //< Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache
VK_MEMORY_PROPERTY_HOST_CACHED_BIT=$00000008, //< Memory will be cached by the host
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT=$00000010, //< Memory may be allocated by the driver when it is required
VK_MEMORY_PROPERTY_PROTECTED_BIT=$00000020,
VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD=$00000040,
VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD=$00000080,
VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV=$00000100
);
PPVkMemoryHeapFlagBits=^PVkMemoryHeapFlagBits;
PVkMemoryHeapFlagBits=^TVkMemoryHeapFlagBits;
TVkMemoryHeapFlagBits=
(
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT=$00000001, //< If set, heap represents device memory
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT=$00000002,
VK_MEMORY_HEAP_RESERVED_2_BIT_KHR=$00000004,
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR=VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
);
PPVkAccessFlagBits=^PVkAccessFlagBits;
PVkAccessFlagBits=^TVkAccessFlagBits;
TVkAccessFlagBits=
(
VK_ACCESS_NONE_KHR=0,
VK_ACCESS_INDIRECT_COMMAND_READ_BIT=$00000001, //< Controls coherency of indirect command reads
VK_ACCESS_INDEX_READ_BIT=$00000002, //< Controls coherency of index reads
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT=$00000004, //< Controls coherency of vertex attribute reads
VK_ACCESS_UNIFORM_READ_BIT=$00000008, //< Controls coherency of uniform buffer reads
VK_ACCESS_INPUT_ATTACHMENT_READ_BIT=$00000010, //< Controls coherency of input attachment reads
VK_ACCESS_SHADER_READ_BIT=$00000020, //< Controls coherency of shader reads
VK_ACCESS_SHADER_WRITE_BIT=$00000040, //< Controls coherency of shader writes
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT=$00000080, //< Controls coherency of color attachment reads
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT=$00000100, //< Controls coherency of color attachment writes
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT=$00000200, //< Controls coherency of depth/stencil attachment reads
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT=$00000400, //< Controls coherency of depth/stencil attachment writes
VK_ACCESS_TRANSFER_READ_BIT=$00000800, //< Controls coherency of transfer reads
VK_ACCESS_TRANSFER_WRITE_BIT=$00001000, //< Controls coherency of transfer writes
VK_ACCESS_HOST_READ_BIT=$00002000, //< Controls coherency of host reads
VK_ACCESS_HOST_WRITE_BIT=$00004000, //< Controls coherency of host writes
VK_ACCESS_MEMORY_READ_BIT=$00008000, //< Controls coherency of memory reads
VK_ACCESS_MEMORY_WRITE_BIT=$00010000, //< Controls coherency of memory writes
VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV=$00020000,
VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV=$00040000,
VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT=$00080000,
VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT=$00100000,
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR=$00200000,
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR=$00400000,
VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR=$00800000,
VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT=$01000000,
VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT=$02000000,
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT=$04000000,
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT=$08000000,
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV=VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV=VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV=VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
);
PPVkBufferUsageFlagBits=^PVkBufferUsageFlagBits;
PVkBufferUsageFlagBits=^TVkBufferUsageFlagBits;
TVkBufferUsageFlagBits=
(
VK_BUFFER_USAGE_TRANSFER_SRC_BIT=$00000001, //< Can be used as a source of transfer operations
VK_BUFFER_USAGE_TRANSFER_DST_BIT=$00000002, //< Can be used as a destination of transfer operations
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT=$00000004, //< Can be used as TBO
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT=$00000008, //< Can be used as IBO
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT=$00000010, //< Can be used as UBO
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT=$00000020, //< Can be used as SSBO
VK_BUFFER_USAGE_INDEX_BUFFER_BIT=$00000040, //< Can be used as source of fixed-function index fetch (index buffer)
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT=$00000080, //< Can be used as source of fixed-function vertex fetch (VBO)
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT=$00000100, //< Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT=$00000200,
VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR=$00000400,
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT=$00000800,
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT=$00001000,
VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR=$00002000,
VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR=$00004000,
VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR=$00008000,
VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR=$00010000,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT=$00020000,
VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM=$00040000,
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR=$00080000,
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR=$00100000,
VK_BUFFER_USAGE_RAY_TRACING_BIT_NV=VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT=VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR=VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
);
PPVkBufferCreateFlagBits=^PVkBufferCreateFlagBits;
PVkBufferCreateFlagBits=^TVkBufferCreateFlagBits;
TVkBufferCreateFlagBits=
(
VK_BUFFER_CREATE_SPARSE_BINDING_BIT=$00000001, //< Buffer should support sparse backing
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT=$00000002, //< Buffer should support sparse backing with partial residency
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT=$00000004, //< Buffer should support constant data access to physical memory ranges mapped into multiple locations of sparse buffers
VK_BUFFER_CREATE_PROTECTED_BIT=$00000008,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT=$00000010,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT=VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR=VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
);
PPVkShaderStageFlagBits=^PVkShaderStageFlagBits;
PVkShaderStageFlagBits=^TVkShaderStageFlagBits;
TVkShaderStageFlagBits=
(
VK_SHADER_STAGE_VERTEX_BIT=$00000001,
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT=$00000002,
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT=$00000004,
VK_SHADER_STAGE_GEOMETRY_BIT=$00000008,
VK_SHADER_STAGE_FRAGMENT_BIT=$00000010,
VK_SHADER_STAGE_ALL_GRAPHICS=31,
VK_SHADER_STAGE_COMPUTE_BIT=$00000020,
VK_SHADER_STAGE_TASK_BIT_NV=$00000040,
VK_SHADER_STAGE_MESH_BIT_NV=$00000080,
VK_SHADER_STAGE_RAYGEN_BIT_KHR=$00000100,
VK_SHADER_STAGE_ANY_HIT_BIT_KHR=$00000200,
VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR=$00000400,
VK_SHADER_STAGE_MISS_BIT_KHR=$00000800,
VK_SHADER_STAGE_INTERSECTION_BIT_KHR=$00001000,
VK_SHADER_STAGE_CALLABLE_BIT_KHR=$00002000,
VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI=$00004000,
VK_SHADER_STAGE_ALL=2147483647,
VK_SHADER_STAGE_ANY_HIT_BIT_NV=VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
VK_SHADER_STAGE_CALLABLE_BIT_NV=VK_SHADER_STAGE_CALLABLE_BIT_KHR,
VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV=VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
VK_SHADER_STAGE_INTERSECTION_BIT_NV=VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
VK_SHADER_STAGE_MISS_BIT_NV=VK_SHADER_STAGE_MISS_BIT_KHR,
VK_SHADER_STAGE_RAYGEN_BIT_NV=VK_SHADER_STAGE_RAYGEN_BIT_KHR
);
PPVkImageUsageFlagBits=^PVkImageUsageFlagBits;
PVkImageUsageFlagBits=^TVkImageUsageFlagBits;
TVkImageUsageFlagBits=
(
VK_IMAGE_USAGE_TRANSFER_SRC_BIT=$00000001, //< Can be used as a source of transfer operations
VK_IMAGE_USAGE_TRANSFER_DST_BIT=$00000002, //< Can be used as a destination of transfer operations
VK_IMAGE_USAGE_SAMPLED_BIT=$00000004, //< Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
VK_IMAGE_USAGE_STORAGE_BIT=$00000008, //< Can be used as storage image (STORAGE_IMAGE descriptor type)
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT=$00000010, //< Can be used as framebuffer color attachment
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT=$00000020, //< Can be used as framebuffer depth/stencil attachment
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT=$00000040, //< Image data not needed outside of rendering
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT=$00000080, //< Can be used as framebuffer input attachment
VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR=$00000100,
VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT=$00000200,
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR=$00000400,
VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR=$00000800,
VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR=$00001000,
VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR=$00002000,
VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR=$00004000,
VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR=$00008000,
VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM=$00010000,
VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM=$00020000,
VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI=$00040000,
VK_IMAGE_USAGE_RESERVED_19_BIT_EXT=$00080000,
VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV=VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
);
PPVkImageCreateFlagBits=^PVkImageCreateFlagBits;
PVkImageCreateFlagBits=^TVkImageCreateFlagBits;
TVkImageCreateFlagBits=
(
VK_IMAGE_CREATE_SPARSE_BINDING_BIT=$00000001, //< Image should support sparse backing
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT=$00000002, //< Image should support sparse backing with partial residency
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT=$00000004, //< Image should support constant data access to physical memory ranges mapped into multiple locations of sparse images
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT=$00000008, //< Allows image views to have different format than the base image
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT=$00000010, //< Allows creating image views with cube type from the created image
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT=$00000020,
VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT=$00000040,
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT=$00000080,
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT=$00000100,
VK_IMAGE_CREATE_DISJOINT_BIT=$00000200,
VK_IMAGE_CREATE_ALIAS_BIT=$00000400,
VK_IMAGE_CREATE_PROTECTED_BIT=$00000800,
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT=$00001000,
VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV=$00002000,
VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT=$00004000,
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR=VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
VK_IMAGE_CREATE_ALIAS_BIT_KHR=VK_IMAGE_CREATE_ALIAS_BIT,
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR=VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
VK_IMAGE_CREATE_DISJOINT_BIT_KHR=VK_IMAGE_CREATE_DISJOINT_BIT,
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR=VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR=VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
);
PPVkImageViewCreateFlagBits=^PVkImageViewCreateFlagBits;
PVkImageViewCreateFlagBits=^TVkImageViewCreateFlagBits;
TVkImageViewCreateFlagBits=
(
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT=$00000001,
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT=$00000002
);
PPVkSamplerCreateFlagBits=^PVkSamplerCreateFlagBits;
PVkSamplerCreateFlagBits=^TVkSamplerCreateFlagBits;
TVkSamplerCreateFlagBits=
(
VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT=$00000001,
VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT=$00000002
);
PPVkPipelineCreateFlagBits=^PVkPipelineCreateFlagBits;
PVkPipelineCreateFlagBits=^TVkPipelineCreateFlagBits;
TVkPipelineCreateFlagBits=
(
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT=$00000001,
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT=$00000002,
VK_PIPELINE_CREATE_DERIVATIVE_BIT=$00000004,
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT=$00000008,
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT=$00000010,
VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV=$00000020,
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR=$00000040,
VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR=$00000080,
VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT=$00000100,
VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT=$00000200,
VK_PIPELINE_CREATE_RESERVED_10_BIT_AMD=$00000400,
VK_PIPELINE_CREATE_LIBRARY_BIT_KHR=$00000800,
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR=$00001000,
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR=$00002000,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR=$00004000,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR=$00008000,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR=$00010000,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR=$00020000,
VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV=$00040000,
VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR=$00080000,
VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV=$00100000,
VK_PIPELINE_CREATE_RESERVED_21_BIT_AMD=$00200000,
VK_PIPELINE_CREATE_RESERVED_22_BIT_AMD=$00400000,
VK_PIPELINE_CREATE_RESERVED_23_BIT_AMD=$00800000,
VK_PIPELINE_CREATE_DISPATCH_BASE=VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
VK_PIPELINE_CREATE_DISPATCH_BASE_KHR=VK_PIPELINE_CREATE_DISPATCH_BASE,
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR=VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
);
PPVkPipelineShaderStageCreateFlagBits=^PVkPipelineShaderStageCreateFlagBits;
PVkPipelineShaderStageCreateFlagBits=^TVkPipelineShaderStageCreateFlagBits;
TVkPipelineShaderStageCreateFlagBits=
(
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT=$00000001,
VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT=$00000002,
VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_2_BIT_NV=$00000004,
VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR=$00000008
);
PPVkColorComponentFlagBits=^PVkColorComponentFlagBits;
PVkColorComponentFlagBits=^TVkColorComponentFlagBits;
TVkColorComponentFlagBits=
(
VK_COLOR_COMPONENT_R_BIT=$00000001,
VK_COLOR_COMPONENT_G_BIT=$00000002,
VK_COLOR_COMPONENT_B_BIT=$00000004,
VK_COLOR_COMPONENT_A_BIT=$00000008
);
PPVkFenceCreateFlagBits=^PVkFenceCreateFlagBits;
PVkFenceCreateFlagBits=^TVkFenceCreateFlagBits;
TVkFenceCreateFlagBits=
(
VK_FENCE_CREATE_SIGNALED_BIT=$00000001
);
PPVkFormatFeatureFlagBits=^PVkFormatFeatureFlagBits;
PVkFormatFeatureFlagBits=^TVkFormatFeatureFlagBits;
TVkFormatFeatureFlagBits=
(
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT=$00000001, //< Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT=$00000002, //< Format can be used for storage images (STORAGE_IMAGE descriptor type)
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT=$00000004, //< Format supports atomic operations in case it is used for storage images
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT=$00000008, //< Format can be used for uniform texel buffers (TBOs)
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT=$00000010, //< Format can be used for storage texel buffers (IBOs)
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT=$00000020, //< Format supports atomic operations in case it is used for storage texel buffers
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT=$00000040, //< Format can be used for vertex buffers (VBOs)
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT=$00000080, //< Format can be used for color attachment images
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT=$00000100, //< Format supports blending in case it is used for color attachment images
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT=$00000200, //< Format can be used for depth/stencil attachment images
VK_FORMAT_FEATURE_BLIT_SRC_BIT=$00000400, //< Format can be used as the source image of blits with vkCmdBlitImage
VK_FORMAT_FEATURE_BLIT_DST_BIT=$00000800, //< Format can be used as the destination image of blits with vkCmdBlitImage
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT=$00001000, //< Format can be filtered with VK_FILTER_LINEAR when being sampled
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG=$00002000,
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT=$00004000,
VK_FORMAT_FEATURE_TRANSFER_DST_BIT=$00008000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT=$00010000,
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT=$00020000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT=$00040000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT=$00080000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT=$00100000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT=$00200000,
VK_FORMAT_FEATURE_DISJOINT_BIT=$00400000,
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT=$00800000,
VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT=$01000000,
VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR=$02000000,
VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR=$04000000,
VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR=$08000000,
VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR=$10000000,
VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR=$20000000,
VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR=$40000000,
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR=VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
VK_FORMAT_FEATURE_DISJOINT_BIT_KHR=VK_FORMAT_FEATURE_DISJOINT_BIT,
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR=VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT=VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT=VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR=VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR=VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR=VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR=VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR=VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR=VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
);
PPVkQueryControlFlagBits=^PVkQueryControlFlagBits;
PVkQueryControlFlagBits=^TVkQueryControlFlagBits;
TVkQueryControlFlagBits=
(
VK_QUERY_CONTROL_PRECISE_BIT=$00000001 //< Require precise results to be collected by the query
);
PPVkQueryResultFlagBits=^PVkQueryResultFlagBits;
PVkQueryResultFlagBits=^TVkQueryResultFlagBits;
TVkQueryResultFlagBits=
(
VK_QUERY_RESULT_64_BIT=$00000001, //< Results of the queries are written to the destination buffer as 64-bit values
VK_QUERY_RESULT_WAIT_BIT=$00000002, //< Results of the queries are waited on before proceeding with the result copy
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT=$00000004, //< Besides the results of the query, the availability of the results is also written
VK_QUERY_RESULT_PARTIAL_BIT=$00000008, //< Copy the partial results of the query even if the final results are not available
VK_QUERY_RESULT_WITH_STATUS_BIT_KHR=$00000010
);
PPVkCommandBufferUsageFlagBits=^PVkCommandBufferUsageFlagBits;
PVkCommandBufferUsageFlagBits=^TVkCommandBufferUsageFlagBits;
TVkCommandBufferUsageFlagBits=
(
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT=$00000001,
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT=$00000002,
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT=$00000004 //< Command buffer may be submitted/executed more than once simultaneously
);
PPVkQueryPipelineStatisticFlagBits=^PVkQueryPipelineStatisticFlagBits;
PVkQueryPipelineStatisticFlagBits=^TVkQueryPipelineStatisticFlagBits;
TVkQueryPipelineStatisticFlagBits=
(
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT=$00000001, //< Optional
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT=$00000002, //< Optional
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT=$00000004, //< Optional
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT=$00000008, //< Optional
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT=$00000010, //< Optional
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT=$00000020, //< Optional
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT=$00000040, //< Optional
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT=$00000080, //< Optional
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT=$00000100, //< Optional
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT=$00000200, //< Optional
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT=$00000400 //< Optional
);
PPVkImageAspectFlagBits=^PVkImageAspectFlagBits;
PVkImageAspectFlagBits=^TVkImageAspectFlagBits;
TVkImageAspectFlagBits=
(
VK_IMAGE_ASPECT_COLOR_BIT=$00000001,
VK_IMAGE_ASPECT_DEPTH_BIT=$00000002,
VK_IMAGE_ASPECT_STENCIL_BIT=$00000004,
VK_IMAGE_ASPECT_METADATA_BIT=$00000008,
VK_IMAGE_ASPECT_PLANE_0_BIT=$00000010,
VK_IMAGE_ASPECT_PLANE_1_BIT=$00000020,
VK_IMAGE_ASPECT_PLANE_2_BIT=$00000040,
VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT=$00000080,
VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT=$00000100,
VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT=$00000200,
VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT=$00000400,
VK_IMAGE_ASPECT_PLANE_0_BIT_KHR=VK_IMAGE_ASPECT_PLANE_0_BIT,
VK_IMAGE_ASPECT_PLANE_1_BIT_KHR=VK_IMAGE_ASPECT_PLANE_1_BIT,
VK_IMAGE_ASPECT_PLANE_2_BIT_KHR=VK_IMAGE_ASPECT_PLANE_2_BIT
);
PPVkSparseImageFormatFlagBits=^PVkSparseImageFormatFlagBits;
PVkSparseImageFormatFlagBits=^TVkSparseImageFormatFlagBits;
TVkSparseImageFormatFlagBits=
(
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT=$00000001, //< Image uses a single mip tail region for all array layers
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT=$00000002, //< Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels.
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT=$00000004 //< Image uses a non-standard sparse image block dimensions
);
PPVkSparseMemoryBindFlagBits=^PVkSparseMemoryBindFlagBits;
PVkSparseMemoryBindFlagBits=^TVkSparseMemoryBindFlagBits;
TVkSparseMemoryBindFlagBits=
(
VK_SPARSE_MEMORY_BIND_METADATA_BIT=$00000001 //< Operation binds resource metadata to memory
);
PPVkPipelineStageFlagBits=^PVkPipelineStageFlagBits;
PVkPipelineStageFlagBits=^TVkPipelineStageFlagBits;
TVkPipelineStageFlagBits=
(
VK_PIPELINE_STAGE_NONE_KHR=0,
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT=$00000001, //< Before subsequent commands are processed
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT=$00000002, //< Draw/DispatchIndirect command fetch
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT=$00000004, //< Vertex/index fetch
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT=$00000008, //< Vertex shading
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT=$00000010, //< Tessellation control shading
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT=$00000020, //< Tessellation evaluation shading
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT=$00000040, //< Geometry shading
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT=$00000080, //< Fragment shading
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT=$00000100, //< Early fragment (depth and stencil) tests
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT=$00000200, //< Late fragment (depth and stencil) tests
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT=$00000400, //< Color attachment writes
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT=$00000800, //< Compute shading
VK_PIPELINE_STAGE_TRANSFER_BIT=$00001000, //< Transfer/copy operations
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT=$00002000, //< After previous commands have completed
VK_PIPELINE_STAGE_HOST_BIT=$00004000, //< Indicates host (CPU) is a source/sink of the dependency
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT=$00008000, //< All stages of the graphics pipeline
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT=$00010000, //< All stages supported on the queue
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV=$00020000,
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT=$00040000,
VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV=$00080000,
VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV=$00100000,
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR=$00200000,
VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR=$00400000,
VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT=$00800000,
VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT=$01000000,
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR=$02000000,
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV=VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV=VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV=VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
);
PPVkCommandPoolCreateFlagBits=^PVkCommandPoolCreateFlagBits;
PVkCommandPoolCreateFlagBits=^TVkCommandPoolCreateFlagBits;
TVkCommandPoolCreateFlagBits=
(
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT=$00000001, //< Command buffers have a short lifetime
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT=$00000002, //< Command buffers may release their memory individually
VK_COMMAND_POOL_CREATE_PROTECTED_BIT=$00000004
);
PPVkCommandPoolResetFlagBits=^PVkCommandPoolResetFlagBits;
PVkCommandPoolResetFlagBits=^TVkCommandPoolResetFlagBits;
TVkCommandPoolResetFlagBits=
(
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT=$00000001 //< Release resources owned by the pool
);
PPVkCommandBufferResetFlagBits=^PVkCommandBufferResetFlagBits;
PVkCommandBufferResetFlagBits=^TVkCommandBufferResetFlagBits;
TVkCommandBufferResetFlagBits=
(
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT=$00000001 //< Release resources owned by the buffer
);
PPVkSampleCountFlagBits=^PVkSampleCountFlagBits;
PVkSampleCountFlagBits=^TVkSampleCountFlagBits;
TVkSampleCountFlagBits=
(
VK_SAMPLE_COUNT_1_BIT=$00000001, //< Sample count 1 supported
VK_SAMPLE_COUNT_2_BIT=$00000002, //< Sample count 2 supported
VK_SAMPLE_COUNT_4_BIT=$00000004, //< Sample count 4 supported
VK_SAMPLE_COUNT_8_BIT=$00000008, //< Sample count 8 supported
VK_SAMPLE_COUNT_16_BIT=$00000010, //< Sample count 16 supported
VK_SAMPLE_COUNT_32_BIT=$00000020, //< Sample count 32 supported
VK_SAMPLE_COUNT_64_BIT=$00000040 //< Sample count 64 supported
);
PPVkAttachmentDescriptionFlagBits=^PVkAttachmentDescriptionFlagBits;
PVkAttachmentDescriptionFlagBits=^TVkAttachmentDescriptionFlagBits;
TVkAttachmentDescriptionFlagBits=
(
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT=$00000001 //< The attachment may alias physical memory of another attachment in the same render pass
);
PPVkStencilFaceFlagBits=^PVkStencilFaceFlagBits;
PVkStencilFaceFlagBits=^TVkStencilFaceFlagBits;
TVkStencilFaceFlagBits=
(
VK_STENCIL_FACE_FRONT_BIT=$00000001, //< Front face
VK_STENCIL_FACE_BACK_BIT=$00000002, //< Back face
VK_STENCIL_FACE_FRONT_AND_BACK=3, //< Front and back faces
VK_STENCIL_FRONT_AND_BACK=VK_STENCIL_FACE_FRONT_AND_BACK //< Alias for backwards compatibility
);
PPVkDescriptorPoolCreateFlagBits=^PVkDescriptorPoolCreateFlagBits;
PVkDescriptorPoolCreateFlagBits=^TVkDescriptorPoolCreateFlagBits;
TVkDescriptorPoolCreateFlagBits=
(
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT=$00000001, //< Descriptor sets may be freed individually
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT=$00000002,
VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE=$00000004,
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT=VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT
);
PPVkDependencyFlagBits=^PVkDependencyFlagBits;
PVkDependencyFlagBits=^TVkDependencyFlagBits;
TVkDependencyFlagBits=
(
VK_DEPENDENCY_BY_REGION_BIT=$00000001, //< Dependency is per pixel region
VK_DEPENDENCY_VIEW_LOCAL_BIT=$00000002,
VK_DEPENDENCY_DEVICE_GROUP_BIT=$00000004,
VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR=VK_DEPENDENCY_DEVICE_GROUP_BIT,
VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR=VK_DEPENDENCY_VIEW_LOCAL_BIT
);
PPVkSemaphoreType=^PVkSemaphoreType;
PVkSemaphoreType=^TVkSemaphoreType;
TVkSemaphoreType=
(
VK_SEMAPHORE_TYPE_BINARY=0,
VK_SEMAPHORE_TYPE_TIMELINE=1,
VK_SEMAPHORE_TYPE_BINARY_KHR=VK_SEMAPHORE_TYPE_BINARY,
VK_SEMAPHORE_TYPE_TIMELINE_KHR=VK_SEMAPHORE_TYPE_TIMELINE
);
PPVkSemaphoreWaitFlagBits=^PVkSemaphoreWaitFlagBits;
PVkSemaphoreWaitFlagBits=^TVkSemaphoreWaitFlagBits;
TVkSemaphoreWaitFlagBits=
(
VK_SEMAPHORE_WAIT_ANY_BIT=$00000001,
VK_SEMAPHORE_WAIT_ANY_BIT_KHR=VK_SEMAPHORE_WAIT_ANY_BIT
);
PPVkPresentModeKHR=^PVkPresentModeKHR;
PVkPresentModeKHR=^TVkPresentModeKHR;
TVkPresentModeKHR=
(
VK_PRESENT_MODE_IMMEDIATE_KHR=0,
VK_PRESENT_MODE_MAILBOX_KHR=1,
VK_PRESENT_MODE_FIFO_KHR=2,
VK_PRESENT_MODE_FIFO_RELAXED_KHR=3,
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR=1000111000,
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR=1000111001
);
PPVkColorSpaceKHR=^PVkColorSpaceKHR;
PVkColorSpaceKHR=^TVkColorSpaceKHR;
TVkColorSpaceKHR=
(
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR=0,
VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT=1000104001,
VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT=1000104002,
VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT=1000104003,
VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT=1000104004,
VK_COLOR_SPACE_BT709_LINEAR_EXT=1000104005,
VK_COLOR_SPACE_BT709_NONLINEAR_EXT=1000104006,
VK_COLOR_SPACE_BT2020_LINEAR_EXT=1000104007,
VK_COLOR_SPACE_HDR10_ST2084_EXT=1000104008,
VK_COLOR_SPACE_DOLBYVISION_EXT=1000104009,
VK_COLOR_SPACE_HDR10_HLG_EXT=1000104010,
VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT=1000104011,
VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT=1000104012,
VK_COLOR_SPACE_PASS_THROUGH_EXT=1000104013,
VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT=1000104014,
VK_COLOR_SPACE_DISPLAY_NATIVE_AMD=1000213000,
VK_COLOR_SPACE_DCI_P3_LINEAR_EXT=VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
VK_COLORSPACE_SRGB_NONLINEAR_KHR=VK_COLOR_SPACE_SRGB_NONLINEAR_KHR //< Backwards-compatible alias containing a typo
);
PPVkDisplayPlaneAlphaFlagBitsKHR=^PVkDisplayPlaneAlphaFlagBitsKHR;
PVkDisplayPlaneAlphaFlagBitsKHR=^TVkDisplayPlaneAlphaFlagBitsKHR;
TVkDisplayPlaneAlphaFlagBitsKHR=
(
VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR=$00000001,
VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR=$00000002,
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR=$00000004,
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR=$00000008
);
PPVkCompositeAlphaFlagBitsKHR=^PVkCompositeAlphaFlagBitsKHR;
PVkCompositeAlphaFlagBitsKHR=^TVkCompositeAlphaFlagBitsKHR;
TVkCompositeAlphaFlagBitsKHR=
(
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR=$00000001,
VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR=$00000002,
VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR=$00000004,
VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR=$00000008
);
PPVkSurfaceTransformFlagBitsKHR=^PVkSurfaceTransformFlagBitsKHR;
PVkSurfaceTransformFlagBitsKHR=^TVkSurfaceTransformFlagBitsKHR;
TVkSurfaceTransformFlagBitsKHR=
(
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR=$00000001,
VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR=$00000002,
VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR=$00000004,
VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR=$00000008,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR=$00000010,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR=$00000020,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR=$00000040,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR=$00000080,
VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR=$00000100
);
PPVkSwapchainImageUsageFlagBitsANDROID=^PVkSwapchainImageUsageFlagBitsANDROID;
PVkSwapchainImageUsageFlagBitsANDROID=^TVkSwapchainImageUsageFlagBitsANDROID;
TVkSwapchainImageUsageFlagBitsANDROID=
(
VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID=$00000001
);
PPVkTimeDomainEXT=^PVkTimeDomainEXT;
PVkTimeDomainEXT=^TVkTimeDomainEXT;
TVkTimeDomainEXT=
(
VK_TIME_DOMAIN_DEVICE_EXT=0,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT=1,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT=2,
VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT=3
);
PPVkDebugReportFlagBitsEXT=^PVkDebugReportFlagBitsEXT;
PVkDebugReportFlagBitsEXT=^TVkDebugReportFlagBitsEXT;
TVkDebugReportFlagBitsEXT=
(
VK_DEBUG_REPORT_INFORMATION_BIT_EXT=$00000001,
VK_DEBUG_REPORT_WARNING_BIT_EXT=$00000002,
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT=$00000004,
VK_DEBUG_REPORT_ERROR_BIT_EXT=$00000008,
VK_DEBUG_REPORT_DEBUG_BIT_EXT=$00000010
);
PPVkDebugReportObjectTypeEXT=^PVkDebugReportObjectTypeEXT;
PVkDebugReportObjectTypeEXT=^TVkDebugReportObjectTypeEXT;
TVkDebugReportObjectTypeEXT=
(
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT=0,
VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT=1,
VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT=2,
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT=3,
VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT=4,
VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT=5,
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT=6,
VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT=7,
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT=8,
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT=9,
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT=10,
VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT=11,
VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT=12,
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT=13,
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT=14,
VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT=15,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT=16,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT=17,
VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT=18,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT=19,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT=20,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT=21,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT=22,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT=23,
VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT=24,
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT=25,
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT=26,
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT=27,
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT=28,
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT=29,
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT=30,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT=33,
VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT=1000029000,
VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT=1000029001,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT=1000085000,
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT=1000150000,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT=1000156000,
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT=1000165000,
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT=VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, //< Backwards-compatible alias containing a typo
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT=VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT=VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT=VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT //< Backwards-compatible alias containing a typo
);
PPVkDeviceMemoryReportEventTypeEXT=^PVkDeviceMemoryReportEventTypeEXT;
PVkDeviceMemoryReportEventTypeEXT=^TVkDeviceMemoryReportEventTypeEXT;
TVkDeviceMemoryReportEventTypeEXT=
(
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT=0,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT=1,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT=2,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT=3,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT=4
);
PPVkRasterizationOrderAMD=^PVkRasterizationOrderAMD;
PVkRasterizationOrderAMD=^TVkRasterizationOrderAMD;
TVkRasterizationOrderAMD=
(
VK_RASTERIZATION_ORDER_STRICT_AMD=0,
VK_RASTERIZATION_ORDER_RELAXED_AMD=1
);
PPVkExternalMemoryHandleTypeFlagBitsNV=^PVkExternalMemoryHandleTypeFlagBitsNV;
PVkExternalMemoryHandleTypeFlagBitsNV=^TVkExternalMemoryHandleTypeFlagBitsNV;
TVkExternalMemoryHandleTypeFlagBitsNV=
(
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV=$00000001,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV=$00000002,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV=$00000004,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV=$00000008
);
PPVkExternalMemoryFeatureFlagBitsNV=^PVkExternalMemoryFeatureFlagBitsNV;
PVkExternalMemoryFeatureFlagBitsNV=^TVkExternalMemoryFeatureFlagBitsNV;
TVkExternalMemoryFeatureFlagBitsNV=
(
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV=$00000001,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV=$00000002,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV=$00000004
);
PPVkValidationCheckEXT=^PVkValidationCheckEXT;
PVkValidationCheckEXT=^TVkValidationCheckEXT;
TVkValidationCheckEXT=
(
VK_VALIDATION_CHECK_ALL_EXT=0,
VK_VALIDATION_CHECK_SHADERS_EXT=1
);
PPVkValidationFeatureEnableEXT=^PVkValidationFeatureEnableEXT;
PVkValidationFeatureEnableEXT=^TVkValidationFeatureEnableEXT;
TVkValidationFeatureEnableEXT=
(
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT=0,
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT=1,
VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT=2,
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT=3,
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT=4
);
PPVkValidationFeatureDisableEXT=^PVkValidationFeatureDisableEXT;
PVkValidationFeatureDisableEXT=^TVkValidationFeatureDisableEXT;
TVkValidationFeatureDisableEXT=
(
VK_VALIDATION_FEATURE_DISABLE_ALL_EXT=0,
VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT=1,
VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT=2,
VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT=3,
VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT=4,
VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT=5,
VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT=6,
VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT=7
);
PPVkSubgroupFeatureFlagBits=^PVkSubgroupFeatureFlagBits;
PVkSubgroupFeatureFlagBits=^TVkSubgroupFeatureFlagBits;
TVkSubgroupFeatureFlagBits=
(
VK_SUBGROUP_FEATURE_BASIC_BIT=$00000001, //< Basic subgroup operations
VK_SUBGROUP_FEATURE_VOTE_BIT=$00000002, //< Vote subgroup operations
VK_SUBGROUP_FEATURE_ARITHMETIC_BIT=$00000004, //< Arithmetic subgroup operations
VK_SUBGROUP_FEATURE_BALLOT_BIT=$00000008, //< Ballot subgroup operations
VK_SUBGROUP_FEATURE_SHUFFLE_BIT=$00000010, //< Shuffle subgroup operations
VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT=$00000020, //< Shuffle relative subgroup operations
VK_SUBGROUP_FEATURE_CLUSTERED_BIT=$00000040, //< Clustered subgroup operations
VK_SUBGROUP_FEATURE_QUAD_BIT=$00000080, //< Quad subgroup operations
VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV=$00000100
);
PPVkIndirectCommandsLayoutUsageFlagBitsNV=^PVkIndirectCommandsLayoutUsageFlagBitsNV;
PVkIndirectCommandsLayoutUsageFlagBitsNV=^TVkIndirectCommandsLayoutUsageFlagBitsNV;
TVkIndirectCommandsLayoutUsageFlagBitsNV=
(
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV=$00000001,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV=$00000002,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV=$00000004
);
PPVkIndirectStateFlagBitsNV=^PVkIndirectStateFlagBitsNV;
PVkIndirectStateFlagBitsNV=^TVkIndirectStateFlagBitsNV;
TVkIndirectStateFlagBitsNV=
(
VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV=$00000001
);
PPVkIndirectCommandsTokenTypeNV=^PVkIndirectCommandsTokenTypeNV;
PVkIndirectCommandsTokenTypeNV=^TVkIndirectCommandsTokenTypeNV;
TVkIndirectCommandsTokenTypeNV=
(
VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV=0,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV=1,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV=2,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV=3,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV=4,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV=5,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV=6,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV=7
);
PPVkPrivateDataSlotCreateFlagBitsEXT=^PVkPrivateDataSlotCreateFlagBitsEXT;
PVkPrivateDataSlotCreateFlagBitsEXT=^TVkPrivateDataSlotCreateFlagBitsEXT;
TVkPrivateDataSlotCreateFlagBitsEXT=
(
TVkPrivateDataSlotCreateFlagBitsEXTDummyValue=0
);
PPVkDescriptorSetLayoutCreateFlagBits=^PVkDescriptorSetLayoutCreateFlagBits;
PVkDescriptorSetLayoutCreateFlagBits=^TVkDescriptorSetLayoutCreateFlagBits;
TVkDescriptorSetLayoutCreateFlagBits=
(
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR=$00000001,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT=$00000002,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE=$00000004,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD=$00000008,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT=VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
);
PPVkExternalMemoryHandleTypeFlagBits=^PVkExternalMemoryHandleTypeFlagBits;
PVkExternalMemoryHandleTypeFlagBits=^TVkExternalMemoryHandleTypeFlagBits;
TVkExternalMemoryHandleTypeFlagBits=
(
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT=$00000001,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT=$00000002,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT=$00000004,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT=$00000008,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT=$00000010,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT=$00000020,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT=$00000040,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT=$00000080,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT=$00000100,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT=$00000200,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID=$00000400,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA=$00000800,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV=$00001000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_13_BIT_NV=$00002000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR=VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
);
PPVkExternalMemoryFeatureFlagBits=^PVkExternalMemoryFeatureFlagBits;
PVkExternalMemoryFeatureFlagBits=^TVkExternalMemoryFeatureFlagBits;
TVkExternalMemoryFeatureFlagBits=
(
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT=$00000001,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT=$00000002,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT=$00000004,
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR=VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR=VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR=VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
);
PPVkExternalSemaphoreHandleTypeFlagBits=^PVkExternalSemaphoreHandleTypeFlagBits;
PVkExternalSemaphoreHandleTypeFlagBits=^TVkExternalSemaphoreHandleTypeFlagBits;
TVkExternalSemaphoreHandleTypeFlagBits=
(
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT=$00000001,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT=$00000002,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT=$00000004,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT=$00000008,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT=$00000010,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_BIT_NV=$00000020,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_BIT_NV=$00000040,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA=$00000080,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR=VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
);
PPVkExternalSemaphoreFeatureFlagBits=^PVkExternalSemaphoreFeatureFlagBits;
PVkExternalSemaphoreFeatureFlagBits=^TVkExternalSemaphoreFeatureFlagBits;
TVkExternalSemaphoreFeatureFlagBits=
(
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT=$00000001,
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT=$00000002,
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR=VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR=VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
);
PPVkSemaphoreImportFlagBits=^PVkSemaphoreImportFlagBits;
PVkSemaphoreImportFlagBits=^TVkSemaphoreImportFlagBits;
TVkSemaphoreImportFlagBits=
(
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT=$00000001,
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR=VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
);
PPVkExternalFenceHandleTypeFlagBits=^PVkExternalFenceHandleTypeFlagBits;
PVkExternalFenceHandleTypeFlagBits=^TVkExternalFenceHandleTypeFlagBits;
TVkExternalFenceHandleTypeFlagBits=
(
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT=$00000001,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT=$00000002,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT=$00000004,
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT=$00000008,
VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_BIT_NV=$00000010,
VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_BIT_NV=$00000020,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR=VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR=VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR=VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR=VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
);
PPVkExternalFenceFeatureFlagBits=^PVkExternalFenceFeatureFlagBits;
PVkExternalFenceFeatureFlagBits=^TVkExternalFenceFeatureFlagBits;
TVkExternalFenceFeatureFlagBits=
(
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT=$00000001,
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT=$00000002,
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR=VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR=VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
);
PPVkFenceImportFlagBits=^PVkFenceImportFlagBits;
PVkFenceImportFlagBits=^TVkFenceImportFlagBits;
TVkFenceImportFlagBits=
(
VK_FENCE_IMPORT_TEMPORARY_BIT=$00000001,
VK_FENCE_IMPORT_TEMPORARY_BIT_KHR=VK_FENCE_IMPORT_TEMPORARY_BIT
);
PPVkSurfaceCounterFlagBitsEXT=^PVkSurfaceCounterFlagBitsEXT;
PVkSurfaceCounterFlagBitsEXT=^TVkSurfaceCounterFlagBitsEXT;
TVkSurfaceCounterFlagBitsEXT=
(
VK_SURFACE_COUNTER_VBLANK_BIT_EXT=$00000001,
VK_SURFACE_COUNTER_VBLANK_EXT=VK_SURFACE_COUNTER_VBLANK_BIT_EXT //< Backwards-compatible alias containing a typo
);
PPVkDisplayPowerStateEXT=^PVkDisplayPowerStateEXT;
PVkDisplayPowerStateEXT=^TVkDisplayPowerStateEXT;
TVkDisplayPowerStateEXT=
(
VK_DISPLAY_POWER_STATE_OFF_EXT=0,
VK_DISPLAY_POWER_STATE_SUSPEND_EXT=1,
VK_DISPLAY_POWER_STATE_ON_EXT=2
);
PPVkDeviceEventTypeEXT=^PVkDeviceEventTypeEXT;
PVkDeviceEventTypeEXT=^TVkDeviceEventTypeEXT;
TVkDeviceEventTypeEXT=
(
VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT=0
);
PPVkDisplayEventTypeEXT=^PVkDisplayEventTypeEXT;
PVkDisplayEventTypeEXT=^TVkDisplayEventTypeEXT;
TVkDisplayEventTypeEXT=
(
VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT=0
);
PPVkPeerMemoryFeatureFlagBits=^PVkPeerMemoryFeatureFlagBits;
PVkPeerMemoryFeatureFlagBits=^TVkPeerMemoryFeatureFlagBits;
TVkPeerMemoryFeatureFlagBits=
(
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT=$00000001, //< Can read with vkCmdCopy commands
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT=$00000002, //< Can write with vkCmdCopy commands
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT=$00000004, //< Can read with any access type/command
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT=$00000008, //< Can write with and access type/command
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR=VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR=VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR=VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR=VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
);
PPVkMemoryAllocateFlagBits=^PVkMemoryAllocateFlagBits;
PVkMemoryAllocateFlagBits=^TVkMemoryAllocateFlagBits;
TVkMemoryAllocateFlagBits=
(
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT=$00000001, //< Force allocation on specific devices
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT=$00000002,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT=$00000004,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR=VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR=VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR=VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT
);
PPVkDeviceGroupPresentModeFlagBitsKHR=^PVkDeviceGroupPresentModeFlagBitsKHR;
PVkDeviceGroupPresentModeFlagBitsKHR=^TVkDeviceGroupPresentModeFlagBitsKHR;
TVkDeviceGroupPresentModeFlagBitsKHR=
(
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR=$00000001, //< Present from local memory
VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR=$00000002, //< Present from remote memory
VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR=$00000004, //< Present sum of local and/or remote memory
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR=$00000008 //< Each physical device presents from local memory
);
PPVkSwapchainCreateFlagBitsKHR=^PVkSwapchainCreateFlagBitsKHR;
PVkSwapchainCreateFlagBitsKHR=^TVkSwapchainCreateFlagBitsKHR;
TVkSwapchainCreateFlagBitsKHR=
(
VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR=$00000001,
VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR=$00000002,
VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR=$00000004
);
PPVkViewportCoordinateSwizzleNV=^PVkViewportCoordinateSwizzleNV;
PVkViewportCoordinateSwizzleNV=^TVkViewportCoordinateSwizzleNV;
TVkViewportCoordinateSwizzleNV=
(
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV=0,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV=1,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV=2,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV=3,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV=4,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV=5,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV=6,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV=7
);
PPVkDiscardRectangleModeEXT=^PVkDiscardRectangleModeEXT;
PVkDiscardRectangleModeEXT=^TVkDiscardRectangleModeEXT;
TVkDiscardRectangleModeEXT=
(
VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT=0,
VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT=1
);
PPVkSubpassDescriptionFlagBits=^PVkSubpassDescriptionFlagBits;
PVkSubpassDescriptionFlagBits=^TVkSubpassDescriptionFlagBits;
TVkSubpassDescriptionFlagBits=
(
VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX=$00000001,
VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX=$00000002,
VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM=$00000004,
VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM=$00000008
);
PPVkPointClippingBehavior=^PVkPointClippingBehavior;
PVkPointClippingBehavior=^TVkPointClippingBehavior;
TVkPointClippingBehavior=
(
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES=0,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY=1,
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR=VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR=VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
);
PPVkSamplerReductionMode=^PVkSamplerReductionMode;
PVkSamplerReductionMode=^TVkSamplerReductionMode;
TVkSamplerReductionMode=
(
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE=0,
VK_SAMPLER_REDUCTION_MODE_MIN=1,
VK_SAMPLER_REDUCTION_MODE_MAX=2,
VK_SAMPLER_REDUCTION_MODE_MAX_EXT=VK_SAMPLER_REDUCTION_MODE_MAX,
VK_SAMPLER_REDUCTION_MODE_MIN_EXT=VK_SAMPLER_REDUCTION_MODE_MIN,
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT=VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
);
PPVkTessellationDomainOrigin=^PVkTessellationDomainOrigin;
PVkTessellationDomainOrigin=^TVkTessellationDomainOrigin;
TVkTessellationDomainOrigin=
(
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT=0,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT=1,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR=VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR=VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
);
PPVkSamplerYcbcrModelConversion=^PVkSamplerYcbcrModelConversion;
PVkSamplerYcbcrModelConversion=^TVkSamplerYcbcrModelConversion;
TVkSamplerYcbcrModelConversion=
(
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY=0,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY=1, //< just range expansion
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709=2, //< aka HD YUV
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601=3, //< aka SD YUV
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020=4, //< aka UHD YUV
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR=VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY
);
PPVkSamplerYcbcrRange=^PVkSamplerYcbcrRange;
PVkSamplerYcbcrRange=^TVkSamplerYcbcrRange;
TVkSamplerYcbcrRange=
(
VK_SAMPLER_YCBCR_RANGE_ITU_FULL=0, //< Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW=1, //< Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240
VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR=VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR=VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
);
PPVkChromaLocation=^PVkChromaLocation;
PVkChromaLocation=^TVkChromaLocation;
TVkChromaLocation=
(
VK_CHROMA_LOCATION_COSITED_EVEN=0,
VK_CHROMA_LOCATION_MIDPOINT=1,
VK_CHROMA_LOCATION_COSITED_EVEN_KHR=VK_CHROMA_LOCATION_COSITED_EVEN,
VK_CHROMA_LOCATION_MIDPOINT_KHR=VK_CHROMA_LOCATION_MIDPOINT
);
PPVkBlendOverlapEXT=^PVkBlendOverlapEXT;
PVkBlendOverlapEXT=^TVkBlendOverlapEXT;
TVkBlendOverlapEXT=
(
VK_BLEND_OVERLAP_UNCORRELATED_EXT=0,
VK_BLEND_OVERLAP_DISJOINT_EXT=1,
VK_BLEND_OVERLAP_CONJOINT_EXT=2
);
PPVkCoverageModulationModeNV=^PVkCoverageModulationModeNV;
PVkCoverageModulationModeNV=^TVkCoverageModulationModeNV;
TVkCoverageModulationModeNV=
(
VK_COVERAGE_MODULATION_MODE_NONE_NV=0,
VK_COVERAGE_MODULATION_MODE_RGB_NV=1,
VK_COVERAGE_MODULATION_MODE_ALPHA_NV=2,
VK_COVERAGE_MODULATION_MODE_RGBA_NV=3
);
PPVkCoverageReductionModeNV=^PVkCoverageReductionModeNV;
PVkCoverageReductionModeNV=^TVkCoverageReductionModeNV;
TVkCoverageReductionModeNV=
(
VK_COVERAGE_REDUCTION_MODE_MERGE_NV=0,
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV=1
);
PPVkValidationCacheHeaderVersionEXT=^PVkValidationCacheHeaderVersionEXT;
PVkValidationCacheHeaderVersionEXT=^TVkValidationCacheHeaderVersionEXT;
TVkValidationCacheHeaderVersionEXT=
(
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT=1
);
PPVkShaderInfoTypeAMD=^PVkShaderInfoTypeAMD;
PVkShaderInfoTypeAMD=^TVkShaderInfoTypeAMD;
TVkShaderInfoTypeAMD=
(
VK_SHADER_INFO_TYPE_STATISTICS_AMD=0,
VK_SHADER_INFO_TYPE_BINARY_AMD=1,
VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD=2
);
PPVkQueueGlobalPriorityEXT=^PVkQueueGlobalPriorityEXT;
PVkQueueGlobalPriorityEXT=^TVkQueueGlobalPriorityEXT;
TVkQueueGlobalPriorityEXT=
(
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT=128,
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT=256,
VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT=512,
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT=1024
);
PPVkDebugUtilsMessageSeverityFlagBitsEXT=^PVkDebugUtilsMessageSeverityFlagBitsEXT;
PVkDebugUtilsMessageSeverityFlagBitsEXT=^TVkDebugUtilsMessageSeverityFlagBitsEXT;
TVkDebugUtilsMessageSeverityFlagBitsEXT=
(
VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT=$00000001,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT=$00000010,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT=$00000100,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT=$00001000
);
PPVkDebugUtilsMessageTypeFlagBitsEXT=^PVkDebugUtilsMessageTypeFlagBitsEXT;
PVkDebugUtilsMessageTypeFlagBitsEXT=^TVkDebugUtilsMessageTypeFlagBitsEXT;
TVkDebugUtilsMessageTypeFlagBitsEXT=
(
VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT=$00000001,
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT=$00000002,
VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT=$00000004
);
PPVkConservativeRasterizationModeEXT=^PVkConservativeRasterizationModeEXT;
PVkConservativeRasterizationModeEXT=^TVkConservativeRasterizationModeEXT;
TVkConservativeRasterizationModeEXT=
(
VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT=0,
VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT=1,
VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT=2
);
PPVkDescriptorBindingFlagBits=^PVkDescriptorBindingFlagBits;
PVkDescriptorBindingFlagBits=^TVkDescriptorBindingFlagBits;
TVkDescriptorBindingFlagBits=
(
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT=$00000001,
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT=$00000002,
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT=$00000004,
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT=$00000008,
VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM=$00000010,
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT=VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT=VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT=VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT=VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
);
PPVkVendorId=^PVkVendorId;
PVkVendorId=^TVkVendorId;
TVkVendorId=
(
VK_VENDOR_ID_RANGE_SIZE=7, //< (VK_VENDOR_ID_UNUSED_START-VK_VENDOR_ID_VIV)+1
VK_VENDOR_ID_VIV=65537, //< Vivante vendor ID
VK_VENDOR_ID_BEGIN_RANGE=65537, //< VK_VENDOR_ID_VIV
VK_VENDOR_ID_VSI=65538, //< VeriSilicon vendor ID
VK_VENDOR_ID_KAZAN=65539, //< Kazan Software Renderer
VK_VENDOR_ID_CODEPLAY=65540, //< Codeplay Software Ltd. vendor ID
VK_VENDOR_ID_MESA=65541, //< Mesa vendor ID
VK_VENDOR_ID_POCL=65542, //< PoCL vendor ID
VK_VENDOR_ID_UNUSED_START=65543, //< This is the next unused available Khronos vendor ID
VK_VENDOR_ID_END_RANGE=65543, //< VK_VENDOR_ID_UNUSED_START
VK_VENDOR_ID_MAX_ENUM=$7fffffff
);
PPVkDriverId=^PVkDriverId;
PVkDriverId=^TVkDriverId;
TVkDriverId=
(
VK_DRIVER_ID_AMD_PROPRIETARY=1, //< Advanced Micro Devices, Inc.
VK_DRIVER_ID_AMD_OPEN_SOURCE=2, //< Advanced Micro Devices, Inc.
VK_DRIVER_ID_MESA_RADV=3, //< Mesa open source project
VK_DRIVER_ID_NVIDIA_PROPRIETARY=4, //< NVIDIA Corporation
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS=5, //< Intel Corporation
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA=6, //< Intel Corporation
VK_DRIVER_ID_IMAGINATION_PROPRIETARY=7, //< Imagination Technologies
VK_DRIVER_ID_QUALCOMM_PROPRIETARY=8, //< Qualcomm Technologies, Inc.
VK_DRIVER_ID_ARM_PROPRIETARY=9, //< Arm Limited
VK_DRIVER_ID_GOOGLE_SWIFTSHADER=10, //< Google LLC
VK_DRIVER_ID_GGP_PROPRIETARY=11, //< Google LLC
VK_DRIVER_ID_BROADCOM_PROPRIETARY=12, //< Broadcom Inc.
VK_DRIVER_ID_MESA_LLVMPIPE=13, //< Mesa
VK_DRIVER_ID_MOLTENVK=14, //< MoltenVK
VK_DRIVER_ID_COREAVI_PROPRIETARY=15, //< Core Avionics & Industrial Inc.
VK_DRIVER_ID_JUICE_PROPRIETARY=16, //< Juice Technologies, Inc.
VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR=VK_DRIVER_ID_AMD_OPEN_SOURCE,
VK_DRIVER_ID_AMD_PROPRIETARY_KHR=VK_DRIVER_ID_AMD_PROPRIETARY,
VK_DRIVER_ID_ARM_PROPRIETARY_KHR=VK_DRIVER_ID_ARM_PROPRIETARY,
VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR=VK_DRIVER_ID_BROADCOM_PROPRIETARY,
VK_DRIVER_ID_GGP_PROPRIETARY_KHR=VK_DRIVER_ID_GGP_PROPRIETARY,
VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR=VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR=VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR=VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR=VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
VK_DRIVER_ID_MESA_RADV_KHR=VK_DRIVER_ID_MESA_RADV,
VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR=VK_DRIVER_ID_NVIDIA_PROPRIETARY,
VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR=VK_DRIVER_ID_QUALCOMM_PROPRIETARY
);
PPVkConditionalRenderingFlagBitsEXT=^PVkConditionalRenderingFlagBitsEXT;
PVkConditionalRenderingFlagBitsEXT=^TVkConditionalRenderingFlagBitsEXT;
TVkConditionalRenderingFlagBitsEXT=
(
VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT=$00000001
);
PPVkResolveModeFlagBits=^PVkResolveModeFlagBits;
PVkResolveModeFlagBits=^TVkResolveModeFlagBits;
TVkResolveModeFlagBits=
(
VK_RESOLVE_MODE_NONE=0,
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT=$00000001,
VK_RESOLVE_MODE_AVERAGE_BIT=$00000002,
VK_RESOLVE_MODE_MIN_BIT=$00000004,
VK_RESOLVE_MODE_MAX_BIT=$00000008,
VK_RESOLVE_MODE_AVERAGE_BIT_KHR=VK_RESOLVE_MODE_AVERAGE_BIT,
VK_RESOLVE_MODE_MAX_BIT_KHR=VK_RESOLVE_MODE_MAX_BIT,
VK_RESOLVE_MODE_MIN_BIT_KHR=VK_RESOLVE_MODE_MIN_BIT,
VK_RESOLVE_MODE_NONE_KHR=VK_RESOLVE_MODE_NONE,
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR=VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
);
PPVkShadingRatePaletteEntryNV=^PVkShadingRatePaletteEntryNV;
PVkShadingRatePaletteEntryNV=^TVkShadingRatePaletteEntryNV;
TVkShadingRatePaletteEntryNV=
(
VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV=0,
VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV=1,
VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV=2,
VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV=3,
VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV=4,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV=5,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV=6,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV=7,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV=8,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV=9,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV=10,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV=11
);
PPVkCoarseSampleOrderTypeNV=^PVkCoarseSampleOrderTypeNV;
PVkCoarseSampleOrderTypeNV=^TVkCoarseSampleOrderTypeNV;
TVkCoarseSampleOrderTypeNV=
(
VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV=0,
VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV=1,
VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV=2,
VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV=3
);
PPVkGeometryInstanceFlagBitsKHR=^PVkGeometryInstanceFlagBitsKHR;
PVkGeometryInstanceFlagBitsKHR=^TVkGeometryInstanceFlagBitsKHR;
TVkGeometryInstanceFlagBitsKHR=
(
VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR=$00000001,
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR=$00000002,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR=$00000004,
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR=$00000008,
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV=VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV=VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV=VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV=VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR
);
PPVkGeometryFlagBitsKHR=^PVkGeometryFlagBitsKHR;
PVkGeometryFlagBitsKHR=^TVkGeometryFlagBitsKHR;
TVkGeometryFlagBitsKHR=
(
VK_GEOMETRY_OPAQUE_BIT_KHR=$00000001,
VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR=$00000002,
VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV=VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
VK_GEOMETRY_OPAQUE_BIT_NV=VK_GEOMETRY_OPAQUE_BIT_KHR
);
PPVkBuildAccelerationStructureFlagBitsKHR=^PVkBuildAccelerationStructureFlagBitsKHR;
PVkBuildAccelerationStructureFlagBitsKHR=^TVkBuildAccelerationStructureFlagBitsKHR;
TVkBuildAccelerationStructureFlagBitsKHR=
(
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR=$00000001,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR=$00000002,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR=$00000004,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR=$00000008,
VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR=$00000010,
VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV=$00000020,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV=VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV=VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV=VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV=VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV=VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR
);
PPVkAccelerationStructureCreateFlagBitsKHR=^PVkAccelerationStructureCreateFlagBitsKHR;
PVkAccelerationStructureCreateFlagBitsKHR=^TVkAccelerationStructureCreateFlagBitsKHR;
TVkAccelerationStructureCreateFlagBitsKHR=
(
VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR=$00000001,
VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV=$00000004
);
PPVkCopyAccelerationStructureModeKHR=^PVkCopyAccelerationStructureModeKHR;
PVkCopyAccelerationStructureModeKHR=^TVkCopyAccelerationStructureModeKHR;
TVkCopyAccelerationStructureModeKHR=
(
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR=0,
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR=1,
VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR=2,
VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR=3,
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV=VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV=VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
);
PPVkBuildAccelerationStructureModeKHR=^PVkBuildAccelerationStructureModeKHR;
PVkBuildAccelerationStructureModeKHR=^TVkBuildAccelerationStructureModeKHR;
TVkBuildAccelerationStructureModeKHR=
(
VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR=0,
VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR=1
);
PPVkAccelerationStructureTypeKHR=^PVkAccelerationStructureTypeKHR;
PVkAccelerationStructureTypeKHR=^TVkAccelerationStructureTypeKHR;
TVkAccelerationStructureTypeKHR=
(
VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR=0,
VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR=1,
VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR=2,
VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV=VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV=VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
);
PPVkGeometryTypeKHR=^PVkGeometryTypeKHR;
PVkGeometryTypeKHR=^TVkGeometryTypeKHR;
TVkGeometryTypeKHR=
(
VK_GEOMETRY_TYPE_TRIANGLES_KHR=0,
VK_GEOMETRY_TYPE_AABBS_KHR=1,
VK_GEOMETRY_TYPE_INSTANCES_KHR=2,
VK_GEOMETRY_TYPE_AABBS_NV=VK_GEOMETRY_TYPE_AABBS_KHR,
VK_GEOMETRY_TYPE_TRIANGLES_NV=VK_GEOMETRY_TYPE_TRIANGLES_KHR
);
PPVkAccelerationStructureMemoryRequirementsTypeNV=^PVkAccelerationStructureMemoryRequirementsTypeNV;
PVkAccelerationStructureMemoryRequirementsTypeNV=^TVkAccelerationStructureMemoryRequirementsTypeNV;
TVkAccelerationStructureMemoryRequirementsTypeNV=
(
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV=0,
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV=1,
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV=2
);
PPVkAccelerationStructureBuildTypeKHR=^PVkAccelerationStructureBuildTypeKHR;
PVkAccelerationStructureBuildTypeKHR=^TVkAccelerationStructureBuildTypeKHR;
TVkAccelerationStructureBuildTypeKHR=
(
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR=0,
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR=1,
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR=2
);
PPVkRayTracingShaderGroupTypeKHR=^PVkRayTracingShaderGroupTypeKHR;
PVkRayTracingShaderGroupTypeKHR=^TVkRayTracingShaderGroupTypeKHR;
TVkRayTracingShaderGroupTypeKHR=
(
VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR=0,
VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR=1,
VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR=2,
VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV=VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV=VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV=VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
);
PPVkAccelerationStructureCompatibilityKHR=^PVkAccelerationStructureCompatibilityKHR;
PVkAccelerationStructureCompatibilityKHR=^TVkAccelerationStructureCompatibilityKHR;
TVkAccelerationStructureCompatibilityKHR=
(
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR=0,
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR=1
);
PPVkShaderGroupShaderKHR=^PVkShaderGroupShaderKHR;
PVkShaderGroupShaderKHR=^TVkShaderGroupShaderKHR;
TVkShaderGroupShaderKHR=
(
VK_SHADER_GROUP_SHADER_GENERAL_KHR=0,
VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR=1,
VK_SHADER_GROUP_SHADER_ANY_HIT_KHR=2,
VK_SHADER_GROUP_SHADER_INTERSECTION_KHR=3
);
PPVkMemoryOverallocationBehaviorAMD=^PVkMemoryOverallocationBehaviorAMD;
PVkMemoryOverallocationBehaviorAMD=^TVkMemoryOverallocationBehaviorAMD;
TVkMemoryOverallocationBehaviorAMD=
(
VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD=0,
VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD=1,
VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD=2
);
PPVkFramebufferCreateFlagBits=^PVkFramebufferCreateFlagBits;
PVkFramebufferCreateFlagBits=^TVkFramebufferCreateFlagBits;
TVkFramebufferCreateFlagBits=
(
VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT=$00000001,
VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR=VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
);
PPVkScopeNV=^PVkScopeNV;
PVkScopeNV=^TVkScopeNV;
TVkScopeNV=
(
VK_SCOPE_DEVICE_NV=1,
VK_SCOPE_WORKGROUP_NV=2,
VK_SCOPE_SUBGROUP_NV=3,
VK_SCOPE_QUEUE_FAMILY_NV=5
);
PPVkComponentTypeNV=^PVkComponentTypeNV;
PVkComponentTypeNV=^TVkComponentTypeNV;
TVkComponentTypeNV=
(
VK_COMPONENT_TYPE_FLOAT16_NV=0,
VK_COMPONENT_TYPE_FLOAT32_NV=1,
VK_COMPONENT_TYPE_FLOAT64_NV=2,
VK_COMPONENT_TYPE_SINT8_NV=3,
VK_COMPONENT_TYPE_SINT16_NV=4,
VK_COMPONENT_TYPE_SINT32_NV=5,
VK_COMPONENT_TYPE_SINT64_NV=6,
VK_COMPONENT_TYPE_UINT8_NV=7,
VK_COMPONENT_TYPE_UINT16_NV=8,
VK_COMPONENT_TYPE_UINT32_NV=9,
VK_COMPONENT_TYPE_UINT64_NV=10
);
PPVkDeviceDiagnosticsConfigFlagBitsNV=^PVkDeviceDiagnosticsConfigFlagBitsNV;
PVkDeviceDiagnosticsConfigFlagBitsNV=^TVkDeviceDiagnosticsConfigFlagBitsNV;
TVkDeviceDiagnosticsConfigFlagBitsNV=
(
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV=$00000001,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV=$00000002,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV=$00000004
);
PPVkPipelineCreationFeedbackFlagBitsEXT=^PVkPipelineCreationFeedbackFlagBitsEXT;
PVkPipelineCreationFeedbackFlagBitsEXT=^TVkPipelineCreationFeedbackFlagBitsEXT;
TVkPipelineCreationFeedbackFlagBitsEXT=
(
VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT=$00000001,
VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT=$00000002,
VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT=$00000004
);
PPVkFullScreenExclusiveEXT=^PVkFullScreenExclusiveEXT;
PVkFullScreenExclusiveEXT=^TVkFullScreenExclusiveEXT;
TVkFullScreenExclusiveEXT=
(
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT=0,
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT=1,
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT=2,
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT=3
);
PPVkPerformanceCounterScopeKHR=^PVkPerformanceCounterScopeKHR;
PVkPerformanceCounterScopeKHR=^TVkPerformanceCounterScopeKHR;
TVkPerformanceCounterScopeKHR=
(
VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR=0,
VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR=1,
VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR=2,
VK_QUERY_SCOPE_COMMAND_BUFFER_KHR=VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
VK_QUERY_SCOPE_COMMAND_KHR=VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
VK_QUERY_SCOPE_RENDER_PASS_KHR=VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR
);
PPVkPerformanceCounterUnitKHR=^PVkPerformanceCounterUnitKHR;
PVkPerformanceCounterUnitKHR=^TVkPerformanceCounterUnitKHR;
TVkPerformanceCounterUnitKHR=
(
VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR=0,
VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR=1,
VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR=2,
VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR=3,
VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR=4,
VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR=5,
VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR=6,
VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR=7,
VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR=8,
VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR=9,
VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR=10
);
PPVkPerformanceCounterStorageKHR=^PVkPerformanceCounterStorageKHR;
PVkPerformanceCounterStorageKHR=^TVkPerformanceCounterStorageKHR;
TVkPerformanceCounterStorageKHR=
(
VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR=0,
VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR=1,
VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR=2,
VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR=3,
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR=4,
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR=5
);
PPVkPerformanceCounterDescriptionFlagBitsKHR=^PVkPerformanceCounterDescriptionFlagBitsKHR;
PVkPerformanceCounterDescriptionFlagBitsKHR=^TVkPerformanceCounterDescriptionFlagBitsKHR;
TVkPerformanceCounterDescriptionFlagBitsKHR=
(
VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR=$00000001,
VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR=$00000002,
VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR=VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, //< Backwards-compatible alias containing a typo
VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR=VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR //< Backwards-compatible alias containing a typo
);
PPVkAcquireProfilingLockFlagBitsKHR=^PVkAcquireProfilingLockFlagBitsKHR;
PVkAcquireProfilingLockFlagBitsKHR=^TVkAcquireProfilingLockFlagBitsKHR;
TVkAcquireProfilingLockFlagBitsKHR=
(
TVkAcquireProfilingLockFlagBitsKHRDummyValue=0
);
PPVkShaderCorePropertiesFlagBitsAMD=^PVkShaderCorePropertiesFlagBitsAMD;
PVkShaderCorePropertiesFlagBitsAMD=^TVkShaderCorePropertiesFlagBitsAMD;
TVkShaderCorePropertiesFlagBitsAMD=
(
TVkShaderCorePropertiesFlagBitsAMDDummyValue=0
);
PPVkPerformanceConfigurationTypeINTEL=^PVkPerformanceConfigurationTypeINTEL;
PVkPerformanceConfigurationTypeINTEL=^TVkPerformanceConfigurationTypeINTEL;
TVkPerformanceConfigurationTypeINTEL=
(
VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL=0
);
PPVkQueryPoolSamplingModeINTEL=^PVkQueryPoolSamplingModeINTEL;
PVkQueryPoolSamplingModeINTEL=^TVkQueryPoolSamplingModeINTEL;
TVkQueryPoolSamplingModeINTEL=
(
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL=0
);
PPVkPerformanceOverrideTypeINTEL=^PVkPerformanceOverrideTypeINTEL;
PVkPerformanceOverrideTypeINTEL=^TVkPerformanceOverrideTypeINTEL;
TVkPerformanceOverrideTypeINTEL=
(
VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL=0,
VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL=1
);
PPVkPerformanceParameterTypeINTEL=^PVkPerformanceParameterTypeINTEL;
PVkPerformanceParameterTypeINTEL=^TVkPerformanceParameterTypeINTEL;
TVkPerformanceParameterTypeINTEL=
(
VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL=0,
VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL=1
);
PPVkPerformanceValueTypeINTEL=^PVkPerformanceValueTypeINTEL;
PVkPerformanceValueTypeINTEL=^TVkPerformanceValueTypeINTEL;
TVkPerformanceValueTypeINTEL=
(
VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL=0,
VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL=1,
VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL=2,
VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL=3,
VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL=4
);
PPVkShaderFloatControlsIndependence=^PVkShaderFloatControlsIndependence;
PVkShaderFloatControlsIndependence=^TVkShaderFloatControlsIndependence;
TVkShaderFloatControlsIndependence=
(
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY=0,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL=1,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE=2,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR=VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR=VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR=VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
);
PPVkPipelineExecutableStatisticFormatKHR=^PVkPipelineExecutableStatisticFormatKHR;
PVkPipelineExecutableStatisticFormatKHR=^TVkPipelineExecutableStatisticFormatKHR;
TVkPipelineExecutableStatisticFormatKHR=
(
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR=0,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR=1,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR=2,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR=3
);
PPVkLineRasterizationModeEXT=^PVkLineRasterizationModeEXT;
PVkLineRasterizationModeEXT=^TVkLineRasterizationModeEXT;
TVkLineRasterizationModeEXT=
(
VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT=0,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT=1,
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT=2,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT=3
);
PPVkShaderModuleCreateFlagBits=^PVkShaderModuleCreateFlagBits;
PVkShaderModuleCreateFlagBits=^TVkShaderModuleCreateFlagBits;
TVkShaderModuleCreateFlagBits=
(
VK_SHADER_MODULE_CREATE_RESERVED_0_BIT_NV=$00000001
);
PPVkPipelineCompilerControlFlagBitsAMD=^PVkPipelineCompilerControlFlagBitsAMD;
PVkPipelineCompilerControlFlagBitsAMD=^TVkPipelineCompilerControlFlagBitsAMD;
TVkPipelineCompilerControlFlagBitsAMD=
(
TVkPipelineCompilerControlFlagBitsAMDDummyValue=0
);
PPVkToolPurposeFlagBitsEXT=^PVkToolPurposeFlagBitsEXT;
PVkToolPurposeFlagBitsEXT=^TVkToolPurposeFlagBitsEXT;
TVkToolPurposeFlagBitsEXT=
(
VK_TOOL_PURPOSE_VALIDATION_BIT_EXT=$00000001,
VK_TOOL_PURPOSE_PROFILING_BIT_EXT=$00000002,
VK_TOOL_PURPOSE_TRACING_BIT_EXT=$00000004,
VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT=$00000008,
VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT=$00000010,
VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT=$00000020,
VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT=$00000040
);
PPVkFragmentShadingRateCombinerOpKHR=^PVkFragmentShadingRateCombinerOpKHR;
PVkFragmentShadingRateCombinerOpKHR=^TVkFragmentShadingRateCombinerOpKHR;
TVkFragmentShadingRateCombinerOpKHR=
(
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR=0,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR=1,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR=2,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR=3,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR=4
);
PPVkFragmentShadingRateNV=^PVkFragmentShadingRateNV;
PVkFragmentShadingRateNV=^TVkFragmentShadingRateNV;
TVkFragmentShadingRateNV=
(
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV=0,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV=1,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV=4,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV=5,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV=6,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV=9,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV=10,
VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV=11,
VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV=12,
VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV=13,
VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV=14,
VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV=15
);
PPVkFragmentShadingRateTypeNV=^PVkFragmentShadingRateTypeNV;
PVkFragmentShadingRateTypeNV=^TVkFragmentShadingRateTypeNV;
TVkFragmentShadingRateTypeNV=
(
VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV=0,
VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV=1
);
PPVkAccessFlagBits2KHR=^PVkAccessFlagBits2KHR;
PVkAccessFlagBits2KHR=^TVkAccessFlagBits2KHR;
TVkAccessFlagBits2KHR=
(
VK_ACCESS_2_NONE_KHR=0,
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR=$00000001,
VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR=$00000001,
VK_ACCESS_2_INDEX_READ_BIT_KHR=$00000002,
VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR=$00000002,
VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR=$00000004,
VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR=$00000004,
VK_ACCESS_2_UNIFORM_READ_BIT_KHR=$00000008,
VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR=$00000008,
VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR=$00000010,
VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR=$00000010,
VK_ACCESS_2_SHADER_READ_BIT_KHR=$00000020,
VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR=$00000020,
VK_ACCESS_2_SHADER_WRITE_BIT_KHR=$00000040,
VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR=$00000040,
VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR=$00000080,
VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI=$00000080,
VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR=$00000100,
VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR=$00000200,
VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR=$00000400,
VK_ACCESS_2_TRANSFER_READ_BIT_KHR=$00000800,
VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR=$00001000,
VK_ACCESS_2_HOST_READ_BIT_KHR=$00002000,
VK_ACCESS_2_HOST_WRITE_BIT_KHR=$00004000,
VK_ACCESS_2_MEMORY_READ_BIT_KHR=$00008000,
VK_ACCESS_2_MEMORY_WRITE_BIT_KHR=$00010000,
VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV=$00020000,
VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV=$00040000,
VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT=$00080000,
VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT=$00100000,
VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR=$00200000,
VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR=$00400000,
VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR=$00800000,
VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT=$01000000,
VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT=$02000000,
VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT=$04000000,
VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT=$08000000,
VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV=VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV=VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV=VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
);
PPVkPipelineStageFlagBits2KHR=^PVkPipelineStageFlagBits2KHR;
PVkPipelineStageFlagBits2KHR=^TVkPipelineStageFlagBits2KHR;
TVkPipelineStageFlagBits2KHR=
(
VK_PIPELINE_STAGE_2_NONE_KHR=0,
VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR=$00000001,
VK_PIPELINE_STAGE_2_COPY_BIT_KHR=$00000001,
VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR=$00000002,
VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR=$00000002,
VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR=$00000004,
VK_PIPELINE_STAGE_2_BLIT_BIT_KHR=$00000004,
VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR=$00000008,
VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR=$00000008,
VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR=$00000010,
VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR=$00000010,
VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR=$00000020,
VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR=$00000020,
VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR=$00000040,
VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR=$00000040,
VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR=$00000080,
VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI=$00000080,
VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR=$00000100,
VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI=$00000100,
VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR=$00000200,
VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR=$00000400,
VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR=$00000800,
VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR=$00001000,
VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR=$00002000,
VK_PIPELINE_STAGE_2_HOST_BIT_KHR=$00004000,
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR=$00008000,
VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR=$00010000,
VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV=$00020000,
VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT=$00040000,
VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV=$00080000,
VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV=$00100000,
VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR=$00200000,
VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR=$00400000,
VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT=$00800000,
VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT=$01000000,
VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR=$02000000,
VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR=$04000000,
VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR=$08000000,
VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV=VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR=VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV=VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV=VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
);
PPVkSubmitFlagBitsKHR=^PVkSubmitFlagBitsKHR;
PVkSubmitFlagBitsKHR=^TVkSubmitFlagBitsKHR;
TVkSubmitFlagBitsKHR=
(
VK_SUBMIT_PROTECTED_BIT_KHR=$00000001
);
PPVkEventCreateFlagBits=^PVkEventCreateFlagBits;
PVkEventCreateFlagBits=^TVkEventCreateFlagBits;
TVkEventCreateFlagBits=
(
VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR=$00000001
);
PPVkPipelineLayoutCreateFlagBits=^PVkPipelineLayoutCreateFlagBits;
PVkPipelineLayoutCreateFlagBits=^TVkPipelineLayoutCreateFlagBits;
TVkPipelineLayoutCreateFlagBits=
(
VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD=$00000001
);
PPVkProvokingVertexModeEXT=^PVkProvokingVertexModeEXT;
PVkProvokingVertexModeEXT=^TVkProvokingVertexModeEXT;
TVkProvokingVertexModeEXT=
(
VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT=0,
VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT=1
);
PPVkAccelerationStructureMotionInstanceTypeNV=^PVkAccelerationStructureMotionInstanceTypeNV;
PVkAccelerationStructureMotionInstanceTypeNV=^TVkAccelerationStructureMotionInstanceTypeNV;
TVkAccelerationStructureMotionInstanceTypeNV=
(
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV=0,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV=1,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV=2
);
PPVkVideoCodecOperationFlagBitsKHR=^PVkVideoCodecOperationFlagBitsKHR;
PVkVideoCodecOperationFlagBitsKHR=^TVkVideoCodecOperationFlagBitsKHR;
TVkVideoCodecOperationFlagBitsKHR=
(
VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR=0,
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT=$00000001,
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT=$00000002,
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT=$00010000
);
PPVkVideoChromaSubsamplingFlagBitsKHR=^PVkVideoChromaSubsamplingFlagBitsKHR;
PVkVideoChromaSubsamplingFlagBitsKHR=^TVkVideoChromaSubsamplingFlagBitsKHR;
TVkVideoChromaSubsamplingFlagBitsKHR=
(
VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR=0,
VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR=$00000001,
VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR=$00000002,
VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR=$00000004,
VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR=$00000008
);
PPVkVideoComponentBitDepthFlagBitsKHR=^PVkVideoComponentBitDepthFlagBitsKHR;
PVkVideoComponentBitDepthFlagBitsKHR=^TVkVideoComponentBitDepthFlagBitsKHR;
TVkVideoComponentBitDepthFlagBitsKHR=
(
VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR=0,
VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR=$00000001,
VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR=$00000004,
VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR=$00000010
);
PPVkVideoCapabilitiesFlagBitsKHR=^PVkVideoCapabilitiesFlagBitsKHR;
PVkVideoCapabilitiesFlagBitsKHR=^TVkVideoCapabilitiesFlagBitsKHR;
TVkVideoCapabilitiesFlagBitsKHR=
(
VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR=$00000001,
VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR=$00000002
);
PPVkVideoSessionCreateFlagBitsKHR=^PVkVideoSessionCreateFlagBitsKHR;
PVkVideoSessionCreateFlagBitsKHR=^TVkVideoSessionCreateFlagBitsKHR;
TVkVideoSessionCreateFlagBitsKHR=
(
VK_VIDEO_SESSION_CREATE_DEFAULT_KHR=0,
VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR=$00000001
);
PPVkVideoCodingQualityPresetFlagBitsKHR=^PVkVideoCodingQualityPresetFlagBitsKHR;
PVkVideoCodingQualityPresetFlagBitsKHR=^TVkVideoCodingQualityPresetFlagBitsKHR;
TVkVideoCodingQualityPresetFlagBitsKHR=
(
VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR=0,
VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR=$00000001,
VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR=$00000002,
VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR=$00000004
);
PPVkVideoDecodeH264FieldLayoutFlagBitsEXT=^PVkVideoDecodeH264FieldLayoutFlagBitsEXT;
PVkVideoDecodeH264FieldLayoutFlagBitsEXT=^TVkVideoDecodeH264FieldLayoutFlagBitsEXT;
TVkVideoDecodeH264FieldLayoutFlagBitsEXT=
(
VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT=0,
VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT=$00000001,
VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT=$00000002
);
PPVkVideoCodingControlFlagBitsKHR=^PVkVideoCodingControlFlagBitsKHR;
PVkVideoCodingControlFlagBitsKHR=^TVkVideoCodingControlFlagBitsKHR;
TVkVideoCodingControlFlagBitsKHR=
(
VK_VIDEO_CODING_CONTROL_DEFAULT_KHR=0,
VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR=$00000001
);
PPVkQueryResultStatusKHR=^PVkQueryResultStatusKHR;
PVkQueryResultStatusKHR=^TVkQueryResultStatusKHR;
TVkQueryResultStatusKHR=
(
VK_QUERY_RESULT_STATUS_ERROR_KHR=-1,
VK_QUERY_RESULT_STATUS_NOT_READY_KHR=0,
VK_QUERY_RESULT_STATUS_COMPLETE_KHR=1
);
PPVkVideoDecodeFlagBitsKHR=^PVkVideoDecodeFlagBitsKHR;
PVkVideoDecodeFlagBitsKHR=^TVkVideoDecodeFlagBitsKHR;
TVkVideoDecodeFlagBitsKHR=
(
VK_VIDEO_DECODE_DEFAULT_KHR=0,
VK_VIDEO_DECODE_RESERVED_0_BIT_KHR=$00000001
);
PPVkVideoEncodeFlagBitsKHR=^PVkVideoEncodeFlagBitsKHR;
PVkVideoEncodeFlagBitsKHR=^TVkVideoEncodeFlagBitsKHR;
TVkVideoEncodeFlagBitsKHR=
(
VK_VIDEO_ENCODE_DEFAULT_KHR=0,
VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR=$00000001
);
PPVkVideoEncodeRateControlFlagBitsKHR=^PVkVideoEncodeRateControlFlagBitsKHR;
PVkVideoEncodeRateControlFlagBitsKHR=^TVkVideoEncodeRateControlFlagBitsKHR;
TVkVideoEncodeRateControlFlagBitsKHR=
(
VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR=0,
VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR=$00000001
);
PPVkVideoEncodeRateControlModeFlagBitsKHR=^PVkVideoEncodeRateControlModeFlagBitsKHR;
PVkVideoEncodeRateControlModeFlagBitsKHR=^TVkVideoEncodeRateControlModeFlagBitsKHR;
TVkVideoEncodeRateControlModeFlagBitsKHR=
(
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR=0,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR=1,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR=2
);
PPVkVideoEncodeH264CapabilitiesFlagBitsEXT=^PVkVideoEncodeH264CapabilitiesFlagBitsEXT;
PVkVideoEncodeH264CapabilitiesFlagBitsEXT=^TVkVideoEncodeH264CapabilitiesFlagBitsEXT;
TVkVideoEncodeH264CapabilitiesFlagBitsEXT=
(
VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT=$00000001,
VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT=$00000002,
VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT=$00000004,
VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT=$00000008,
VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT=$00000010,
VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT=$00000020,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT=$00000040,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT=$00000080,
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT=$00000100,
VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT=$00000200,
VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT=$00000400
);
PPVkVideoEncodeH264InputModeFlagBitsEXT=^PVkVideoEncodeH264InputModeFlagBitsEXT;
PVkVideoEncodeH264InputModeFlagBitsEXT=^TVkVideoEncodeH264InputModeFlagBitsEXT;
TVkVideoEncodeH264InputModeFlagBitsEXT=
(
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT=$00000001,
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT=$00000002,
VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT=$00000004
);
PPVkVideoEncodeH264OutputModeFlagBitsEXT=^PVkVideoEncodeH264OutputModeFlagBitsEXT;
PVkVideoEncodeH264OutputModeFlagBitsEXT=^TVkVideoEncodeH264OutputModeFlagBitsEXT;
TVkVideoEncodeH264OutputModeFlagBitsEXT=
(
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT=$00000001,
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT=$00000002,
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT=$00000004
);
PPVkVideoEncodeH264CreateFlagBitsEXT=^PVkVideoEncodeH264CreateFlagBitsEXT;
PVkVideoEncodeH264CreateFlagBitsEXT=^TVkVideoEncodeH264CreateFlagBitsEXT;
TVkVideoEncodeH264CreateFlagBitsEXT=
(
VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT=0,
VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT=$00000001
);
PPVkDescriptorUpdateTemplateTypeKHR=PPVkDescriptorUpdateTemplateType;
PVkDescriptorUpdateTemplateTypeKHR=PVkDescriptorUpdateTemplateType;
TVkDescriptorUpdateTemplateTypeKHR=TVkDescriptorUpdateTemplateType;
PPVkPointClippingBehaviorKHR=PPVkPointClippingBehavior;
PVkPointClippingBehaviorKHR=PVkPointClippingBehavior;
TVkPointClippingBehaviorKHR=TVkPointClippingBehavior;
PPVkResolveModeFlagBitsKHR=PPVkResolveModeFlagBits;
PVkResolveModeFlagBitsKHR=PVkResolveModeFlagBits;
TVkResolveModeFlagBitsKHR=TVkResolveModeFlagBits;
PPVkDescriptorBindingFlagBitsEXT=PPVkDescriptorBindingFlagBits;
PVkDescriptorBindingFlagBitsEXT=PVkDescriptorBindingFlagBits;
TVkDescriptorBindingFlagBitsEXT=TVkDescriptorBindingFlagBits;
PPVkSemaphoreTypeKHR=PPVkSemaphoreType;
PVkSemaphoreTypeKHR=PVkSemaphoreType;
TVkSemaphoreTypeKHR=TVkSemaphoreType;
PPVkGeometryFlagBitsNV=PPVkGeometryFlagBitsKHR;
PVkGeometryFlagBitsNV=PVkGeometryFlagBitsKHR;
TVkGeometryFlagBitsNV=TVkGeometryFlagBitsKHR;
PPVkGeometryInstanceFlagBitsNV=PPVkGeometryInstanceFlagBitsKHR;
PVkGeometryInstanceFlagBitsNV=PVkGeometryInstanceFlagBitsKHR;
TVkGeometryInstanceFlagBitsNV=TVkGeometryInstanceFlagBitsKHR;
PPVkBuildAccelerationStructureFlagBitsNV=PPVkBuildAccelerationStructureFlagBitsKHR;
PVkBuildAccelerationStructureFlagBitsNV=PVkBuildAccelerationStructureFlagBitsKHR;
TVkBuildAccelerationStructureFlagBitsNV=TVkBuildAccelerationStructureFlagBitsKHR;
PPVkCopyAccelerationStructureModeNV=PPVkCopyAccelerationStructureModeKHR;
PVkCopyAccelerationStructureModeNV=PVkCopyAccelerationStructureModeKHR;
TVkCopyAccelerationStructureModeNV=TVkCopyAccelerationStructureModeKHR;
PPVkAccelerationStructureTypeNV=PPVkAccelerationStructureTypeKHR;
PVkAccelerationStructureTypeNV=PVkAccelerationStructureTypeKHR;
TVkAccelerationStructureTypeNV=TVkAccelerationStructureTypeKHR;
PPVkGeometryTypeNV=PPVkGeometryTypeKHR;
PVkGeometryTypeNV=PVkGeometryTypeKHR;
TVkGeometryTypeNV=TVkGeometryTypeKHR;
PPVkRayTracingShaderGroupTypeNV=PPVkRayTracingShaderGroupTypeKHR;
PVkRayTracingShaderGroupTypeNV=PVkRayTracingShaderGroupTypeKHR;
TVkRayTracingShaderGroupTypeNV=TVkRayTracingShaderGroupTypeKHR;
PPVkSemaphoreWaitFlagBitsKHR=PPVkSemaphoreWaitFlagBits;
PVkSemaphoreWaitFlagBitsKHR=PVkSemaphoreWaitFlagBits;
TVkSemaphoreWaitFlagBitsKHR=TVkSemaphoreWaitFlagBits;
PPVkExternalMemoryHandleTypeFlagBitsKHR=PPVkExternalMemoryHandleTypeFlagBits;
PVkExternalMemoryHandleTypeFlagBitsKHR=PVkExternalMemoryHandleTypeFlagBits;
TVkExternalMemoryHandleTypeFlagBitsKHR=TVkExternalMemoryHandleTypeFlagBits;
PPVkExternalMemoryFeatureFlagBitsKHR=PPVkExternalMemoryFeatureFlagBits;
PVkExternalMemoryFeatureFlagBitsKHR=PVkExternalMemoryFeatureFlagBits;
TVkExternalMemoryFeatureFlagBitsKHR=TVkExternalMemoryFeatureFlagBits;
PPVkExternalSemaphoreHandleTypeFlagBitsKHR=PPVkExternalSemaphoreHandleTypeFlagBits;
PVkExternalSemaphoreHandleTypeFlagBitsKHR=PVkExternalSemaphoreHandleTypeFlagBits;
TVkExternalSemaphoreHandleTypeFlagBitsKHR=TVkExternalSemaphoreHandleTypeFlagBits;
PPVkExternalSemaphoreFeatureFlagBitsKHR=PPVkExternalSemaphoreFeatureFlagBits;
PVkExternalSemaphoreFeatureFlagBitsKHR=PVkExternalSemaphoreFeatureFlagBits;
TVkExternalSemaphoreFeatureFlagBitsKHR=TVkExternalSemaphoreFeatureFlagBits;
PPVkSemaphoreImportFlagBitsKHR=PPVkSemaphoreImportFlagBits;
PVkSemaphoreImportFlagBitsKHR=PVkSemaphoreImportFlagBits;
TVkSemaphoreImportFlagBitsKHR=TVkSemaphoreImportFlagBits;
PPVkExternalFenceHandleTypeFlagBitsKHR=PPVkExternalFenceHandleTypeFlagBits;
PVkExternalFenceHandleTypeFlagBitsKHR=PVkExternalFenceHandleTypeFlagBits;
TVkExternalFenceHandleTypeFlagBitsKHR=TVkExternalFenceHandleTypeFlagBits;
PPVkExternalFenceFeatureFlagBitsKHR=PPVkExternalFenceFeatureFlagBits;
PVkExternalFenceFeatureFlagBitsKHR=PVkExternalFenceFeatureFlagBits;
TVkExternalFenceFeatureFlagBitsKHR=TVkExternalFenceFeatureFlagBits;
PPVkFenceImportFlagBitsKHR=PPVkFenceImportFlagBits;
PVkFenceImportFlagBitsKHR=PVkFenceImportFlagBits;
TVkFenceImportFlagBitsKHR=TVkFenceImportFlagBits;
PPVkPeerMemoryFeatureFlagBitsKHR=PPVkPeerMemoryFeatureFlagBits;
PVkPeerMemoryFeatureFlagBitsKHR=PVkPeerMemoryFeatureFlagBits;
TVkPeerMemoryFeatureFlagBitsKHR=TVkPeerMemoryFeatureFlagBits;
PPVkMemoryAllocateFlagBitsKHR=PPVkMemoryAllocateFlagBits;
PVkMemoryAllocateFlagBitsKHR=PVkMemoryAllocateFlagBits;
TVkMemoryAllocateFlagBitsKHR=TVkMemoryAllocateFlagBits;
PPVkTessellationDomainOriginKHR=PPVkTessellationDomainOrigin;
PVkTessellationDomainOriginKHR=PVkTessellationDomainOrigin;
TVkTessellationDomainOriginKHR=TVkTessellationDomainOrigin;
PPVkSamplerYcbcrModelConversionKHR=PPVkSamplerYcbcrModelConversion;
PVkSamplerYcbcrModelConversionKHR=PVkSamplerYcbcrModelConversion;
TVkSamplerYcbcrModelConversionKHR=TVkSamplerYcbcrModelConversion;
PPVkSamplerYcbcrRangeKHR=PPVkSamplerYcbcrRange;
PVkSamplerYcbcrRangeKHR=PVkSamplerYcbcrRange;
TVkSamplerYcbcrRangeKHR=TVkSamplerYcbcrRange;
PPVkChromaLocationKHR=PPVkChromaLocation;
PVkChromaLocationKHR=PVkChromaLocation;
TVkChromaLocationKHR=TVkChromaLocation;
PPVkSamplerReductionModeEXT=PPVkSamplerReductionMode;
PVkSamplerReductionModeEXT=PVkSamplerReductionMode;
TVkSamplerReductionModeEXT=TVkSamplerReductionMode;
PPVkShaderFloatControlsIndependenceKHR=PPVkShaderFloatControlsIndependence;
PVkShaderFloatControlsIndependenceKHR=PVkShaderFloatControlsIndependence;
TVkShaderFloatControlsIndependenceKHR=TVkShaderFloatControlsIndependence;
PPVkDriverIdKHR=PPVkDriverId;
PVkDriverIdKHR=PVkDriverId;
TVkDriverIdKHR=TVkDriverId;
PPPFN_vkInternalAllocationNotification=^PPFN_vkInternalAllocationNotification;
PPFN_vkInternalAllocationNotification=^TPFN_vkInternalAllocationNotification;
TPFN_vkInternalAllocationNotification=procedure(pUserData:PVkVoid;size:TVkSize;allocationType:TVkInternalAllocationType;allocationScope:TVkSystemAllocationScope); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkInternalFreeNotification=^PPFN_vkInternalFreeNotification;
PPFN_vkInternalFreeNotification=^TPFN_vkInternalFreeNotification;
TPFN_vkInternalFreeNotification=procedure(pUserData:PVkVoid;size:TVkSize;allocationType:TVkInternalAllocationType;allocationScope:TVkSystemAllocationScope); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkReallocationFunction=^PPFN_vkReallocationFunction;
PPFN_vkReallocationFunction=^TPFN_vkReallocationFunction;
TPFN_vkReallocationFunction=function(pUserData:PVkVoid;pOriginal:PVkVoid;size:TVkSize;alignment:TVkSize;allocationScope:TVkSystemAllocationScope):PVkVoid; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkAllocationFunction=^PPFN_vkAllocationFunction;
PPFN_vkAllocationFunction=^TPFN_vkAllocationFunction;
TPFN_vkAllocationFunction=function(pUserData:PVkVoid;size:TVkSize;alignment:TVkSize;allocationScope:TVkSystemAllocationScope):PVkVoid; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkFreeFunction=^PPFN_vkFreeFunction;
PPFN_vkFreeFunction=^TPFN_vkFreeFunction;
TPFN_vkFreeFunction=procedure(pUserData:PVkVoid;pMemory:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkVoidFunction=^PPFN_vkVoidFunction;
PPFN_vkVoidFunction=^TPFN_vkVoidFunction;
TPFN_vkVoidFunction=procedure(); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPPFN_vkDebugReportCallbackEXT=^PPFN_vkDebugReportCallbackEXT;
PPFN_vkDebugReportCallbackEXT=^TPFN_vkDebugReportCallbackEXT;
TPFN_vkDebugReportCallbackEXT=function(flags:TVkDebugReportFlagsEXT;objectType:TVkDebugReportObjectTypeEXT;object_:TVkUInt64;location:TVkSize;messageCode:TVkInt32;const pLayerPrefix:PVkChar;const pMessage:PVkChar;pUserData:PVkVoid):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPVkDebugUtilsObjectNameInfoEXT=^PVkDebugUtilsObjectNameInfoEXT;
PVkDebugUtilsObjectNameInfoEXT=^TVkDebugUtilsObjectNameInfoEXT;
TVkDebugUtilsObjectNameInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
pNext:PVkVoid;
objectType:TVkObjectType;
objectHandle:TVkUInt64;
pObjectName:PVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aPObjectName:PVkChar);
{$endif}
end;
PPVkDeviceMemoryReportCallbackDataEXT=^PVkDeviceMemoryReportCallbackDataEXT;
PVkDeviceMemoryReportCallbackDataEXT=^TVkDeviceMemoryReportCallbackDataEXT;
TVkDeviceMemoryReportCallbackDataEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
pNext:PVkVoid;
flags:TVkDeviceMemoryReportFlagsEXT;
type_:TVkDeviceMemoryReportEventTypeEXT;
memoryObjectId:TVkUInt64;
size:TVkDeviceSize;
objectType:TVkObjectType;
objectHandle:TVkUInt64;
heapIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceMemoryReportFlagsEXT;
const aType_:TVkDeviceMemoryReportEventTypeEXT;
const aMemoryObjectId:TVkUInt64;
const aSize:TVkDeviceSize;
const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aHeapIndex:TVkUInt32);
{$endif}
end;
PPVkBaseOutStructure=^PVkBaseOutStructure;
PVkBaseOutStructure=^TVkBaseOutStructure;
TVkBaseOutStructure=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType;
pNext:PVkBaseOutStructure;
{$ifdef HAS_ADVANCED_RECORDS}
{$endif}
end;
PPVkBaseInStructure=^PVkBaseInStructure;
PVkBaseInStructure=^TVkBaseInStructure;
TVkBaseInStructure=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType;
pNext:PVkBaseInStructure;
{$ifdef HAS_ADVANCED_RECORDS}
{$endif}
end;
PPVkOffset2D=^PVkOffset2D;
PVkOffset2D=^TVkOffset2D;
TVkOffset2D=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkInt32;
y:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkInt32;
const aY:TVkInt32);
{$endif}
end;
PPVkOffset3D=^PVkOffset3D;
PVkOffset3D=^TVkOffset3D;
TVkOffset3D=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkInt32;
y:TVkInt32;
z:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkInt32;
const aY:TVkInt32;
const aZ:TVkInt32);
{$endif}
end;
PPVkExtent2D=^PVkExtent2D;
PVkExtent2D=^TVkExtent2D;
TVkExtent2D=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
width:TVkUInt32;
height:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32);
{$endif}
end;
PPVkExtent3D=^PVkExtent3D;
PVkExtent3D=^TVkExtent3D;
TVkExtent3D=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
width:TVkUInt32;
height:TVkUInt32;
depth:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aDepth:TVkUInt32);
{$endif}
end;
PPVkViewport=^PVkViewport;
PVkViewport=^TVkViewport;
TVkViewport=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkFloat;
y:TVkFloat;
width:TVkFloat;
height:TVkFloat;
minDepth:TVkFloat;
maxDepth:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkFloat;
const aY:TVkFloat;
const aWidth:TVkFloat;
const aHeight:TVkFloat;
const aMinDepth:TVkFloat;
const aMaxDepth:TVkFloat);
{$endif}
end;
PPVkRect2D=^PVkRect2D;
PVkRect2D=^TVkRect2D;
TVkRect2D=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
offset:TVkOffset2D;
extent:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOffset:TVkOffset2D;
const aExtent:TVkExtent2D);
{$endif}
end;
PPVkClearRect=^PVkClearRect;
PVkClearRect=^TVkClearRect;
TVkClearRect=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
rect:TVkRect2D;
baseArrayLayer:TVkUInt32;
layerCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRect:TVkRect2D;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
{$endif}
end;
PPVkComponentMapping=^PVkComponentMapping;
PVkComponentMapping=^TVkComponentMapping;
TVkComponentMapping=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
r:TVkComponentSwizzle;
g:TVkComponentSwizzle;
b:TVkComponentSwizzle;
a:TVkComponentSwizzle;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aR:TVkComponentSwizzle;
const aG:TVkComponentSwizzle;
const aB:TVkComponentSwizzle;
const aA:TVkComponentSwizzle);
{$endif}
end;
PPVkPhysicalDeviceSparseProperties=^PVkPhysicalDeviceSparseProperties;
PVkPhysicalDeviceSparseProperties=^TVkPhysicalDeviceSparseProperties;
TVkPhysicalDeviceSparseProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
residencyStandard2DBlockShape:TVkBool32;
residencyStandard2DMultisampleBlockShape:TVkBool32;
residencyStandard3DBlockShape:TVkBool32;
residencyAlignedMipSize:TVkBool32;
residencyNonResidentStrict:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aResidencyStandard2DBlockShape:TVkBool32;
const aResidencyStandard2DMultisampleBlockShape:TVkBool32;
const aResidencyStandard3DBlockShape:TVkBool32;
const aResidencyAlignedMipSize:TVkBool32;
const aResidencyNonResidentStrict:TVkBool32);
{$endif}
end;
PPVkExtensionProperties=^PVkExtensionProperties;
PVkExtensionProperties=^TVkExtensionProperties;
TVkExtensionProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
extensionName:array[0..VK_MAX_EXTENSION_NAME_SIZE-1] of TVkChar;
specVersion:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExtensionName:TVkCharString;
const aSpecVersion:TVkUInt32);
{$endif}
end;
PPVkLayerProperties=^PVkLayerProperties;
PVkLayerProperties=^TVkLayerProperties;
TVkLayerProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
layerName:array[0..VK_MAX_EXTENSION_NAME_SIZE-1] of TVkChar;
specVersion:TVkUInt32;
implementationVersion:TVkUInt32;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLayerName:TVkCharString;
const aSpecVersion:TVkUInt32;
const aImplementationVersion:TVkUInt32;
const aDescription:TVkCharString);
{$endif}
end;
PPVkApplicationInfo=^PVkApplicationInfo;
PVkApplicationInfo=^TVkApplicationInfo;
TVkApplicationInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_APPLICATION_INFO
pNext:PVkVoid;
pApplicationName:PVkChar;
applicationVersion:TVkUInt32;
pEngineName:PVkChar;
engineVersion:TVkUInt32;
apiVersion:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPApplicationName:PVkChar;
const aApplicationVersion:TVkUInt32;
const aPEngineName:PVkChar;
const aEngineVersion:TVkUInt32;
const aApiVersion:TVkUInt32);
{$endif}
end;
PPVkAllocationCallbacks=^PVkAllocationCallbacks;
PVkAllocationCallbacks=^TVkAllocationCallbacks;
TVkAllocationCallbacks=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
pUserData:PVkVoid;
pfnAllocation:TPFN_vkAllocationFunction;
pfnReallocation:TPFN_vkReallocationFunction;
pfnFree:TPFN_vkFreeFunction;
pfnInternalAllocation:TPFN_vkInternalAllocationNotification;
pfnInternalFree:TPFN_vkInternalFreeNotification;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPUserData:PVkVoid;
const aPfnAllocation:TPFN_vkAllocationFunction;
const aPfnReallocation:TPFN_vkReallocationFunction;
const aPfnFree:TPFN_vkFreeFunction;
const aPfnInternalAllocation:TPFN_vkInternalAllocationNotification;
const aPfnInternalFree:TPFN_vkInternalFreeNotification);
{$endif}
end;
PPVkDeviceQueueCreateInfo=^PVkDeviceQueueCreateInfo;
PVkDeviceQueueCreateInfo=^TVkDeviceQueueCreateInfo;
TVkDeviceQueueCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
pNext:PVkVoid;
flags:TVkDeviceQueueCreateFlags;
queueFamilyIndex:TVkUInt32;
queueCount:TVkUInt32;
pQueuePriorities:PVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceQueueCreateFlags;
const aQueueFamilyIndex:TVkUInt32;
const aQueueCount:TVkUInt32;
const aPQueuePriorities:PVkFloat);
{$endif}
end;
PPVkPhysicalDeviceFeatures=^PVkPhysicalDeviceFeatures;
PVkPhysicalDeviceFeatures=^TVkPhysicalDeviceFeatures;
TVkPhysicalDeviceFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
robustBufferAccess:TVkBool32;
fullDrawIndexUint32:TVkBool32;
imageCubeArray:TVkBool32;
independentBlend:TVkBool32;
geometryShader:TVkBool32;
tessellationShader:TVkBool32;
sampleRateShading:TVkBool32;
dualSrcBlend:TVkBool32;
logicOp:TVkBool32;
multiDrawIndirect:TVkBool32;
drawIndirectFirstInstance:TVkBool32;
depthClamp:TVkBool32;
depthBiasClamp:TVkBool32;
fillModeNonSolid:TVkBool32;
depthBounds:TVkBool32;
wideLines:TVkBool32;
largePoints:TVkBool32;
alphaToOne:TVkBool32;
multiViewport:TVkBool32;
samplerAnisotropy:TVkBool32;
textureCompressionETC2:TVkBool32;
textureCompressionASTC_LDR:TVkBool32;
textureCompressionBC:TVkBool32;
occlusionQueryPrecise:TVkBool32;
pipelineStatisticsQuery:TVkBool32;
vertexPipelineStoresAndAtomics:TVkBool32;
fragmentStoresAndAtomics:TVkBool32;
shaderTessellationAndGeometryPointSize:TVkBool32;
shaderImageGatherExtended:TVkBool32;
shaderStorageImageExtendedFormats:TVkBool32;
shaderStorageImageMultisample:TVkBool32;
shaderStorageImageReadWithoutFormat:TVkBool32;
shaderStorageImageWriteWithoutFormat:TVkBool32;
shaderUniformBufferArrayDynamicIndexing:TVkBool32;
shaderSampledImageArrayDynamicIndexing:TVkBool32;
shaderStorageBufferArrayDynamicIndexing:TVkBool32;
shaderStorageImageArrayDynamicIndexing:TVkBool32;
shaderClipDistance:TVkBool32;
shaderCullDistance:TVkBool32;
shaderFloat64:TVkBool32;
shaderInt64:TVkBool32;
shaderInt16:TVkBool32;
shaderResourceResidency:TVkBool32;
shaderResourceMinLod:TVkBool32;
sparseBinding:TVkBool32;
sparseResidencyBuffer:TVkBool32;
sparseResidencyImage2D:TVkBool32;
sparseResidencyImage3D:TVkBool32;
sparseResidency2Samples:TVkBool32;
sparseResidency4Samples:TVkBool32;
sparseResidency8Samples:TVkBool32;
sparseResidency16Samples:TVkBool32;
sparseResidencyAliased:TVkBool32;
variableMultisampleRate:TVkBool32;
inheritedQueries:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRobustBufferAccess:TVkBool32;
const aFullDrawIndexUint32:TVkBool32;
const aImageCubeArray:TVkBool32;
const aIndependentBlend:TVkBool32;
const aGeometryShader:TVkBool32;
const aTessellationShader:TVkBool32;
const aSampleRateShading:TVkBool32;
const aDualSrcBlend:TVkBool32;
const aLogicOp:TVkBool32;
const aMultiDrawIndirect:TVkBool32;
const aDrawIndirectFirstInstance:TVkBool32;
const aDepthClamp:TVkBool32;
const aDepthBiasClamp:TVkBool32;
const aFillModeNonSolid:TVkBool32;
const aDepthBounds:TVkBool32;
const aWideLines:TVkBool32;
const aLargePoints:TVkBool32;
const aAlphaToOne:TVkBool32;
const aMultiViewport:TVkBool32;
const aSamplerAnisotropy:TVkBool32;
const aTextureCompressionETC2:TVkBool32;
const aTextureCompressionASTC_LDR:TVkBool32;
const aTextureCompressionBC:TVkBool32;
const aOcclusionQueryPrecise:TVkBool32;
const aPipelineStatisticsQuery:TVkBool32;
const aVertexPipelineStoresAndAtomics:TVkBool32;
const aFragmentStoresAndAtomics:TVkBool32;
const aShaderTessellationAndGeometryPointSize:TVkBool32;
const aShaderImageGatherExtended:TVkBool32;
const aShaderStorageImageExtendedFormats:TVkBool32;
const aShaderStorageImageMultisample:TVkBool32;
const aShaderStorageImageReadWithoutFormat:TVkBool32;
const aShaderStorageImageWriteWithoutFormat:TVkBool32;
const aShaderUniformBufferArrayDynamicIndexing:TVkBool32;
const aShaderSampledImageArrayDynamicIndexing:TVkBool32;
const aShaderStorageBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageImageArrayDynamicIndexing:TVkBool32;
const aShaderClipDistance:TVkBool32;
const aShaderCullDistance:TVkBool32;
const aShaderFloat64:TVkBool32;
const aShaderInt64:TVkBool32;
const aShaderInt16:TVkBool32;
const aShaderResourceResidency:TVkBool32;
const aShaderResourceMinLod:TVkBool32;
const aSparseBinding:TVkBool32;
const aSparseResidencyBuffer:TVkBool32;
const aSparseResidencyImage2D:TVkBool32;
const aSparseResidencyImage3D:TVkBool32;
const aSparseResidency2Samples:TVkBool32;
const aSparseResidency4Samples:TVkBool32;
const aSparseResidency8Samples:TVkBool32;
const aSparseResidency16Samples:TVkBool32;
const aSparseResidencyAliased:TVkBool32;
const aVariableMultisampleRate:TVkBool32;
const aInheritedQueries:TVkBool32);
{$endif}
end;
PPVkInstanceCreateInfo=^PVkInstanceCreateInfo;
PVkInstanceCreateInfo=^TVkInstanceCreateInfo;
TVkInstanceCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
pNext:PVkVoid;
flags:TVkInstanceCreateFlags;
pApplicationInfo:PVkApplicationInfo;
enabledLayerCount:TVkUInt32;
ppEnabledLayerNames:PPVkChar;
enabledExtensionCount:TVkUInt32;
ppEnabledExtensionNames:PPVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkInstanceCreateFlags;
const aPApplicationInfo:PVkApplicationInfo;
const aEnabledLayerCount:TVkUInt32;
const aPpEnabledLayerNames:PPVkChar;
const aEnabledExtensionCount:TVkUInt32;
const aPpEnabledExtensionNames:PPVkChar);
{$endif}
end;
PPVkQueueFamilyProperties=^PVkQueueFamilyProperties;
PVkQueueFamilyProperties=^TVkQueueFamilyProperties;
TVkQueueFamilyProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
queueFlags:TVkQueueFlags;
queueCount:TVkUInt32;
timestampValidBits:TVkUInt32;
minImageTransferGranularity:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aQueueFlags:TVkQueueFlags;
const aQueueCount:TVkUInt32;
const aTimestampValidBits:TVkUInt32;
const aMinImageTransferGranularity:TVkExtent3D);
{$endif}
end;
PPVkMemoryType=^PVkMemoryType;
PVkMemoryType=^TVkMemoryType;
TVkMemoryType=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
propertyFlags:TVkMemoryPropertyFlags;
heapIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPropertyFlags:TVkMemoryPropertyFlags;
const aHeapIndex:TVkUInt32);
{$endif}
end;
PPVkMemoryAllocateInfo=^PVkMemoryAllocateInfo;
PVkMemoryAllocateInfo=^TVkMemoryAllocateInfo;
TVkMemoryAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
pNext:PVkVoid;
allocationSize:TVkDeviceSize;
memoryTypeIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAllocationSize:TVkDeviceSize;
const aMemoryTypeIndex:TVkUInt32);
{$endif}
end;
PPVkMemoryRequirements=^PVkMemoryRequirements;
PVkMemoryRequirements=^TVkMemoryRequirements;
TVkMemoryRequirements=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
size:TVkDeviceSize;
alignment:TVkDeviceSize;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSize:TVkDeviceSize;
const aAlignment:TVkDeviceSize;
const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
PPVkSparseImageFormatProperties=^PVkSparseImageFormatProperties;
PVkSparseImageFormatProperties=^TVkSparseImageFormatProperties;
TVkSparseImageFormatProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
aspectMask:TVkImageAspectFlags;
imageGranularity:TVkExtent3D;
flags:TVkSparseImageFormatFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectMask:TVkImageAspectFlags;
const aImageGranularity:TVkExtent3D;
const aFlags:TVkSparseImageFormatFlags);
{$endif}
end;
PPVkSparseImageMemoryRequirements=^PVkSparseImageMemoryRequirements;
PVkSparseImageMemoryRequirements=^TVkSparseImageMemoryRequirements;
TVkSparseImageMemoryRequirements=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
formatProperties:TVkSparseImageFormatProperties;
imageMipTailFirstLod:TVkUInt32;
imageMipTailSize:TVkDeviceSize;
imageMipTailOffset:TVkDeviceSize;
imageMipTailStride:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormatProperties:TVkSparseImageFormatProperties;
const aImageMipTailFirstLod:TVkUInt32;
const aImageMipTailSize:TVkDeviceSize;
const aImageMipTailOffset:TVkDeviceSize;
const aImageMipTailStride:TVkDeviceSize);
{$endif}
end;
PPVkMemoryHeap=^PVkMemoryHeap;
PVkMemoryHeap=^TVkMemoryHeap;
TVkMemoryHeap=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
size:TVkDeviceSize;
flags:TVkMemoryHeapFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSize:TVkDeviceSize;
const aFlags:TVkMemoryHeapFlags);
{$endif}
end;
PPVkPhysicalDeviceMemoryProperties=^PVkPhysicalDeviceMemoryProperties;
PVkPhysicalDeviceMemoryProperties=^TVkPhysicalDeviceMemoryProperties;
TVkPhysicalDeviceMemoryProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
memoryTypeCount:TVkUInt32;
memoryTypes:array[0..VK_MAX_MEMORY_TYPES-1] of TVkMemoryType;
memoryHeapCount:TVkUInt32;
memoryHeaps:array[0..VK_MAX_MEMORY_HEAPS-1] of TVkMemoryHeap;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryTypeCount:TVkUInt32;
const aMemoryTypes:array of TVkMemoryType;
const aMemoryHeapCount:TVkUInt32;
const aMemoryHeaps:array of TVkMemoryHeap);
{$endif}
end;
PPVkMappedMemoryRange=^PVkMappedMemoryRange;
PVkMappedMemoryRange=^TVkMappedMemoryRange;
TVkMappedMemoryRange=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
pNext:PVkVoid;
memory:TVkDeviceMemory;
offset:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkFormatProperties=^PVkFormatProperties;
PVkFormatProperties=^TVkFormatProperties;
TVkFormatProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
linearTilingFeatures:TVkFormatFeatureFlags;
optimalTilingFeatures:TVkFormatFeatureFlags;
bufferFeatures:TVkFormatFeatureFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLinearTilingFeatures:TVkFormatFeatureFlags;
const aOptimalTilingFeatures:TVkFormatFeatureFlags;
const aBufferFeatures:TVkFormatFeatureFlags);
{$endif}
end;
PPVkImageFormatProperties=^PVkImageFormatProperties;
PVkImageFormatProperties=^TVkImageFormatProperties;
TVkImageFormatProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
maxExtent:TVkExtent3D;
maxMipLevels:TVkUInt32;
maxArrayLayers:TVkUInt32;
sampleCounts:TVkSampleCountFlags;
maxResourceSize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxExtent:TVkExtent3D;
const aMaxMipLevels:TVkUInt32;
const aMaxArrayLayers:TVkUInt32;
const aSampleCounts:TVkSampleCountFlags;
const aMaxResourceSize:TVkDeviceSize);
{$endif}
end;
PPVkDescriptorBufferInfo=^PVkDescriptorBufferInfo;
PVkDescriptorBufferInfo=^TVkDescriptorBufferInfo;
TVkDescriptorBufferInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
buffer:TVkBuffer;
offset:TVkDeviceSize;
range:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aRange:TVkDeviceSize);
{$endif}
end;
PPVkDescriptorImageInfo=^PVkDescriptorImageInfo;
PVkDescriptorImageInfo=^TVkDescriptorImageInfo;
TVkDescriptorImageInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sampler:TVkSampler;
imageView:TVkImageView;
imageLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampler:TVkSampler;
const aImageView:TVkImageView;
const aImageLayout:TVkImageLayout);
{$endif}
end;
PPVkWriteDescriptorSet=^PVkWriteDescriptorSet;
PVkWriteDescriptorSet=^TVkWriteDescriptorSet;
TVkWriteDescriptorSet=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
pNext:PVkVoid;
dstSet:TVkDescriptorSet;
dstBinding:TVkUInt32;
dstArrayElement:TVkUInt32;
descriptorCount:TVkUInt32;
descriptorType:TVkDescriptorType;
pImageInfo:PVkDescriptorImageInfo;
pBufferInfo:PVkDescriptorBufferInfo;
pTexelBufferView:PVkBufferView;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDstSet:TVkDescriptorSet;
const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aPImageInfo:PVkDescriptorImageInfo;
const aPBufferInfo:PVkDescriptorBufferInfo;
const aPTexelBufferView:PVkBufferView);
{$endif}
end;
PPVkCopyDescriptorSet=^PVkCopyDescriptorSet;
PVkCopyDescriptorSet=^TVkCopyDescriptorSet;
TVkCopyDescriptorSet=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
pNext:PVkVoid;
srcSet:TVkDescriptorSet;
srcBinding:TVkUInt32;
srcArrayElement:TVkUInt32;
dstSet:TVkDescriptorSet;
dstBinding:TVkUInt32;
dstArrayElement:TVkUInt32;
descriptorCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSet:TVkDescriptorSet;
const aSrcBinding:TVkUInt32;
const aSrcArrayElement:TVkUInt32;
const aDstSet:TVkDescriptorSet;
const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32);
{$endif}
end;
PPVkBufferCreateInfo=^PVkBufferCreateInfo;
PVkBufferCreateInfo=^TVkBufferCreateInfo;
TVkBufferCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
pNext:PVkVoid;
flags:TVkBufferCreateFlags;
size:TVkDeviceSize;
usage:TVkBufferUsageFlags;
sharingMode:TVkSharingMode;
queueFamilyIndexCount:TVkUInt32;
pQueueFamilyIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkBufferCreateFlags;
const aSize:TVkDeviceSize;
const aUsage:TVkBufferUsageFlags;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32);
{$endif}
end;
PPVkBufferViewCreateInfo=^PVkBufferViewCreateInfo;
PVkBufferViewCreateInfo=^TVkBufferViewCreateInfo;
TVkBufferViewCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
pNext:PVkVoid;
flags:TVkBufferViewCreateFlags;
buffer:TVkBuffer;
format:TVkFormat;
offset:TVkDeviceSize;
range:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkBufferViewCreateFlags;
const aBuffer:TVkBuffer;
const aFormat:TVkFormat;
const aOffset:TVkDeviceSize;
const aRange:TVkDeviceSize);
{$endif}
end;
PPVkImageSubresource=^PVkImageSubresource;
PVkImageSubresource=^TVkImageSubresource;
TVkImageSubresource=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
aspectMask:TVkImageAspectFlags;
mipLevel:TVkUInt32;
arrayLayer:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectMask:TVkImageAspectFlags;
const aMipLevel:TVkUInt32;
const aArrayLayer:TVkUInt32);
{$endif}
end;
PPVkImageSubresourceLayers=^PVkImageSubresourceLayers;
PVkImageSubresourceLayers=^TVkImageSubresourceLayers;
TVkImageSubresourceLayers=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
aspectMask:TVkImageAspectFlags;
mipLevel:TVkUInt32;
baseArrayLayer:TVkUInt32;
layerCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectMask:TVkImageAspectFlags;
const aMipLevel:TVkUInt32;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
{$endif}
end;
PPVkImageSubresourceRange=^PVkImageSubresourceRange;
PVkImageSubresourceRange=^TVkImageSubresourceRange;
TVkImageSubresourceRange=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
aspectMask:TVkImageAspectFlags;
baseMipLevel:TVkUInt32;
levelCount:TVkUInt32;
baseArrayLayer:TVkUInt32;
layerCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectMask:TVkImageAspectFlags;
const aBaseMipLevel:TVkUInt32;
const aLevelCount:TVkUInt32;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
{$endif}
end;
PPVkMemoryBarrier=^PVkMemoryBarrier;
PVkMemoryBarrier=^TVkMemoryBarrier;
TVkMemoryBarrier=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
pNext:PVkVoid;
srcAccessMask:TVkAccessFlags;
dstAccessMask:TVkAccessFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags);
{$endif}
end;
PPVkBufferMemoryBarrier=^PVkBufferMemoryBarrier;
PVkBufferMemoryBarrier=^TVkBufferMemoryBarrier;
TVkBufferMemoryBarrier=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
pNext:PVkVoid;
srcAccessMask:TVkAccessFlags;
dstAccessMask:TVkAccessFlags;
srcQueueFamilyIndex:TVkUInt32;
dstQueueFamilyIndex:TVkUInt32;
buffer:TVkBuffer;
offset:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkImageMemoryBarrier=^PVkImageMemoryBarrier;
PVkImageMemoryBarrier=^TVkImageMemoryBarrier;
TVkImageMemoryBarrier=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
pNext:PVkVoid;
srcAccessMask:TVkAccessFlags;
dstAccessMask:TVkAccessFlags;
oldLayout:TVkImageLayout;
newLayout:TVkImageLayout;
srcQueueFamilyIndex:TVkUInt32;
dstQueueFamilyIndex:TVkUInt32;
image:TVkImage;
subresourceRange:TVkImageSubresourceRange;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aOldLayout:TVkImageLayout;
const aNewLayout:TVkImageLayout;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aImage:TVkImage;
const aSubresourceRange:TVkImageSubresourceRange);
{$endif}
end;
PPVkImageCreateInfo=^PVkImageCreateInfo;
PVkImageCreateInfo=^TVkImageCreateInfo;
TVkImageCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
pNext:PVkVoid;
flags:TVkImageCreateFlags;
imageType:TVkImageType;
format:TVkFormat;
extent:TVkExtent3D;
mipLevels:TVkUInt32;
arrayLayers:TVkUInt32;
samples:TVkSampleCountFlagBits;
tiling:TVkImageTiling;
usage:TVkImageUsageFlags;
sharingMode:TVkSharingMode;
queueFamilyIndexCount:TVkUInt32;
pQueueFamilyIndices:PVkUInt32;
initialLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkImageCreateFlags;
const aImageType:TVkImageType;
const aFormat:TVkFormat;
const aExtent:TVkExtent3D;
const aMipLevels:TVkUInt32;
const aArrayLayers:TVkUInt32;
const aSamples:TVkSampleCountFlagBits;
const aTiling:TVkImageTiling;
const aUsage:TVkImageUsageFlags;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32;
const aInitialLayout:TVkImageLayout);
{$endif}
end;
PPVkSubresourceLayout=^PVkSubresourceLayout;
PVkSubresourceLayout=^TVkSubresourceLayout;
TVkSubresourceLayout=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
offset:TVkDeviceSize;
size:TVkDeviceSize;
rowPitch:TVkDeviceSize;
arrayPitch:TVkDeviceSize;
depthPitch:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aRowPitch:TVkDeviceSize;
const aArrayPitch:TVkDeviceSize;
const aDepthPitch:TVkDeviceSize);
{$endif}
end;
PPVkImageViewCreateInfo=^PVkImageViewCreateInfo;
PVkImageViewCreateInfo=^TVkImageViewCreateInfo;
TVkImageViewCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
pNext:PVkVoid;
flags:TVkImageViewCreateFlags;
image:TVkImage;
viewType:TVkImageViewType;
format:TVkFormat;
components:TVkComponentMapping;
subresourceRange:TVkImageSubresourceRange;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkImageViewCreateFlags;
const aImage:TVkImage;
const aViewType:TVkImageViewType;
const aFormat:TVkFormat;
const aComponents:TVkComponentMapping;
const aSubresourceRange:TVkImageSubresourceRange);
{$endif}
end;
PPVkBufferCopy=^PVkBufferCopy;
PVkBufferCopy=^TVkBufferCopy;
TVkBufferCopy=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
srcOffset:TVkDeviceSize;
dstOffset:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcOffset:TVkDeviceSize;
const aDstOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkSparseMemoryBind=^PVkSparseMemoryBind;
PVkSparseMemoryBind=^TVkSparseMemoryBind;
TVkSparseMemoryBind=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
resourceOffset:TVkDeviceSize;
size:TVkDeviceSize;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
flags:TVkSparseMemoryBindFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aResourceOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aFlags:TVkSparseMemoryBindFlags);
{$endif}
end;
PPVkSparseImageMemoryBind=^PVkSparseImageMemoryBind;
PVkSparseImageMemoryBind=^TVkSparseImageMemoryBind;
TVkSparseImageMemoryBind=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
subresource:TVkImageSubresource;
offset:TVkOffset3D;
extent:TVkExtent3D;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
flags:TVkSparseMemoryBindFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubresource:TVkImageSubresource;
const aOffset:TVkOffset3D;
const aExtent:TVkExtent3D;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aFlags:TVkSparseMemoryBindFlags);
{$endif}
end;
PPVkSparseBufferMemoryBindInfo=^PVkSparseBufferMemoryBindInfo;
PVkSparseBufferMemoryBindInfo=^TVkSparseBufferMemoryBindInfo;
TVkSparseBufferMemoryBindInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
buffer:TVkBuffer;
bindCount:TVkUInt32;
pBinds:PVkSparseMemoryBind;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseMemoryBind);
{$endif}
end;
PPVkSparseImageOpaqueMemoryBindInfo=^PVkSparseImageOpaqueMemoryBindInfo;
PVkSparseImageOpaqueMemoryBindInfo=^TVkSparseImageOpaqueMemoryBindInfo;
TVkSparseImageOpaqueMemoryBindInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
image:TVkImage;
bindCount:TVkUInt32;
pBinds:PVkSparseMemoryBind;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseMemoryBind);
{$endif}
end;
PPVkSparseImageMemoryBindInfo=^PVkSparseImageMemoryBindInfo;
PVkSparseImageMemoryBindInfo=^TVkSparseImageMemoryBindInfo;
TVkSparseImageMemoryBindInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
image:TVkImage;
bindCount:TVkUInt32;
pBinds:PVkSparseImageMemoryBind;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseImageMemoryBind);
{$endif}
end;
PPVkBindSparseInfo=^PVkBindSparseInfo;
PVkBindSparseInfo=^TVkBindSparseInfo;
TVkBindSparseInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
pNext:PVkVoid;
waitSemaphoreCount:TVkUInt32;
pWaitSemaphores:PVkSemaphore;
bufferBindCount:TVkUInt32;
pBufferBinds:PVkSparseBufferMemoryBindInfo;
imageOpaqueBindCount:TVkUInt32;
pImageOpaqueBinds:PVkSparseImageOpaqueMemoryBindInfo;
imageBindCount:TVkUInt32;
pImageBinds:PVkSparseImageMemoryBindInfo;
signalSemaphoreCount:TVkUInt32;
pSignalSemaphores:PVkSemaphore;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aBufferBindCount:TVkUInt32;
const aPBufferBinds:PVkSparseBufferMemoryBindInfo;
const aImageOpaqueBindCount:TVkUInt32;
const aPImageOpaqueBinds:PVkSparseImageOpaqueMemoryBindInfo;
const aImageBindCount:TVkUInt32;
const aPImageBinds:PVkSparseImageMemoryBindInfo;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphores:PVkSemaphore);
{$endif}
end;
PPVkImageCopy=^PVkImageCopy;
PVkImageCopy=^TVkImageCopy;
TVkImageCopy=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
srcSubresource:TVkImageSubresourceLayers;
srcOffset:TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffset:TVkOffset3D;
extent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
{$endif}
end;
PPVkImageBlit=^PVkImageBlit;
PVkImageBlit=^TVkImageBlit;
TVkImageBlit=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
srcSubresource:TVkImageSubresourceLayers;
srcOffsets:array[0..1] of TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffsets:array[0..1] of TVkOffset3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffsets:array of TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffsets:array of TVkOffset3D);
{$endif}
end;
PPVkBufferImageCopy=^PVkBufferImageCopy;
PVkBufferImageCopy=^TVkBufferImageCopy;
TVkBufferImageCopy=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
bufferOffset:TVkDeviceSize;
bufferRowLength:TVkUInt32;
bufferImageHeight:TVkUInt32;
imageSubresource:TVkImageSubresourceLayers;
imageOffset:TVkOffset3D;
imageExtent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferOffset:TVkDeviceSize;
const aBufferRowLength:TVkUInt32;
const aBufferImageHeight:TVkUInt32;
const aImageSubresource:TVkImageSubresourceLayers;
const aImageOffset:TVkOffset3D;
const aImageExtent:TVkExtent3D);
{$endif}
end;
PPVkImageResolve=^PVkImageResolve;
PVkImageResolve=^TVkImageResolve;
TVkImageResolve=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
srcSubresource:TVkImageSubresourceLayers;
srcOffset:TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffset:TVkOffset3D;
extent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
{$endif}
end;
PPVkShaderModuleCreateInfo=^PVkShaderModuleCreateInfo;
PVkShaderModuleCreateInfo=^TVkShaderModuleCreateInfo;
TVkShaderModuleCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
pNext:PVkVoid;
flags:TVkShaderModuleCreateFlags;
codeSize:TVkSize;
pCode:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkShaderModuleCreateFlags;
const aCodeSize:TVkSize;
const aPCode:PVkUInt32);
{$endif}
end;
PPVkDescriptorSetLayoutBinding=^PVkDescriptorSetLayoutBinding;
PVkDescriptorSetLayoutBinding=^TVkDescriptorSetLayoutBinding;
TVkDescriptorSetLayoutBinding=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
binding:TVkUInt32;
descriptorType:TVkDescriptorType;
descriptorCount:TVkUInt32;
stageFlags:TVkShaderStageFlags;
pImmutableSamplers:PVkSampler;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBinding:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aDescriptorCount:TVkUInt32;
const aStageFlags:TVkShaderStageFlags;
const aPImmutableSamplers:PVkSampler);
{$endif}
end;
PPVkDescriptorSetLayoutCreateInfo=^PVkDescriptorSetLayoutCreateInfo;
PVkDescriptorSetLayoutCreateInfo=^TVkDescriptorSetLayoutCreateInfo;
TVkDescriptorSetLayoutCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
pNext:PVkVoid;
flags:TVkDescriptorSetLayoutCreateFlags;
bindingCount:TVkUInt32;
pBindings:PVkDescriptorSetLayoutBinding;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDescriptorSetLayoutCreateFlags;
const aBindingCount:TVkUInt32;
const aPBindings:PVkDescriptorSetLayoutBinding);
{$endif}
end;
PPVkDescriptorPoolSize=^PVkDescriptorPoolSize;
PVkDescriptorPoolSize=^TVkDescriptorPoolSize;
TVkDescriptorPoolSize=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
type_:TVkDescriptorType;
descriptorCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkDescriptorType;
const aDescriptorCount:TVkUInt32);
{$endif}
end;
PPVkDescriptorPoolCreateInfo=^PVkDescriptorPoolCreateInfo;
PVkDescriptorPoolCreateInfo=^TVkDescriptorPoolCreateInfo;
TVkDescriptorPoolCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
pNext:PVkVoid;
flags:TVkDescriptorPoolCreateFlags;
maxSets:TVkUInt32;
poolSizeCount:TVkUInt32;
pPoolSizes:PVkDescriptorPoolSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDescriptorPoolCreateFlags;
const aMaxSets:TVkUInt32;
const aPoolSizeCount:TVkUInt32;
const aPPoolSizes:PVkDescriptorPoolSize);
{$endif}
end;
PPVkDescriptorSetAllocateInfo=^PVkDescriptorSetAllocateInfo;
PVkDescriptorSetAllocateInfo=^TVkDescriptorSetAllocateInfo;
TVkDescriptorSetAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
pNext:PVkVoid;
descriptorPool:TVkDescriptorPool;
descriptorSetCount:TVkUInt32;
pSetLayouts:PVkDescriptorSetLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDescriptorPool:TVkDescriptorPool;
const aDescriptorSetCount:TVkUInt32;
const aPSetLayouts:PVkDescriptorSetLayout);
{$endif}
end;
PPVkSpecializationMapEntry=^PVkSpecializationMapEntry;
PVkSpecializationMapEntry=^TVkSpecializationMapEntry;
TVkSpecializationMapEntry=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
constantID:TVkUInt32;
offset:TVkUInt32;
size:TVkSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConstantID:TVkUInt32;
const aOffset:TVkUInt32;
const aSize:TVkSize);
{$endif}
end;
PPVkSpecializationInfo=^PVkSpecializationInfo;
PVkSpecializationInfo=^TVkSpecializationInfo;
TVkSpecializationInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
mapEntryCount:TVkUInt32;
pMapEntries:PVkSpecializationMapEntry;
dataSize:TVkSize;
pData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMapEntryCount:TVkUInt32;
const aPMapEntries:PVkSpecializationMapEntry;
const aDataSize:TVkSize;
const aPData:PVkVoid);
{$endif}
end;
PPVkPipelineShaderStageCreateInfo=^PVkPipelineShaderStageCreateInfo;
PVkPipelineShaderStageCreateInfo=^TVkPipelineShaderStageCreateInfo;
TVkPipelineShaderStageCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineShaderStageCreateFlags;
stage:TVkShaderStageFlagBits;
module:TVkShaderModule;
pName:PVkChar;
pSpecializationInfo:PVkSpecializationInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineShaderStageCreateFlags;
const aStage:TVkShaderStageFlagBits;
const aModule:TVkShaderModule;
const aPName:PVkChar;
const aPSpecializationInfo:PVkSpecializationInfo);
{$endif}
end;
PPVkComputePipelineCreateInfo=^PVkComputePipelineCreateInfo;
PVkComputePipelineCreateInfo=^TVkComputePipelineCreateInfo;
TVkComputePipelineCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineCreateFlags;
stage:TVkPipelineShaderStageCreateInfo;
layout:TVkPipelineLayout;
basePipelineHandle:TVkPipeline;
basePipelineIndex:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCreateFlags;
const aStage:TVkPipelineShaderStageCreateInfo;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
{$endif}
end;
PPVkVertexInputBindingDescription=^PVkVertexInputBindingDescription;
PVkVertexInputBindingDescription=^TVkVertexInputBindingDescription;
TVkVertexInputBindingDescription=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
binding:TVkUInt32;
stride:TVkUInt32;
inputRate:TVkVertexInputRate;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBinding:TVkUInt32;
const aStride:TVkUInt32;
const aInputRate:TVkVertexInputRate);
{$endif}
end;
PPVkVertexInputAttributeDescription=^PVkVertexInputAttributeDescription;
PVkVertexInputAttributeDescription=^TVkVertexInputAttributeDescription;
TVkVertexInputAttributeDescription=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
location:TVkUInt32;
binding:TVkUInt32;
format:TVkFormat;
offset:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLocation:TVkUInt32;
const aBinding:TVkUInt32;
const aFormat:TVkFormat;
const aOffset:TVkUInt32);
{$endif}
end;
PPVkPipelineVertexInputStateCreateInfo=^PVkPipelineVertexInputStateCreateInfo;
PVkPipelineVertexInputStateCreateInfo=^TVkPipelineVertexInputStateCreateInfo;
TVkPipelineVertexInputStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineVertexInputStateCreateFlags;
vertexBindingDescriptionCount:TVkUInt32;
pVertexBindingDescriptions:PVkVertexInputBindingDescription;
vertexAttributeDescriptionCount:TVkUInt32;
pVertexAttributeDescriptions:PVkVertexInputAttributeDescription;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineVertexInputStateCreateFlags;
const aVertexBindingDescriptionCount:TVkUInt32;
const aPVertexBindingDescriptions:PVkVertexInputBindingDescription;
const aVertexAttributeDescriptionCount:TVkUInt32;
const aPVertexAttributeDescriptions:PVkVertexInputAttributeDescription);
{$endif}
end;
PPVkPipelineInputAssemblyStateCreateInfo=^PVkPipelineInputAssemblyStateCreateInfo;
PVkPipelineInputAssemblyStateCreateInfo=^TVkPipelineInputAssemblyStateCreateInfo;
TVkPipelineInputAssemblyStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineInputAssemblyStateCreateFlags;
topology:TVkPrimitiveTopology;
primitiveRestartEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineInputAssemblyStateCreateFlags;
const aTopology:TVkPrimitiveTopology;
const aPrimitiveRestartEnable:TVkBool32);
{$endif}
end;
PPVkPipelineTessellationStateCreateInfo=^PVkPipelineTessellationStateCreateInfo;
PVkPipelineTessellationStateCreateInfo=^TVkPipelineTessellationStateCreateInfo;
TVkPipelineTessellationStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineTessellationStateCreateFlags;
patchControlPoints:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineTessellationStateCreateFlags;
const aPatchControlPoints:TVkUInt32);
{$endif}
end;
PPVkPipelineViewportStateCreateInfo=^PVkPipelineViewportStateCreateInfo;
PVkPipelineViewportStateCreateInfo=^TVkPipelineViewportStateCreateInfo;
TVkPipelineViewportStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineViewportStateCreateFlags;
viewportCount:TVkUInt32;
pViewports:PVkViewport;
scissorCount:TVkUInt32;
pScissors:PVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineViewportStateCreateFlags;
const aViewportCount:TVkUInt32;
const aPViewports:PVkViewport;
const aScissorCount:TVkUInt32;
const aPScissors:PVkRect2D);
{$endif}
end;
PPVkPipelineRasterizationStateCreateInfo=^PVkPipelineRasterizationStateCreateInfo;
PVkPipelineRasterizationStateCreateInfo=^TVkPipelineRasterizationStateCreateInfo;
TVkPipelineRasterizationStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineRasterizationStateCreateFlags;
depthClampEnable:TVkBool32;
rasterizerDiscardEnable:TVkBool32;
polygonMode:TVkPolygonMode;
cullMode:TVkCullModeFlags;
frontFace:TVkFrontFace;
depthBiasEnable:TVkBool32;
depthBiasConstantFactor:TVkFloat;
depthBiasClamp:TVkFloat;
depthBiasSlopeFactor:TVkFloat;
lineWidth:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineRasterizationStateCreateFlags;
const aDepthClampEnable:TVkBool32;
const aRasterizerDiscardEnable:TVkBool32;
const aPolygonMode:TVkPolygonMode;
const aCullMode:TVkCullModeFlags;
const aFrontFace:TVkFrontFace;
const aDepthBiasEnable:TVkBool32;
const aDepthBiasConstantFactor:TVkFloat;
const aDepthBiasClamp:TVkFloat;
const aDepthBiasSlopeFactor:TVkFloat;
const aLineWidth:TVkFloat);
{$endif}
end;
PPVkPipelineMultisampleStateCreateInfo=^PVkPipelineMultisampleStateCreateInfo;
PVkPipelineMultisampleStateCreateInfo=^TVkPipelineMultisampleStateCreateInfo;
TVkPipelineMultisampleStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineMultisampleStateCreateFlags;
rasterizationSamples:TVkSampleCountFlagBits;
sampleShadingEnable:TVkBool32;
minSampleShading:TVkFloat;
pSampleMask:PVkSampleMask;
alphaToCoverageEnable:TVkBool32;
alphaToOneEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineMultisampleStateCreateFlags;
const aRasterizationSamples:TVkSampleCountFlagBits;
const aSampleShadingEnable:TVkBool32;
const aMinSampleShading:TVkFloat;
const aPSampleMask:PVkSampleMask;
const aAlphaToCoverageEnable:TVkBool32;
const aAlphaToOneEnable:TVkBool32);
{$endif}
end;
PPVkPipelineColorBlendAttachmentState=^PVkPipelineColorBlendAttachmentState;
PVkPipelineColorBlendAttachmentState=^TVkPipelineColorBlendAttachmentState;
TVkPipelineColorBlendAttachmentState=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
blendEnable:TVkBool32;
srcColorBlendFactor:TVkBlendFactor;
dstColorBlendFactor:TVkBlendFactor;
colorBlendOp:TVkBlendOp;
srcAlphaBlendFactor:TVkBlendFactor;
dstAlphaBlendFactor:TVkBlendFactor;
alphaBlendOp:TVkBlendOp;
colorWriteMask:TVkColorComponentFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBlendEnable:TVkBool32;
const aSrcColorBlendFactor:TVkBlendFactor;
const aDstColorBlendFactor:TVkBlendFactor;
const aColorBlendOp:TVkBlendOp;
const aSrcAlphaBlendFactor:TVkBlendFactor;
const aDstAlphaBlendFactor:TVkBlendFactor;
const aAlphaBlendOp:TVkBlendOp;
const aColorWriteMask:TVkColorComponentFlags);
{$endif}
end;
PPVkPipelineColorBlendStateCreateInfo=^PVkPipelineColorBlendStateCreateInfo;
PVkPipelineColorBlendStateCreateInfo=^TVkPipelineColorBlendStateCreateInfo;
TVkPipelineColorBlendStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineColorBlendStateCreateFlags;
logicOpEnable:TVkBool32;
logicOp:TVkLogicOp;
attachmentCount:TVkUInt32;
pAttachments:PVkPipelineColorBlendAttachmentState;
blendConstants:array[0..3] of TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineColorBlendStateCreateFlags;
const aLogicOpEnable:TVkBool32;
const aLogicOp:TVkLogicOp;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkPipelineColorBlendAttachmentState;
const aBlendConstants:array of TVkFloat);
{$endif}
end;
PPVkPipelineDynamicStateCreateInfo=^PVkPipelineDynamicStateCreateInfo;
PVkPipelineDynamicStateCreateInfo=^TVkPipelineDynamicStateCreateInfo;
TVkPipelineDynamicStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineDynamicStateCreateFlags;
dynamicStateCount:TVkUInt32;
pDynamicStates:PVkDynamicState;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineDynamicStateCreateFlags;
const aDynamicStateCount:TVkUInt32;
const aPDynamicStates:PVkDynamicState);
{$endif}
end;
PPVkStencilOpState=^PVkStencilOpState;
PVkStencilOpState=^TVkStencilOpState;
TVkStencilOpState=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
failOp:TVkStencilOp;
passOp:TVkStencilOp;
depthFailOp:TVkStencilOp;
compareOp:TVkCompareOp;
compareMask:TVkUInt32;
writeMask:TVkUInt32;
reference:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFailOp:TVkStencilOp;
const aPassOp:TVkStencilOp;
const aDepthFailOp:TVkStencilOp;
const aCompareOp:TVkCompareOp;
const aCompareMask:TVkUInt32;
const aWriteMask:TVkUInt32;
const aReference:TVkUInt32);
{$endif}
end;
PPVkPipelineDepthStencilStateCreateInfo=^PVkPipelineDepthStencilStateCreateInfo;
PVkPipelineDepthStencilStateCreateInfo=^TVkPipelineDepthStencilStateCreateInfo;
TVkPipelineDepthStencilStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineDepthStencilStateCreateFlags;
depthTestEnable:TVkBool32;
depthWriteEnable:TVkBool32;
depthCompareOp:TVkCompareOp;
depthBoundsTestEnable:TVkBool32;
stencilTestEnable:TVkBool32;
front:TVkStencilOpState;
back:TVkStencilOpState;
minDepthBounds:TVkFloat;
maxDepthBounds:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineDepthStencilStateCreateFlags;
const aDepthTestEnable:TVkBool32;
const aDepthWriteEnable:TVkBool32;
const aDepthCompareOp:TVkCompareOp;
const aDepthBoundsTestEnable:TVkBool32;
const aStencilTestEnable:TVkBool32;
const aFront:TVkStencilOpState;
const aBack:TVkStencilOpState;
const aMinDepthBounds:TVkFloat;
const aMaxDepthBounds:TVkFloat);
{$endif}
end;
PPVkGraphicsPipelineCreateInfo=^PVkGraphicsPipelineCreateInfo;
PVkGraphicsPipelineCreateInfo=^TVkGraphicsPipelineCreateInfo;
TVkGraphicsPipelineCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineCreateFlags;
stageCount:TVkUInt32;
pStages:PVkPipelineShaderStageCreateInfo;
pVertexInputState:PVkPipelineVertexInputStateCreateInfo;
pInputAssemblyState:PVkPipelineInputAssemblyStateCreateInfo;
pTessellationState:PVkPipelineTessellationStateCreateInfo;
pViewportState:PVkPipelineViewportStateCreateInfo;
pRasterizationState:PVkPipelineRasterizationStateCreateInfo;
pMultisampleState:PVkPipelineMultisampleStateCreateInfo;
pDepthStencilState:PVkPipelineDepthStencilStateCreateInfo;
pColorBlendState:PVkPipelineColorBlendStateCreateInfo;
pDynamicState:PVkPipelineDynamicStateCreateInfo;
layout:TVkPipelineLayout;
renderPass:TVkRenderPass;
subpass:TVkUInt32;
basePipelineHandle:TVkPipeline;
basePipelineIndex:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aPVertexInputState:PVkPipelineVertexInputStateCreateInfo;
const aPInputAssemblyState:PVkPipelineInputAssemblyStateCreateInfo;
const aPTessellationState:PVkPipelineTessellationStateCreateInfo;
const aPViewportState:PVkPipelineViewportStateCreateInfo;
const aPRasterizationState:PVkPipelineRasterizationStateCreateInfo;
const aPMultisampleState:PVkPipelineMultisampleStateCreateInfo;
const aPDepthStencilState:PVkPipelineDepthStencilStateCreateInfo;
const aPColorBlendState:PVkPipelineColorBlendStateCreateInfo;
const aPDynamicState:PVkPipelineDynamicStateCreateInfo;
const aLayout:TVkPipelineLayout;
const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
{$endif}
end;
PPVkPipelineCacheCreateInfo=^PVkPipelineCacheCreateInfo;
PVkPipelineCacheCreateInfo=^TVkPipelineCacheCreateInfo;
TVkPipelineCacheCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineCacheCreateFlags;
initialDataSize:TVkSize;
pInitialData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCacheCreateFlags;
const aInitialDataSize:TVkSize;
const aPInitialData:PVkVoid);
{$endif}
end;
PPVkPipelineCacheHeaderVersionOne=^PVkPipelineCacheHeaderVersionOne;
PVkPipelineCacheHeaderVersionOne=^TVkPipelineCacheHeaderVersionOne;
TVkPipelineCacheHeaderVersionOne=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
headerSize:TVkUInt32;
headerVersion:TVkPipelineCacheHeaderVersion;
vendorID:TVkUInt32;
deviceID:TVkUInt32;
pipelineCacheUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHeaderSize:TVkUInt32;
const aHeaderVersion:TVkPipelineCacheHeaderVersion;
const aVendorID:TVkUInt32;
const aDeviceID:TVkUInt32;
const aPipelineCacheUUID:array of TVkUInt8);
{$endif}
end;
PPVkPushConstantRange=^PVkPushConstantRange;
PVkPushConstantRange=^TVkPushConstantRange;
TVkPushConstantRange=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
stageFlags:TVkShaderStageFlags;
offset:TVkUInt32;
size:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStageFlags:TVkShaderStageFlags;
const aOffset:TVkUInt32;
const aSize:TVkUInt32);
{$endif}
end;
PPVkPipelineLayoutCreateInfo=^PVkPipelineLayoutCreateInfo;
PVkPipelineLayoutCreateInfo=^TVkPipelineLayoutCreateInfo;
TVkPipelineLayoutCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
pNext:PVkVoid;
flags:TVkPipelineLayoutCreateFlags;
setLayoutCount:TVkUInt32;
pSetLayouts:PVkDescriptorSetLayout;
pushConstantRangeCount:TVkUInt32;
pPushConstantRanges:PVkPushConstantRange;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineLayoutCreateFlags;
const aSetLayoutCount:TVkUInt32;
const aPSetLayouts:PVkDescriptorSetLayout;
const aPushConstantRangeCount:TVkUInt32;
const aPPushConstantRanges:PVkPushConstantRange);
{$endif}
end;
PPVkSamplerCreateInfo=^PVkSamplerCreateInfo;
PVkSamplerCreateInfo=^TVkSamplerCreateInfo;
TVkSamplerCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
pNext:PVkVoid;
flags:TVkSamplerCreateFlags;
magFilter:TVkFilter;
minFilter:TVkFilter;
mipmapMode:TVkSamplerMipmapMode;
addressModeU:TVkSamplerAddressMode;
addressModeV:TVkSamplerAddressMode;
addressModeW:TVkSamplerAddressMode;
mipLodBias:TVkFloat;
anisotropyEnable:TVkBool32;
maxAnisotropy:TVkFloat;
compareEnable:TVkBool32;
compareOp:TVkCompareOp;
minLod:TVkFloat;
maxLod:TVkFloat;
borderColor:TVkBorderColor;
unnormalizedCoordinates:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSamplerCreateFlags;
const aMagFilter:TVkFilter;
const aMinFilter:TVkFilter;
const aMipmapMode:TVkSamplerMipmapMode;
const aAddressModeU:TVkSamplerAddressMode;
const aAddressModeV:TVkSamplerAddressMode;
const aAddressModeW:TVkSamplerAddressMode;
const aMipLodBias:TVkFloat;
const aAnisotropyEnable:TVkBool32;
const aMaxAnisotropy:TVkFloat;
const aCompareEnable:TVkBool32;
const aCompareOp:TVkCompareOp;
const aMinLod:TVkFloat;
const aMaxLod:TVkFloat;
const aBorderColor:TVkBorderColor;
const aUnnormalizedCoordinates:TVkBool32);
{$endif}
end;
PPVkCommandPoolCreateInfo=^PVkCommandPoolCreateInfo;
PVkCommandPoolCreateInfo=^TVkCommandPoolCreateInfo;
TVkCommandPoolCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
pNext:PVkVoid;
flags:TVkCommandPoolCreateFlags;
queueFamilyIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkCommandPoolCreateFlags;
const aQueueFamilyIndex:TVkUInt32);
{$endif}
end;
PPVkCommandBufferAllocateInfo=^PVkCommandBufferAllocateInfo;
PVkCommandBufferAllocateInfo=^TVkCommandBufferAllocateInfo;
TVkCommandBufferAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
pNext:PVkVoid;
commandPool:TVkCommandPool;
level:TVkCommandBufferLevel;
commandBufferCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCommandPool:TVkCommandPool;
const aLevel:TVkCommandBufferLevel;
const aCommandBufferCount:TVkUInt32);
{$endif}
end;
PPVkCommandBufferInheritanceInfo=^PVkCommandBufferInheritanceInfo;
PVkCommandBufferInheritanceInfo=^TVkCommandBufferInheritanceInfo;
TVkCommandBufferInheritanceInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
pNext:PVkVoid;
renderPass:TVkRenderPass;
subpass:TVkUInt32;
framebuffer:TVkFramebuffer;
occlusionQueryEnable:TVkBool32;
queryFlags:TVkQueryControlFlags;
pipelineStatistics:TVkQueryPipelineStatisticFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32;
const aFramebuffer:TVkFramebuffer;
const aOcclusionQueryEnable:TVkBool32;
const aQueryFlags:TVkQueryControlFlags;
const aPipelineStatistics:TVkQueryPipelineStatisticFlags);
{$endif}
end;
PPVkCommandBufferBeginInfo=^PVkCommandBufferBeginInfo;
PVkCommandBufferBeginInfo=^TVkCommandBufferBeginInfo;
TVkCommandBufferBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
pNext:PVkVoid;
flags:TVkCommandBufferUsageFlags;
pInheritanceInfo:PVkCommandBufferInheritanceInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkCommandBufferUsageFlags;
const aPInheritanceInfo:PVkCommandBufferInheritanceInfo);
{$endif}
end;
PPVkClearColorValue=^PVkClearColorValue;
PVkClearColorValue=^TVkClearColorValue;
TVkClearColorValue=record
case longint of
0:(
float32:array[0..3] of TVkFloat;
);
1:(
int32:array[0..3] of TVkInt32;
);
2:(
uint32:array[0..3] of TVkUInt32;
);
end;
PPVkClearDepthStencilValue=^PVkClearDepthStencilValue;
PVkClearDepthStencilValue=^TVkClearDepthStencilValue;
TVkClearDepthStencilValue=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
depth:TVkFloat;
stencil:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDepth:TVkFloat;
const aStencil:TVkUInt32);
{$endif}
end;
PPVkClearValue=^PVkClearValue;
PVkClearValue=^TVkClearValue;
TVkClearValue=record
case longint of
0:(
color:TVkClearColorValue;
);
1:(
depthStencil:TVkClearDepthStencilValue;
);
end;
PPVkRenderPassBeginInfo=^PVkRenderPassBeginInfo;
PVkRenderPassBeginInfo=^TVkRenderPassBeginInfo;
TVkRenderPassBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
pNext:PVkVoid;
renderPass:TVkRenderPass;
framebuffer:TVkFramebuffer;
renderArea:TVkRect2D;
clearValueCount:TVkUInt32;
pClearValues:PVkClearValue;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRenderPass:TVkRenderPass;
const aFramebuffer:TVkFramebuffer;
const aRenderArea:TVkRect2D;
const aClearValueCount:TVkUInt32;
const aPClearValues:PVkClearValue);
{$endif}
end;
PPVkClearAttachment=^PVkClearAttachment;
PVkClearAttachment=^TVkClearAttachment;
TVkClearAttachment=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
aspectMask:TVkImageAspectFlags;
colorAttachment:TVkUInt32;
clearValue:TVkClearValue;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectMask:TVkImageAspectFlags;
const aColorAttachment:TVkUInt32;
const aClearValue:TVkClearValue);
{$endif}
end;
PPVkAttachmentDescription=^PVkAttachmentDescription;
PVkAttachmentDescription=^TVkAttachmentDescription;
TVkAttachmentDescription=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
flags:TVkAttachmentDescriptionFlags;
format:TVkFormat;
samples:TVkSampleCountFlagBits;
loadOp:TVkAttachmentLoadOp;
storeOp:TVkAttachmentStoreOp;
stencilLoadOp:TVkAttachmentLoadOp;
stencilStoreOp:TVkAttachmentStoreOp;
initialLayout:TVkImageLayout;
finalLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkAttachmentDescriptionFlags;
const aFormat:TVkFormat;
const aSamples:TVkSampleCountFlagBits;
const aLoadOp:TVkAttachmentLoadOp;
const aStoreOp:TVkAttachmentStoreOp;
const aStencilLoadOp:TVkAttachmentLoadOp;
const aStencilStoreOp:TVkAttachmentStoreOp;
const aInitialLayout:TVkImageLayout;
const aFinalLayout:TVkImageLayout);
{$endif}
end;
PPVkAttachmentReference=^PVkAttachmentReference;
PVkAttachmentReference=^TVkAttachmentReference;
TVkAttachmentReference=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
attachment:TVkUInt32;
layout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachment:TVkUInt32;
const aLayout:TVkImageLayout);
{$endif}
end;
PPVkSubpassDescription=^PVkSubpassDescription;
PVkSubpassDescription=^TVkSubpassDescription;
TVkSubpassDescription=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
flags:TVkSubpassDescriptionFlags;
pipelineBindPoint:TVkPipelineBindPoint;
inputAttachmentCount:TVkUInt32;
pInputAttachments:PVkAttachmentReference;
colorAttachmentCount:TVkUInt32;
pColorAttachments:PVkAttachmentReference;
pResolveAttachments:PVkAttachmentReference;
pDepthStencilAttachment:PVkAttachmentReference;
preserveAttachmentCount:TVkUInt32;
pPreserveAttachments:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSubpassDescriptionFlags;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aInputAttachmentCount:TVkUInt32;
const aPInputAttachments:PVkAttachmentReference;
const aColorAttachmentCount:TVkUInt32;
const aPColorAttachments:PVkAttachmentReference;
const aPResolveAttachments:PVkAttachmentReference;
const aPDepthStencilAttachment:PVkAttachmentReference;
const aPreserveAttachmentCount:TVkUInt32;
const aPPreserveAttachments:PVkUInt32);
{$endif}
end;
PPVkSubpassDependency=^PVkSubpassDependency;
PVkSubpassDependency=^TVkSubpassDependency;
TVkSubpassDependency=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
srcSubpass:TVkUInt32;
dstSubpass:TVkUInt32;
srcStageMask:TVkPipelineStageFlags;
dstStageMask:TVkPipelineStageFlags;
srcAccessMask:TVkAccessFlags;
dstAccessMask:TVkAccessFlags;
dependencyFlags:TVkDependencyFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubpass:TVkUInt32;
const aDstSubpass:TVkUInt32;
const aSrcStageMask:TVkPipelineStageFlags;
const aDstStageMask:TVkPipelineStageFlags;
const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aDependencyFlags:TVkDependencyFlags);
{$endif}
end;
PPVkRenderPassCreateInfo=^PVkRenderPassCreateInfo;
PVkRenderPassCreateInfo=^TVkRenderPassCreateInfo;
TVkRenderPassCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
pNext:PVkVoid;
flags:TVkRenderPassCreateFlags;
attachmentCount:TVkUInt32;
pAttachments:PVkAttachmentDescription;
subpassCount:TVkUInt32;
pSubpasses:PVkSubpassDescription;
dependencyCount:TVkUInt32;
pDependencies:PVkSubpassDependency;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkRenderPassCreateFlags;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkAttachmentDescription;
const aSubpassCount:TVkUInt32;
const aPSubpasses:PVkSubpassDescription;
const aDependencyCount:TVkUInt32;
const aPDependencies:PVkSubpassDependency);
{$endif}
end;
PPVkEventCreateInfo=^PVkEventCreateInfo;
PVkEventCreateInfo=^TVkEventCreateInfo;
TVkEventCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
pNext:PVkVoid;
flags:TVkEventCreateFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkEventCreateFlags);
{$endif}
end;
PPVkFenceCreateInfo=^PVkFenceCreateInfo;
PVkFenceCreateInfo=^TVkFenceCreateInfo;
TVkFenceCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
pNext:PVkVoid;
flags:TVkFenceCreateFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkFenceCreateFlags);
{$endif}
end;
PPVkDeviceCreateInfo=^PVkDeviceCreateInfo;
PVkDeviceCreateInfo=^TVkDeviceCreateInfo;
TVkDeviceCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
pNext:PVkVoid;
flags:TVkDeviceCreateFlags;
queueCreateInfoCount:TVkUInt32;
pQueueCreateInfos:PVkDeviceQueueCreateInfo;
enabledLayerCount:TVkUInt32;
ppEnabledLayerNames:PPVkChar;
enabledExtensionCount:TVkUInt32;
ppEnabledExtensionNames:PPVkChar;
pEnabledFeatures:PVkPhysicalDeviceFeatures;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceCreateFlags;
const aQueueCreateInfoCount:TVkUInt32;
const aPQueueCreateInfos:PVkDeviceQueueCreateInfo;
const aEnabledLayerCount:TVkUInt32;
const aPpEnabledLayerNames:PPVkChar;
const aEnabledExtensionCount:TVkUInt32;
const aPpEnabledExtensionNames:PPVkChar;
const aPEnabledFeatures:PVkPhysicalDeviceFeatures);
{$endif}
end;
PPVkPhysicalDeviceLimits=^PVkPhysicalDeviceLimits;
PVkPhysicalDeviceLimits=^TVkPhysicalDeviceLimits;
TVkPhysicalDeviceLimits=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
maxImageDimension1D:TVkUInt32;
maxImageDimension2D:TVkUInt32;
maxImageDimension3D:TVkUInt32;
maxImageDimensionCube:TVkUInt32;
maxImageArrayLayers:TVkUInt32;
maxTexelBufferElements:TVkUInt32;
maxUniformBufferRange:TVkUInt32;
maxStorageBufferRange:TVkUInt32;
maxPushConstantsSize:TVkUInt32;
maxMemoryAllocationCount:TVkUInt32;
maxSamplerAllocationCount:TVkUInt32;
bufferImageGranularity:TVkDeviceSize;
sparseAddressSpaceSize:TVkDeviceSize;
maxBoundDescriptorSets:TVkUInt32;
maxPerStageDescriptorSamplers:TVkUInt32;
maxPerStageDescriptorUniformBuffers:TVkUInt32;
maxPerStageDescriptorStorageBuffers:TVkUInt32;
maxPerStageDescriptorSampledImages:TVkUInt32;
maxPerStageDescriptorStorageImages:TVkUInt32;
maxPerStageDescriptorInputAttachments:TVkUInt32;
maxPerStageResources:TVkUInt32;
maxDescriptorSetSamplers:TVkUInt32;
maxDescriptorSetUniformBuffers:TVkUInt32;
maxDescriptorSetUniformBuffersDynamic:TVkUInt32;
maxDescriptorSetStorageBuffers:TVkUInt32;
maxDescriptorSetStorageBuffersDynamic:TVkUInt32;
maxDescriptorSetSampledImages:TVkUInt32;
maxDescriptorSetStorageImages:TVkUInt32;
maxDescriptorSetInputAttachments:TVkUInt32;
maxVertexInputAttributes:TVkUInt32;
maxVertexInputBindings:TVkUInt32;
maxVertexInputAttributeOffset:TVkUInt32;
maxVertexInputBindingStride:TVkUInt32;
maxVertexOutputComponents:TVkUInt32;
maxTessellationGenerationLevel:TVkUInt32;
maxTessellationPatchSize:TVkUInt32;
maxTessellationControlPerVertexInputComponents:TVkUInt32;
maxTessellationControlPerVertexOutputComponents:TVkUInt32;
maxTessellationControlPerPatchOutputComponents:TVkUInt32;
maxTessellationControlTotalOutputComponents:TVkUInt32;
maxTessellationEvaluationInputComponents:TVkUInt32;
maxTessellationEvaluationOutputComponents:TVkUInt32;
maxGeometryShaderInvocations:TVkUInt32;
maxGeometryInputComponents:TVkUInt32;
maxGeometryOutputComponents:TVkUInt32;
maxGeometryOutputVertices:TVkUInt32;
maxGeometryTotalOutputComponents:TVkUInt32;
maxFragmentInputComponents:TVkUInt32;
maxFragmentOutputAttachments:TVkUInt32;
maxFragmentDualSrcAttachments:TVkUInt32;
maxFragmentCombinedOutputResources:TVkUInt32;
maxComputeSharedMemorySize:TVkUInt32;
maxComputeWorkGroupCount:array[0..2] of TVkUInt32;
maxComputeWorkGroupInvocations:TVkUInt32;
maxComputeWorkGroupSize:array[0..2] of TVkUInt32;
subPixelPrecisionBits:TVkUInt32;
subTexelPrecisionBits:TVkUInt32;
mipmapPrecisionBits:TVkUInt32;
maxDrawIndexedIndexValue:TVkUInt32;
maxDrawIndirectCount:TVkUInt32;
maxSamplerLodBias:TVkFloat;
maxSamplerAnisotropy:TVkFloat;
maxViewports:TVkUInt32;
maxViewportDimensions:array[0..1] of TVkUInt32;
viewportBoundsRange:array[0..1] of TVkFloat;
viewportSubPixelBits:TVkUInt32;
minMemoryMapAlignment:TVkSize;
minTexelBufferOffsetAlignment:TVkDeviceSize;
minUniformBufferOffsetAlignment:TVkDeviceSize;
minStorageBufferOffsetAlignment:TVkDeviceSize;
minTexelOffset:TVkInt32;
maxTexelOffset:TVkUInt32;
minTexelGatherOffset:TVkInt32;
maxTexelGatherOffset:TVkUInt32;
minInterpolationOffset:TVkFloat;
maxInterpolationOffset:TVkFloat;
subPixelInterpolationOffsetBits:TVkUInt32;
maxFramebufferWidth:TVkUInt32;
maxFramebufferHeight:TVkUInt32;
maxFramebufferLayers:TVkUInt32;
framebufferColorSampleCounts:TVkSampleCountFlags;
framebufferDepthSampleCounts:TVkSampleCountFlags;
framebufferStencilSampleCounts:TVkSampleCountFlags;
framebufferNoAttachmentsSampleCounts:TVkSampleCountFlags;
maxColorAttachments:TVkUInt32;
sampledImageColorSampleCounts:TVkSampleCountFlags;
sampledImageIntegerSampleCounts:TVkSampleCountFlags;
sampledImageDepthSampleCounts:TVkSampleCountFlags;
sampledImageStencilSampleCounts:TVkSampleCountFlags;
storageImageSampleCounts:TVkSampleCountFlags;
maxSampleMaskWords:TVkUInt32;
timestampComputeAndGraphics:TVkBool32;
timestampPeriod:TVkFloat;
maxClipDistances:TVkUInt32;
maxCullDistances:TVkUInt32;
maxCombinedClipAndCullDistances:TVkUInt32;
discreteQueuePriorities:TVkUInt32;
pointSizeRange:array[0..1] of TVkFloat;
lineWidthRange:array[0..1] of TVkFloat;
pointSizeGranularity:TVkFloat;
lineWidthGranularity:TVkFloat;
strictLines:TVkBool32;
standardSampleLocations:TVkBool32;
optimalBufferCopyOffsetAlignment:TVkDeviceSize;
optimalBufferCopyRowPitchAlignment:TVkDeviceSize;
nonCoherentAtomSize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxImageDimension1D:TVkUInt32;
const aMaxImageDimension2D:TVkUInt32;
const aMaxImageDimension3D:TVkUInt32;
const aMaxImageDimensionCube:TVkUInt32;
const aMaxImageArrayLayers:TVkUInt32;
const aMaxTexelBufferElements:TVkUInt32;
const aMaxUniformBufferRange:TVkUInt32;
const aMaxStorageBufferRange:TVkUInt32;
const aMaxPushConstantsSize:TVkUInt32;
const aMaxMemoryAllocationCount:TVkUInt32;
const aMaxSamplerAllocationCount:TVkUInt32;
const aBufferImageGranularity:TVkDeviceSize;
const aSparseAddressSpaceSize:TVkDeviceSize;
const aMaxBoundDescriptorSets:TVkUInt32;
const aMaxPerStageDescriptorSamplers:TVkUInt32;
const aMaxPerStageDescriptorUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorSampledImages:TVkUInt32;
const aMaxPerStageDescriptorStorageImages:TVkUInt32;
const aMaxPerStageDescriptorInputAttachments:TVkUInt32;
const aMaxPerStageResources:TVkUInt32;
const aMaxDescriptorSetSamplers:TVkUInt32;
const aMaxDescriptorSetUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetStorageBuffers:TVkUInt32;
const aMaxDescriptorSetStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetSampledImages:TVkUInt32;
const aMaxDescriptorSetStorageImages:TVkUInt32;
const aMaxDescriptorSetInputAttachments:TVkUInt32;
const aMaxVertexInputAttributes:TVkUInt32;
const aMaxVertexInputBindings:TVkUInt32;
const aMaxVertexInputAttributeOffset:TVkUInt32;
const aMaxVertexInputBindingStride:TVkUInt32;
const aMaxVertexOutputComponents:TVkUInt32;
const aMaxTessellationGenerationLevel:TVkUInt32;
const aMaxTessellationPatchSize:TVkUInt32;
const aMaxTessellationControlPerVertexInputComponents:TVkUInt32;
const aMaxTessellationControlPerVertexOutputComponents:TVkUInt32;
const aMaxTessellationControlPerPatchOutputComponents:TVkUInt32;
const aMaxTessellationControlTotalOutputComponents:TVkUInt32;
const aMaxTessellationEvaluationInputComponents:TVkUInt32;
const aMaxTessellationEvaluationOutputComponents:TVkUInt32;
const aMaxGeometryShaderInvocations:TVkUInt32;
const aMaxGeometryInputComponents:TVkUInt32;
const aMaxGeometryOutputComponents:TVkUInt32;
const aMaxGeometryOutputVertices:TVkUInt32;
const aMaxGeometryTotalOutputComponents:TVkUInt32;
const aMaxFragmentInputComponents:TVkUInt32;
const aMaxFragmentOutputAttachments:TVkUInt32;
const aMaxFragmentDualSrcAttachments:TVkUInt32;
const aMaxFragmentCombinedOutputResources:TVkUInt32;
const aMaxComputeSharedMemorySize:TVkUInt32;
const aMaxComputeWorkGroupCount:array of TVkUInt32;
const aMaxComputeWorkGroupInvocations:TVkUInt32;
const aMaxComputeWorkGroupSize:array of TVkUInt32;
const aSubPixelPrecisionBits:TVkUInt32;
const aSubTexelPrecisionBits:TVkUInt32;
const aMipmapPrecisionBits:TVkUInt32;
const aMaxDrawIndexedIndexValue:TVkUInt32;
const aMaxDrawIndirectCount:TVkUInt32;
const aMaxSamplerLodBias:TVkFloat;
const aMaxSamplerAnisotropy:TVkFloat;
const aMaxViewports:TVkUInt32;
const aMaxViewportDimensions:array of TVkUInt32;
const aViewportBoundsRange:array of TVkFloat;
const aViewportSubPixelBits:TVkUInt32;
const aMinMemoryMapAlignment:TVkSize;
const aMinTexelBufferOffsetAlignment:TVkDeviceSize;
const aMinUniformBufferOffsetAlignment:TVkDeviceSize;
const aMinStorageBufferOffsetAlignment:TVkDeviceSize;
const aMinTexelOffset:TVkInt32;
const aMaxTexelOffset:TVkUInt32;
const aMinTexelGatherOffset:TVkInt32;
const aMaxTexelGatherOffset:TVkUInt32;
const aMinInterpolationOffset:TVkFloat;
const aMaxInterpolationOffset:TVkFloat;
const aSubPixelInterpolationOffsetBits:TVkUInt32;
const aMaxFramebufferWidth:TVkUInt32;
const aMaxFramebufferHeight:TVkUInt32;
const aMaxFramebufferLayers:TVkUInt32;
const aFramebufferColorSampleCounts:TVkSampleCountFlags;
const aFramebufferDepthSampleCounts:TVkSampleCountFlags;
const aFramebufferStencilSampleCounts:TVkSampleCountFlags;
const aFramebufferNoAttachmentsSampleCounts:TVkSampleCountFlags;
const aMaxColorAttachments:TVkUInt32;
const aSampledImageColorSampleCounts:TVkSampleCountFlags;
const aSampledImageIntegerSampleCounts:TVkSampleCountFlags;
const aSampledImageDepthSampleCounts:TVkSampleCountFlags;
const aSampledImageStencilSampleCounts:TVkSampleCountFlags;
const aStorageImageSampleCounts:TVkSampleCountFlags;
const aMaxSampleMaskWords:TVkUInt32;
const aTimestampComputeAndGraphics:TVkBool32;
const aTimestampPeriod:TVkFloat;
const aMaxClipDistances:TVkUInt32;
const aMaxCullDistances:TVkUInt32;
const aMaxCombinedClipAndCullDistances:TVkUInt32;
const aDiscreteQueuePriorities:TVkUInt32;
const aPointSizeRange:array of TVkFloat;
const aLineWidthRange:array of TVkFloat;
const aPointSizeGranularity:TVkFloat;
const aLineWidthGranularity:TVkFloat;
const aStrictLines:TVkBool32;
const aStandardSampleLocations:TVkBool32;
const aOptimalBufferCopyOffsetAlignment:TVkDeviceSize;
const aOptimalBufferCopyRowPitchAlignment:TVkDeviceSize;
const aNonCoherentAtomSize:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceProperties=^PVkPhysicalDeviceProperties;
PVkPhysicalDeviceProperties=^TVkPhysicalDeviceProperties;
TVkPhysicalDeviceProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
apiVersion:TVkUInt32;
driverVersion:TVkUInt32;
vendorID:TVkUInt32;
deviceID:TVkUInt32;
deviceType:TVkPhysicalDeviceType;
deviceName:array[0..VK_MAX_PHYSICAL_DEVICE_NAME_SIZE-1] of TVkChar;
pipelineCacheUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
limits:TVkPhysicalDeviceLimits;
sparseProperties:TVkPhysicalDeviceSparseProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aApiVersion:TVkUInt32;
const aDriverVersion:TVkUInt32;
const aVendorID:TVkUInt32;
const aDeviceID:TVkUInt32;
const aDeviceType:TVkPhysicalDeviceType;
const aDeviceName:TVkCharString;
const aPipelineCacheUUID:array of TVkUInt8;
const aLimits:TVkPhysicalDeviceLimits;
const aSparseProperties:TVkPhysicalDeviceSparseProperties);
{$endif}
end;
PPVkSemaphoreCreateInfo=^PVkSemaphoreCreateInfo;
PVkSemaphoreCreateInfo=^TVkSemaphoreCreateInfo;
TVkSemaphoreCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
pNext:PVkVoid;
flags:TVkSemaphoreCreateFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSemaphoreCreateFlags);
{$endif}
end;
PPVkQueryPoolCreateInfo=^PVkQueryPoolCreateInfo;
PVkQueryPoolCreateInfo=^TVkQueryPoolCreateInfo;
TVkQueryPoolCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
pNext:PVkVoid;
flags:TVkQueryPoolCreateFlags;
queryType:TVkQueryType;
queryCount:TVkUInt32;
pipelineStatistics:TVkQueryPipelineStatisticFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkQueryPoolCreateFlags;
const aQueryType:TVkQueryType;
const aQueryCount:TVkUInt32;
const aPipelineStatistics:TVkQueryPipelineStatisticFlags);
{$endif}
end;
PPVkFramebufferCreateInfo=^PVkFramebufferCreateInfo;
PVkFramebufferCreateInfo=^TVkFramebufferCreateInfo;
TVkFramebufferCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
pNext:PVkVoid;
flags:TVkFramebufferCreateFlags;
renderPass:TVkRenderPass;
attachmentCount:TVkUInt32;
pAttachments:PVkImageView;
width:TVkUInt32;
height:TVkUInt32;
layers:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkFramebufferCreateFlags;
const aRenderPass:TVkRenderPass;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkImageView;
const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aLayers:TVkUInt32);
{$endif}
end;
PPVkDrawIndirectCommand=^PVkDrawIndirectCommand;
PVkDrawIndirectCommand=^TVkDrawIndirectCommand;
TVkDrawIndirectCommand=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
vertexCount:TVkUInt32;
instanceCount:TVkUInt32;
firstVertex:TVkUInt32;
firstInstance:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexCount:TVkUInt32;
const aInstanceCount:TVkUInt32;
const aFirstVertex:TVkUInt32;
const aFirstInstance:TVkUInt32);
{$endif}
end;
PPVkDrawIndexedIndirectCommand=^PVkDrawIndexedIndirectCommand;
PVkDrawIndexedIndirectCommand=^TVkDrawIndexedIndirectCommand;
TVkDrawIndexedIndirectCommand=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
indexCount:TVkUInt32;
instanceCount:TVkUInt32;
firstIndex:TVkUInt32;
vertexOffset:TVkInt32;
firstInstance:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aIndexCount:TVkUInt32;
const aInstanceCount:TVkUInt32;
const aFirstIndex:TVkUInt32;
const aVertexOffset:TVkInt32;
const aFirstInstance:TVkUInt32);
{$endif}
end;
PPVkDispatchIndirectCommand=^PVkDispatchIndirectCommand;
PVkDispatchIndirectCommand=^TVkDispatchIndirectCommand;
TVkDispatchIndirectCommand=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkUInt32;
y:TVkUInt32;
z:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkUInt32;
const aY:TVkUInt32;
const aZ:TVkUInt32);
{$endif}
end;
PPVkMultiDrawInfoEXT=^PVkMultiDrawInfoEXT;
PVkMultiDrawInfoEXT=^TVkMultiDrawInfoEXT;
TVkMultiDrawInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
firstVertex:TVkUInt32;
vertexCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFirstVertex:TVkUInt32;
const aVertexCount:TVkUInt32);
{$endif}
end;
PPVkMultiDrawIndexedInfoEXT=^PVkMultiDrawIndexedInfoEXT;
PVkMultiDrawIndexedInfoEXT=^TVkMultiDrawIndexedInfoEXT;
TVkMultiDrawIndexedInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
firstIndex:TVkUInt32;
indexCount:TVkUInt32;
vertexOffset:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFirstIndex:TVkUInt32;
const aIndexCount:TVkUInt32;
const aVertexOffset:TVkInt32);
{$endif}
end;
PPVkSubmitInfo=^PVkSubmitInfo;
PVkSubmitInfo=^TVkSubmitInfo;
TVkSubmitInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBMIT_INFO
pNext:PVkVoid;
waitSemaphoreCount:TVkUInt32;
pWaitSemaphores:PVkSemaphore;
pWaitDstStageMask:PVkPipelineStageFlags;
commandBufferCount:TVkUInt32;
pCommandBuffers:PVkCommandBuffer;
signalSemaphoreCount:TVkUInt32;
pSignalSemaphores:PVkSemaphore;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aPWaitDstStageMask:PVkPipelineStageFlags;
const aCommandBufferCount:TVkUInt32;
const aPCommandBuffers:PVkCommandBuffer;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphores:PVkSemaphore);
{$endif}
end;
PPVkDisplayPropertiesKHR=^PVkDisplayPropertiesKHR;
PVkDisplayPropertiesKHR=^TVkDisplayPropertiesKHR;
TVkDisplayPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
display:TVkDisplayKHR;
displayName:PVkChar;
physicalDimensions:TVkExtent2D;
physicalResolution:TVkExtent2D;
supportedTransforms:TVkSurfaceTransformFlagsKHR;
planeReorderPossible:TVkBool32;
persistentContent:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplay:TVkDisplayKHR;
const aDisplayName:PVkChar;
const aPhysicalDimensions:TVkExtent2D;
const aPhysicalResolution:TVkExtent2D;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aPlaneReorderPossible:TVkBool32;
const aPersistentContent:TVkBool32);
{$endif}
end;
PPVkDisplayPlanePropertiesKHR=^PVkDisplayPlanePropertiesKHR;
PVkDisplayPlanePropertiesKHR=^TVkDisplayPlanePropertiesKHR;
TVkDisplayPlanePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
currentDisplay:TVkDisplayKHR;
currentStackIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCurrentDisplay:TVkDisplayKHR;
const aCurrentStackIndex:TVkUInt32);
{$endif}
end;
PPVkDisplayModeParametersKHR=^PVkDisplayModeParametersKHR;
PVkDisplayModeParametersKHR=^TVkDisplayModeParametersKHR;
TVkDisplayModeParametersKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
visibleRegion:TVkExtent2D;
refreshRate:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVisibleRegion:TVkExtent2D;
const aRefreshRate:TVkUInt32);
{$endif}
end;
PPVkDisplayModePropertiesKHR=^PVkDisplayModePropertiesKHR;
PVkDisplayModePropertiesKHR=^TVkDisplayModePropertiesKHR;
TVkDisplayModePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
displayMode:TVkDisplayModeKHR;
parameters:TVkDisplayModeParametersKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayMode:TVkDisplayModeKHR;
const aParameters:TVkDisplayModeParametersKHR);
{$endif}
end;
PPVkDisplayModeCreateInfoKHR=^PVkDisplayModeCreateInfoKHR;
PVkDisplayModeCreateInfoKHR=^TVkDisplayModeCreateInfoKHR;
TVkDisplayModeCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkDisplayModeCreateFlagsKHR;
parameters:TVkDisplayModeParametersKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDisplayModeCreateFlagsKHR;
const aParameters:TVkDisplayModeParametersKHR);
{$endif}
end;
PPVkDisplayPlaneCapabilitiesKHR=^PVkDisplayPlaneCapabilitiesKHR;
PVkDisplayPlaneCapabilitiesKHR=^TVkDisplayPlaneCapabilitiesKHR;
TVkDisplayPlaneCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
supportedAlpha:TVkDisplayPlaneAlphaFlagsKHR;
minSrcPosition:TVkOffset2D;
maxSrcPosition:TVkOffset2D;
minSrcExtent:TVkExtent2D;
maxSrcExtent:TVkExtent2D;
minDstPosition:TVkOffset2D;
maxDstPosition:TVkOffset2D;
minDstExtent:TVkExtent2D;
maxDstExtent:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSupportedAlpha:TVkDisplayPlaneAlphaFlagsKHR;
const aMinSrcPosition:TVkOffset2D;
const aMaxSrcPosition:TVkOffset2D;
const aMinSrcExtent:TVkExtent2D;
const aMaxSrcExtent:TVkExtent2D;
const aMinDstPosition:TVkOffset2D;
const aMaxDstPosition:TVkOffset2D;
const aMinDstExtent:TVkExtent2D;
const aMaxDstExtent:TVkExtent2D);
{$endif}
end;
PPVkDisplaySurfaceCreateInfoKHR=^PVkDisplaySurfaceCreateInfoKHR;
PVkDisplaySurfaceCreateInfoKHR=^TVkDisplaySurfaceCreateInfoKHR;
TVkDisplaySurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkDisplaySurfaceCreateFlagsKHR;
displayMode:TVkDisplayModeKHR;
planeIndex:TVkUInt32;
planeStackIndex:TVkUInt32;
transform:TVkSurfaceTransformFlagBitsKHR;
globalAlpha:TVkFloat;
alphaMode:TVkDisplayPlaneAlphaFlagBitsKHR;
imageExtent:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDisplaySurfaceCreateFlagsKHR;
const aDisplayMode:TVkDisplayModeKHR;
const aPlaneIndex:TVkUInt32;
const aPlaneStackIndex:TVkUInt32;
const aTransform:TVkSurfaceTransformFlagBitsKHR;
const aGlobalAlpha:TVkFloat;
const aAlphaMode:TVkDisplayPlaneAlphaFlagBitsKHR;
const aImageExtent:TVkExtent2D);
{$endif}
end;
PPVkDisplayPresentInfoKHR=^PVkDisplayPresentInfoKHR;
PVkDisplayPresentInfoKHR=^TVkDisplayPresentInfoKHR;
TVkDisplayPresentInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
pNext:PVkVoid;
srcRect:TVkRect2D;
dstRect:TVkRect2D;
persistent:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcRect:TVkRect2D;
const aDstRect:TVkRect2D;
const aPersistent:TVkBool32);
{$endif}
end;
PPVkSurfaceCapabilitiesKHR=^PVkSurfaceCapabilitiesKHR;
PVkSurfaceCapabilitiesKHR=^TVkSurfaceCapabilitiesKHR;
TVkSurfaceCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
minImageCount:TVkUInt32;
maxImageCount:TVkUInt32;
currentExtent:TVkExtent2D;
minImageExtent:TVkExtent2D;
maxImageExtent:TVkExtent2D;
maxImageArrayLayers:TVkUInt32;
supportedTransforms:TVkSurfaceTransformFlagsKHR;
currentTransform:TVkSurfaceTransformFlagBitsKHR;
supportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
supportedUsageFlags:TVkImageUsageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinImageCount:TVkUInt32;
const aMaxImageCount:TVkUInt32;
const aCurrentExtent:TVkExtent2D;
const aMinImageExtent:TVkExtent2D;
const aMaxImageExtent:TVkExtent2D;
const aMaxImageArrayLayers:TVkUInt32;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aCurrentTransform:TVkSurfaceTransformFlagBitsKHR;
const aSupportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
const aSupportedUsageFlags:TVkImageUsageFlags);
{$endif}
end;
{$ifdef Android}
PPVkAndroidSurfaceCreateInfoKHR=^PVkAndroidSurfaceCreateInfoKHR;
PVkAndroidSurfaceCreateInfoKHR=^TVkAndroidSurfaceCreateInfoKHR;
TVkAndroidSurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkAndroidSurfaceCreateFlagsKHR;
window:PVkAndroidANativeWindow;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkAndroidSurfaceCreateFlagsKHR;
const aWindow:PVkAndroidANativeWindow);
{$endif}
end;
{$endif}
PPVkViSurfaceCreateInfoNN=^PVkViSurfaceCreateInfoNN;
PVkViSurfaceCreateInfoNN=^TVkViSurfaceCreateInfoNN;
TVkViSurfaceCreateInfoNN=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
pNext:PVkVoid;
flags:TVkViSurfaceCreateFlagsNN;
window:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkViSurfaceCreateFlagsNN;
const aWindow:PVkVoid);
{$endif}
end;
{$ifdef Wayland}
PPVkWaylandSurfaceCreateInfoKHR=^PVkWaylandSurfaceCreateInfoKHR;
PVkWaylandSurfaceCreateInfoKHR=^TVkWaylandSurfaceCreateInfoKHR;
TVkWaylandSurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkWaylandSurfaceCreateFlagsKHR;
display:PVkWaylandDisplay;
surface:PVkWaylandSurface;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkWaylandSurfaceCreateFlagsKHR;
const aDisplay:PVkWaylandDisplay;
const aSurface:PVkWaylandSurface);
{$endif}
end;
{$endif}
{$ifdef Windows}
PPVkWin32SurfaceCreateInfoKHR=^PVkWin32SurfaceCreateInfoKHR;
PVkWin32SurfaceCreateInfoKHR=^TVkWin32SurfaceCreateInfoKHR;
TVkWin32SurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkWin32SurfaceCreateFlagsKHR;
hinstance_:TVkHINSTANCE;
hwnd_:TVkHWND;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkWin32SurfaceCreateFlagsKHR;
const aHinstance_:TVkHINSTANCE;
const aHwnd_:TVkHWND);
{$endif}
end;
{$endif}
{$ifdef XLIB}
PPVkXlibSurfaceCreateInfoKHR=^PVkXlibSurfaceCreateInfoKHR;
PVkXlibSurfaceCreateInfoKHR=^TVkXlibSurfaceCreateInfoKHR;
TVkXlibSurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkXlibSurfaceCreateFlagsKHR;
dpy:PVkXLIBDisplay;
window:TVkXLIBWindow;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkXlibSurfaceCreateFlagsKHR;
const aDpy:PVkXLIBDisplay;
const aWindow:TVkXLIBWindow);
{$endif}
end;
{$endif}
{$ifdef XCB}
PPVkXcbSurfaceCreateInfoKHR=^PVkXcbSurfaceCreateInfoKHR;
PVkXcbSurfaceCreateInfoKHR=^TVkXcbSurfaceCreateInfoKHR;
TVkXcbSurfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkXcbSurfaceCreateFlagsKHR;
connection:PVkXCBConnection;
window:TVkXCBWindow;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkXcbSurfaceCreateFlagsKHR;
const aConnection:PVkXCBConnection;
const aWindow:TVkXCBWindow);
{$endif}
end;
{$endif}
{$ifdef DirectFB}
PPVkDirectFBSurfaceCreateInfoEXT=^PVkDirectFBSurfaceCreateInfoEXT;
PVkDirectFBSurfaceCreateInfoEXT=^TVkDirectFBSurfaceCreateInfoEXT;
TVkDirectFBSurfaceCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkDirectFBSurfaceCreateFlagsEXT;
dfb:PVkDirectFBIDirectFB;
surface:PVkDirectFBIDirectFBSurface;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDirectFBSurfaceCreateFlagsEXT;
const aDfb:PVkDirectFBIDirectFB;
const aSurface:PVkDirectFBIDirectFBSurface);
{$endif}
end;
{$endif}
{$ifdef Fuchsia}
PPVkImagePipeSurfaceCreateInfoFUCHSIA=^PVkImagePipeSurfaceCreateInfoFUCHSIA;
PVkImagePipeSurfaceCreateInfoFUCHSIA=^TVkImagePipeSurfaceCreateInfoFUCHSIA;
TVkImagePipeSurfaceCreateInfoFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
pNext:PVkVoid;
flags:TVkImagePipeSurfaceCreateFlagsFUCHSIA;
imagePipeHandle:TVkFuchsiaZXHandle;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkImagePipeSurfaceCreateFlagsFUCHSIA;
const aImagePipeHandle:TVkFuchsiaZXHandle);
{$endif}
end;
{$endif}
PPVkStreamDescriptorSurfaceCreateInfoGGP=^PVkStreamDescriptorSurfaceCreateInfoGGP;
PVkStreamDescriptorSurfaceCreateInfoGGP=^TVkStreamDescriptorSurfaceCreateInfoGGP;
TVkStreamDescriptorSurfaceCreateInfoGGP=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
pNext:PVkVoid;
flags:TVkStreamDescriptorSurfaceCreateFlagsGGP;
streamDescriptor:TVkGgpStreamDescriptor;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkStreamDescriptorSurfaceCreateFlagsGGP;
const aStreamDescriptor:TVkGgpStreamDescriptor);
{$endif}
end;
{$ifdef QNX}
PPVkScreenSurfaceCreateInfoQNX=^PVkScreenSurfaceCreateInfoQNX;
PVkScreenSurfaceCreateInfoQNX=^TVkScreenSurfaceCreateInfoQNX;
TVkScreenSurfaceCreateInfoQNX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
pNext:PVkVoid;
flags:TVkScreenSurfaceCreateFlagsQNX;
context:PVkQNXScreenContext;
window:PVkQNXScreenWindow;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkScreenSurfaceCreateFlagsQNX;
const aContext:PVkQNXScreenContext;
const aWindow:PVkQNXScreenWindow);
{$endif}
end;
{$endif}
PPVkSurfaceFormatKHR=^PVkSurfaceFormatKHR;
PVkSurfaceFormatKHR=^TVkSurfaceFormatKHR;
TVkSurfaceFormatKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
format:TVkFormat;
colorSpace:TVkColorSpaceKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat;
const aColorSpace:TVkColorSpaceKHR);
{$endif}
end;
PPVkSwapchainCreateInfoKHR=^PVkSwapchainCreateInfoKHR;
PVkSwapchainCreateInfoKHR=^TVkSwapchainCreateInfoKHR;
TVkSwapchainCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkSwapchainCreateFlagsKHR;
surface:TVkSurfaceKHR;
minImageCount:TVkUInt32;
imageFormat:TVkFormat;
imageColorSpace:TVkColorSpaceKHR;
imageExtent:TVkExtent2D;
imageArrayLayers:TVkUInt32;
imageUsage:TVkImageUsageFlags;
imageSharingMode:TVkSharingMode;
queueFamilyIndexCount:TVkUInt32;
pQueueFamilyIndices:PVkUInt32;
preTransform:TVkSurfaceTransformFlagBitsKHR;
compositeAlpha:TVkCompositeAlphaFlagBitsKHR;
presentMode:TVkPresentModeKHR;
clipped:TVkBool32;
oldSwapchain:TVkSwapchainKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSwapchainCreateFlagsKHR;
const aSurface:TVkSurfaceKHR;
const aMinImageCount:TVkUInt32;
const aImageFormat:TVkFormat;
const aImageColorSpace:TVkColorSpaceKHR;
const aImageExtent:TVkExtent2D;
const aImageArrayLayers:TVkUInt32;
const aImageUsage:TVkImageUsageFlags;
const aImageSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32;
const aPreTransform:TVkSurfaceTransformFlagBitsKHR;
const aCompositeAlpha:TVkCompositeAlphaFlagBitsKHR;
const aPresentMode:TVkPresentModeKHR;
const aClipped:TVkBool32;
const aOldSwapchain:TVkSwapchainKHR);
{$endif}
end;
PPVkPresentInfoKHR=^PVkPresentInfoKHR;
PVkPresentInfoKHR=^TVkPresentInfoKHR;
TVkPresentInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
pNext:PVkVoid;
waitSemaphoreCount:TVkUInt32;
pWaitSemaphores:PVkSemaphore;
swapchainCount:TVkUInt32;
pSwapchains:PVkSwapchainKHR;
pImageIndices:PVkUInt32;
pResults:PVkResult;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aSwapchainCount:TVkUInt32;
const aPSwapchains:PVkSwapchainKHR;
const aPImageIndices:PVkUInt32;
const aPResults:PVkResult);
{$endif}
end;
PPVkDebugReportCallbackCreateInfoEXT=^PVkDebugReportCallbackCreateInfoEXT;
PVkDebugReportCallbackCreateInfoEXT=^TVkDebugReportCallbackCreateInfoEXT;
TVkDebugReportCallbackCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkDebugReportFlagsEXT;
pfnCallback:TPFN_vkDebugReportCallbackEXT;
pUserData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDebugReportFlagsEXT;
const aPfnCallback:TPFN_vkDebugReportCallbackEXT;
const aPUserData:PVkVoid);
{$endif}
end;
PPVkValidationFlagsEXT=^PVkValidationFlagsEXT;
PVkValidationFlagsEXT=^TVkValidationFlagsEXT;
TVkValidationFlagsEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
pNext:PVkVoid;
disabledValidationCheckCount:TVkUInt32;
pDisabledValidationChecks:PVkValidationCheckEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisabledValidationCheckCount:TVkUInt32;
const aPDisabledValidationChecks:PVkValidationCheckEXT);
{$endif}
end;
PPVkValidationFeaturesEXT=^PVkValidationFeaturesEXT;
PVkValidationFeaturesEXT=^TVkValidationFeaturesEXT;
TVkValidationFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
pNext:PVkVoid;
enabledValidationFeatureCount:TVkUInt32;
pEnabledValidationFeatures:PVkValidationFeatureEnableEXT;
disabledValidationFeatureCount:TVkUInt32;
pDisabledValidationFeatures:PVkValidationFeatureDisableEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aEnabledValidationFeatureCount:TVkUInt32;
const aPEnabledValidationFeatures:PVkValidationFeatureEnableEXT;
const aDisabledValidationFeatureCount:TVkUInt32;
const aPDisabledValidationFeatures:PVkValidationFeatureDisableEXT);
{$endif}
end;
PPVkPipelineRasterizationStateRasterizationOrderAMD=^PVkPipelineRasterizationStateRasterizationOrderAMD;
PVkPipelineRasterizationStateRasterizationOrderAMD=^TVkPipelineRasterizationStateRasterizationOrderAMD;
TVkPipelineRasterizationStateRasterizationOrderAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
pNext:PVkVoid;
rasterizationOrder:TVkRasterizationOrderAMD;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRasterizationOrder:TVkRasterizationOrderAMD);
{$endif}
end;
PPVkDebugMarkerObjectNameInfoEXT=^PVkDebugMarkerObjectNameInfoEXT;
PVkDebugMarkerObjectNameInfoEXT=^TVkDebugMarkerObjectNameInfoEXT;
TVkDebugMarkerObjectNameInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
pNext:PVkVoid;
objectType:TVkDebugReportObjectTypeEXT;
object_:TVkUInt64;
pObjectName:PVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aObjectType:TVkDebugReportObjectTypeEXT;
const aObject_:TVkUInt64;
const aPObjectName:PVkChar);
{$endif}
end;
PPVkDebugMarkerObjectTagInfoEXT=^PVkDebugMarkerObjectTagInfoEXT;
PVkDebugMarkerObjectTagInfoEXT=^TVkDebugMarkerObjectTagInfoEXT;
TVkDebugMarkerObjectTagInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
pNext:PVkVoid;
objectType:TVkDebugReportObjectTypeEXT;
object_:TVkUInt64;
tagName:TVkUInt64;
tagSize:TVkSize;
pTag:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aObjectType:TVkDebugReportObjectTypeEXT;
const aObject_:TVkUInt64;
const aTagName:TVkUInt64;
const aTagSize:TVkSize;
const aPTag:PVkVoid);
{$endif}
end;
PPVkDebugMarkerMarkerInfoEXT=^PVkDebugMarkerMarkerInfoEXT;
PVkDebugMarkerMarkerInfoEXT=^TVkDebugMarkerMarkerInfoEXT;
TVkDebugMarkerMarkerInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
pNext:PVkVoid;
pMarkerName:PVkChar;
color:array[0..3] of TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPMarkerName:PVkChar;
const aColor:array of TVkFloat);
{$endif}
end;
PPVkDedicatedAllocationImageCreateInfoNV=^PVkDedicatedAllocationImageCreateInfoNV;
PVkDedicatedAllocationImageCreateInfoNV=^TVkDedicatedAllocationImageCreateInfoNV;
TVkDedicatedAllocationImageCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
pNext:PVkVoid;
dedicatedAllocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDedicatedAllocation:TVkBool32);
{$endif}
end;
PPVkDedicatedAllocationBufferCreateInfoNV=^PVkDedicatedAllocationBufferCreateInfoNV;
PVkDedicatedAllocationBufferCreateInfoNV=^TVkDedicatedAllocationBufferCreateInfoNV;
TVkDedicatedAllocationBufferCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
pNext:PVkVoid;
dedicatedAllocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDedicatedAllocation:TVkBool32);
{$endif}
end;
PPVkDedicatedAllocationMemoryAllocateInfoNV=^PVkDedicatedAllocationMemoryAllocateInfoNV;
PVkDedicatedAllocationMemoryAllocateInfoNV=^TVkDedicatedAllocationMemoryAllocateInfoNV;
TVkDedicatedAllocationMemoryAllocateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
pNext:PVkVoid;
image:TVkImage;
buffer:TVkBuffer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage;
const aBuffer:TVkBuffer);
{$endif}
end;
PPVkExternalImageFormatPropertiesNV=^PVkExternalImageFormatPropertiesNV;
PVkExternalImageFormatPropertiesNV=^TVkExternalImageFormatPropertiesNV;
TVkExternalImageFormatPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
imageFormatProperties:TVkImageFormatProperties;
externalMemoryFeatures:TVkExternalMemoryFeatureFlagsNV;
exportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlagsNV;
compatibleHandleTypes:TVkExternalMemoryHandleTypeFlagsNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageFormatProperties:TVkImageFormatProperties;
const aExternalMemoryFeatures:TVkExternalMemoryFeatureFlagsNV;
const aExportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlagsNV;
const aCompatibleHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
{$endif}
end;
PPVkExternalMemoryImageCreateInfoNV=^PVkExternalMemoryImageCreateInfoNV;
PVkExternalMemoryImageCreateInfoNV=^TVkExternalMemoryImageCreateInfoNV;
TVkExternalMemoryImageCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
pNext:PVkVoid;
handleTypes:TVkExternalMemoryHandleTypeFlagsNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
{$endif}
end;
PPVkExportMemoryAllocateInfoNV=^PVkExportMemoryAllocateInfoNV;
PVkExportMemoryAllocateInfoNV=^TVkExportMemoryAllocateInfoNV;
TVkExportMemoryAllocateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
pNext:PVkVoid;
handleTypes:TVkExternalMemoryHandleTypeFlagsNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
{$endif}
end;
PPVkImportMemoryWin32HandleInfoNV=^PVkImportMemoryWin32HandleInfoNV;
PVkImportMemoryWin32HandleInfoNV=^TVkImportMemoryWin32HandleInfoNV;
TVkImportMemoryWin32HandleInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagsNV;
handle:THANDLE;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagsNV;
const aHandle:THANDLE);
{$endif}
end;
{$ifdef Windows}
PPVkExportMemoryWin32HandleInfoNV=^PVkExportMemoryWin32HandleInfoNV;
PVkExportMemoryWin32HandleInfoNV=^TVkExportMemoryWin32HandleInfoNV;
TVkExportMemoryWin32HandleInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
pNext:PVkVoid;
pAttributes:PSecurityAttributes;
dwAccess:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32);
{$endif}
end;
{$endif}
PPVkWin32KeyedMutexAcquireReleaseInfoNV=^PVkWin32KeyedMutexAcquireReleaseInfoNV;
PVkWin32KeyedMutexAcquireReleaseInfoNV=^TVkWin32KeyedMutexAcquireReleaseInfoNV;
TVkWin32KeyedMutexAcquireReleaseInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
pNext:PVkVoid;
acquireCount:TVkUInt32;
pAcquireSyncs:PVkDeviceMemory;
pAcquireKeys:PVkUInt64;
pAcquireTimeoutMilliseconds:PVkUInt32;
releaseCount:TVkUInt32;
pReleaseSyncs:PVkDeviceMemory;
pReleaseKeys:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAcquireCount:TVkUInt32;
const aPAcquireSyncs:PVkDeviceMemory;
const aPAcquireKeys:PVkUInt64;
const aPAcquireTimeoutMilliseconds:PVkUInt32;
const aReleaseCount:TVkUInt32;
const aPReleaseSyncs:PVkDeviceMemory;
const aPReleaseKeys:PVkUInt64);
{$endif}
end;
PPVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV=^PVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
PVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV=^TVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
TVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
pNext:PVkVoid;
deviceGeneratedCommands:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceGeneratedCommands:TVkBool32);
{$endif}
end;
PPVkDevicePrivateDataCreateInfoEXT=^PVkDevicePrivateDataCreateInfoEXT;
PVkDevicePrivateDataCreateInfoEXT=^TVkDevicePrivateDataCreateInfoEXT;
TVkDevicePrivateDataCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT
pNext:PVkVoid;
privateDataSlotRequestCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPrivateDataSlotRequestCount:TVkUInt32);
{$endif}
end;
PPVkPrivateDataSlotCreateInfoEXT=^PVkPrivateDataSlotCreateInfoEXT;
PVkPrivateDataSlotCreateInfoEXT=^TVkPrivateDataSlotCreateInfoEXT;
TVkPrivateDataSlotCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkPrivateDataSlotCreateFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPrivateDataSlotCreateFlagsEXT);
{$endif}
end;
PPVkPhysicalDevicePrivateDataFeaturesEXT=^PVkPhysicalDevicePrivateDataFeaturesEXT;
PVkPhysicalDevicePrivateDataFeaturesEXT=^TVkPhysicalDevicePrivateDataFeaturesEXT;
TVkPhysicalDevicePrivateDataFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT
pNext:PVkVoid;
privateData:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPrivateData:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV=^PVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
PVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV=^TVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
TVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
pNext:PVkVoid;
maxGraphicsShaderGroupCount:TVkUInt32;
maxIndirectSequenceCount:TVkUInt32;
maxIndirectCommandsTokenCount:TVkUInt32;
maxIndirectCommandsStreamCount:TVkUInt32;
maxIndirectCommandsTokenOffset:TVkUInt32;
maxIndirectCommandsStreamStride:TVkUInt32;
minSequencesCountBufferOffsetAlignment:TVkUInt32;
minSequencesIndexBufferOffsetAlignment:TVkUInt32;
minIndirectCommandsBufferOffsetAlignment:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxGraphicsShaderGroupCount:TVkUInt32;
const aMaxIndirectSequenceCount:TVkUInt32;
const aMaxIndirectCommandsTokenCount:TVkUInt32;
const aMaxIndirectCommandsStreamCount:TVkUInt32;
const aMaxIndirectCommandsTokenOffset:TVkUInt32;
const aMaxIndirectCommandsStreamStride:TVkUInt32;
const aMinSequencesCountBufferOffsetAlignment:TVkUInt32;
const aMinSequencesIndexBufferOffsetAlignment:TVkUInt32;
const aMinIndirectCommandsBufferOffsetAlignment:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceMultiDrawPropertiesEXT=^PVkPhysicalDeviceMultiDrawPropertiesEXT;
PVkPhysicalDeviceMultiDrawPropertiesEXT=^TVkPhysicalDeviceMultiDrawPropertiesEXT;
TVkPhysicalDeviceMultiDrawPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
pNext:PVkVoid;
maxMultiDrawCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxMultiDrawCount:TVkUInt32);
{$endif}
end;
PPVkGraphicsShaderGroupCreateInfoNV=^PVkGraphicsShaderGroupCreateInfoNV;
PVkGraphicsShaderGroupCreateInfoNV=^TVkGraphicsShaderGroupCreateInfoNV;
TVkGraphicsShaderGroupCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
pNext:PVkVoid;
stageCount:TVkUInt32;
pStages:PVkPipelineShaderStageCreateInfo;
pVertexInputState:PVkPipelineVertexInputStateCreateInfo;
pTessellationState:PVkPipelineTessellationStateCreateInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aPVertexInputState:PVkPipelineVertexInputStateCreateInfo;
const aPTessellationState:PVkPipelineTessellationStateCreateInfo);
{$endif}
end;
PPVkGraphicsPipelineShaderGroupsCreateInfoNV=^PVkGraphicsPipelineShaderGroupsCreateInfoNV;
PVkGraphicsPipelineShaderGroupsCreateInfoNV=^TVkGraphicsPipelineShaderGroupsCreateInfoNV;
TVkGraphicsPipelineShaderGroupsCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
pNext:PVkVoid;
groupCount:TVkUInt32;
pGroups:PVkGraphicsShaderGroupCreateInfoNV;
pipelineCount:TVkUInt32;
pPipelines:PVkPipeline;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGroupCount:TVkUInt32;
const aPGroups:PVkGraphicsShaderGroupCreateInfoNV;
const aPipelineCount:TVkUInt32;
const aPPipelines:PVkPipeline);
{$endif}
end;
PPVkBindShaderGroupIndirectCommandNV=^PVkBindShaderGroupIndirectCommandNV;
PVkBindShaderGroupIndirectCommandNV=^TVkBindShaderGroupIndirectCommandNV;
TVkBindShaderGroupIndirectCommandNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
groupIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGroupIndex:TVkUInt32);
{$endif}
end;
PPVkBindIndexBufferIndirectCommandNV=^PVkBindIndexBufferIndirectCommandNV;
PVkBindIndexBufferIndirectCommandNV=^TVkBindIndexBufferIndirectCommandNV;
TVkBindIndexBufferIndirectCommandNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
bufferAddress:TVkDeviceAddress;
size:TVkUInt32;
indexType:TVkIndexType;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferAddress:TVkDeviceAddress;
const aSize:TVkUInt32;
const aIndexType:TVkIndexType);
{$endif}
end;
PPVkBindVertexBufferIndirectCommandNV=^PVkBindVertexBufferIndirectCommandNV;
PVkBindVertexBufferIndirectCommandNV=^TVkBindVertexBufferIndirectCommandNV;
TVkBindVertexBufferIndirectCommandNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
bufferAddress:TVkDeviceAddress;
size:TVkUInt32;
stride:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferAddress:TVkDeviceAddress;
const aSize:TVkUInt32;
const aStride:TVkUInt32);
{$endif}
end;
PPVkSetStateFlagsIndirectCommandNV=^PVkSetStateFlagsIndirectCommandNV;
PVkSetStateFlagsIndirectCommandNV=^TVkSetStateFlagsIndirectCommandNV;
TVkSetStateFlagsIndirectCommandNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
data:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aData:TVkUInt32);
{$endif}
end;
PPVkIndirectCommandsStreamNV=^PVkIndirectCommandsStreamNV;
PVkIndirectCommandsStreamNV=^TVkIndirectCommandsStreamNV;
TVkIndirectCommandsStreamNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
buffer:TVkBuffer;
offset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize);
{$endif}
end;
PPVkIndirectCommandsLayoutTokenNV=^PVkIndirectCommandsLayoutTokenNV;
PVkIndirectCommandsLayoutTokenNV=^TVkIndirectCommandsLayoutTokenNV;
TVkIndirectCommandsLayoutTokenNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
pNext:PVkVoid;
tokenType:TVkIndirectCommandsTokenTypeNV;
stream:TVkUInt32;
offset:TVkUInt32;
vertexBindingUnit:TVkUInt32;
vertexDynamicStride:TVkBool32;
pushconstantPipelineLayout:TVkPipelineLayout;
pushconstantShaderStageFlags:TVkShaderStageFlags;
pushconstantOffset:TVkUInt32;
pushconstantSize:TVkUInt32;
indirectStateFlags:TVkIndirectStateFlagsNV;
indexTypeCount:TVkUInt32;
pIndexTypes:PVkIndexType;
pIndexTypeValues:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTokenType:TVkIndirectCommandsTokenTypeNV;
const aStream:TVkUInt32;
const aOffset:TVkUInt32;
const aVertexBindingUnit:TVkUInt32;
const aVertexDynamicStride:TVkBool32;
const aPushconstantPipelineLayout:TVkPipelineLayout;
const aPushconstantShaderStageFlags:TVkShaderStageFlags;
const aPushconstantOffset:TVkUInt32;
const aPushconstantSize:TVkUInt32;
const aIndirectStateFlags:TVkIndirectStateFlagsNV;
const aIndexTypeCount:TVkUInt32;
const aPIndexTypes:PVkIndexType;
const aPIndexTypeValues:PVkUInt32);
{$endif}
end;
PPVkIndirectCommandsLayoutCreateInfoNV=^PVkIndirectCommandsLayoutCreateInfoNV;
PVkIndirectCommandsLayoutCreateInfoNV=^TVkIndirectCommandsLayoutCreateInfoNV;
TVkIndirectCommandsLayoutCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkIndirectCommandsLayoutUsageFlagsNV;
pipelineBindPoint:TVkPipelineBindPoint;
tokenCount:TVkUInt32;
pTokens:PVkIndirectCommandsLayoutTokenNV;
streamCount:TVkUInt32;
pStreamStrides:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkIndirectCommandsLayoutUsageFlagsNV;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aTokenCount:TVkUInt32;
const aPTokens:PVkIndirectCommandsLayoutTokenNV;
const aStreamCount:TVkUInt32;
const aPStreamStrides:PVkUInt32);
{$endif}
end;
PPVkGeneratedCommandsInfoNV=^PVkGeneratedCommandsInfoNV;
PVkGeneratedCommandsInfoNV=^TVkGeneratedCommandsInfoNV;
TVkGeneratedCommandsInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
pNext:PVkVoid;
pipelineBindPoint:TVkPipelineBindPoint;
pipeline:TVkPipeline;
indirectCommandsLayout:TVkIndirectCommandsLayoutNV;
streamCount:TVkUInt32;
pStreams:PVkIndirectCommandsStreamNV;
sequencesCount:TVkUInt32;
preprocessBuffer:TVkBuffer;
preprocessOffset:TVkDeviceSize;
preprocessSize:TVkDeviceSize;
sequencesCountBuffer:TVkBuffer;
sequencesCountOffset:TVkDeviceSize;
sequencesIndexBuffer:TVkBuffer;
sequencesIndexOffset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipeline:TVkPipeline;
const aIndirectCommandsLayout:TVkIndirectCommandsLayoutNV;
const aStreamCount:TVkUInt32;
const aPStreams:PVkIndirectCommandsStreamNV;
const aSequencesCount:TVkUInt32;
const aPreprocessBuffer:TVkBuffer;
const aPreprocessOffset:TVkDeviceSize;
const aPreprocessSize:TVkDeviceSize;
const aSequencesCountBuffer:TVkBuffer;
const aSequencesCountOffset:TVkDeviceSize;
const aSequencesIndexBuffer:TVkBuffer;
const aSequencesIndexOffset:TVkDeviceSize);
{$endif}
end;
PPVkGeneratedCommandsMemoryRequirementsInfoNV=^PVkGeneratedCommandsMemoryRequirementsInfoNV;
PVkGeneratedCommandsMemoryRequirementsInfoNV=^TVkGeneratedCommandsMemoryRequirementsInfoNV;
TVkGeneratedCommandsMemoryRequirementsInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
pNext:PVkVoid;
pipelineBindPoint:TVkPipelineBindPoint;
pipeline:TVkPipeline;
indirectCommandsLayout:TVkIndirectCommandsLayoutNV;
maxSequencesCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipeline:TVkPipeline;
const aIndirectCommandsLayout:TVkIndirectCommandsLayoutNV;
const aMaxSequencesCount:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceFeatures2=^PVkPhysicalDeviceFeatures2;
PVkPhysicalDeviceFeatures2=^TVkPhysicalDeviceFeatures2;
TVkPhysicalDeviceFeatures2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
pNext:PVkVoid;
features:TVkPhysicalDeviceFeatures;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFeatures:TVkPhysicalDeviceFeatures);
{$endif}
end;
PPVkPhysicalDeviceFeatures2KHR=^PVkPhysicalDeviceFeatures2KHR;
PVkPhysicalDeviceFeatures2KHR=^TVkPhysicalDeviceFeatures2KHR;
TVkPhysicalDeviceFeatures2KHR=TVkPhysicalDeviceFeatures2;
PPVkPhysicalDeviceProperties2=^PVkPhysicalDeviceProperties2;
PVkPhysicalDeviceProperties2=^TVkPhysicalDeviceProperties2;
TVkPhysicalDeviceProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
pNext:PVkVoid;
properties:TVkPhysicalDeviceProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProperties:TVkPhysicalDeviceProperties);
{$endif}
end;
PPVkPhysicalDeviceProperties2KHR=^PVkPhysicalDeviceProperties2KHR;
PVkPhysicalDeviceProperties2KHR=^TVkPhysicalDeviceProperties2KHR;
TVkPhysicalDeviceProperties2KHR=TVkPhysicalDeviceProperties2;
PPVkFormatProperties2=^PVkFormatProperties2;
PVkFormatProperties2=^TVkFormatProperties2;
TVkFormatProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
pNext:PVkVoid;
formatProperties:TVkFormatProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormatProperties:TVkFormatProperties);
{$endif}
end;
PPVkFormatProperties2KHR=^PVkFormatProperties2KHR;
PVkFormatProperties2KHR=^TVkFormatProperties2KHR;
TVkFormatProperties2KHR=TVkFormatProperties2;
PPVkImageFormatProperties2=^PVkImageFormatProperties2;
PVkImageFormatProperties2=^TVkImageFormatProperties2;
TVkImageFormatProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
pNext:PVkVoid;
imageFormatProperties:TVkImageFormatProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageFormatProperties:TVkImageFormatProperties);
{$endif}
end;
PPVkImageFormatProperties2KHR=^PVkImageFormatProperties2KHR;
PVkImageFormatProperties2KHR=^TVkImageFormatProperties2KHR;
TVkImageFormatProperties2KHR=TVkImageFormatProperties2;
PPVkPhysicalDeviceImageFormatInfo2=^PVkPhysicalDeviceImageFormatInfo2;
PVkPhysicalDeviceImageFormatInfo2=^TVkPhysicalDeviceImageFormatInfo2;
TVkPhysicalDeviceImageFormatInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
pNext:PVkVoid;
format:TVkFormat;
type_:TVkImageType;
tiling:TVkImageTiling;
usage:TVkImageUsageFlags;
flags:TVkImageCreateFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat;
const aType_:TVkImageType;
const aTiling:TVkImageTiling;
const aUsage:TVkImageUsageFlags;
const aFlags:TVkImageCreateFlags);
{$endif}
end;
PPVkPhysicalDeviceImageFormatInfo2KHR=^PVkPhysicalDeviceImageFormatInfo2KHR;
PVkPhysicalDeviceImageFormatInfo2KHR=^TVkPhysicalDeviceImageFormatInfo2KHR;
TVkPhysicalDeviceImageFormatInfo2KHR=TVkPhysicalDeviceImageFormatInfo2;
PPVkQueueFamilyProperties2=^PVkQueueFamilyProperties2;
PVkQueueFamilyProperties2=^TVkQueueFamilyProperties2;
TVkQueueFamilyProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
pNext:PVkVoid;
queueFamilyProperties:TVkQueueFamilyProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aQueueFamilyProperties:TVkQueueFamilyProperties);
{$endif}
end;
PPVkQueueFamilyProperties2KHR=^PVkQueueFamilyProperties2KHR;
PVkQueueFamilyProperties2KHR=^TVkQueueFamilyProperties2KHR;
TVkQueueFamilyProperties2KHR=TVkQueueFamilyProperties2;
PPVkPhysicalDeviceMemoryProperties2=^PVkPhysicalDeviceMemoryProperties2;
PVkPhysicalDeviceMemoryProperties2=^TVkPhysicalDeviceMemoryProperties2;
TVkPhysicalDeviceMemoryProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
pNext:PVkVoid;
memoryProperties:TVkPhysicalDeviceMemoryProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryProperties:TVkPhysicalDeviceMemoryProperties);
{$endif}
end;
PPVkPhysicalDeviceMemoryProperties2KHR=^PVkPhysicalDeviceMemoryProperties2KHR;
PVkPhysicalDeviceMemoryProperties2KHR=^TVkPhysicalDeviceMemoryProperties2KHR;
TVkPhysicalDeviceMemoryProperties2KHR=TVkPhysicalDeviceMemoryProperties2;
PPVkSparseImageFormatProperties2=^PVkSparseImageFormatProperties2;
PVkSparseImageFormatProperties2=^TVkSparseImageFormatProperties2;
TVkSparseImageFormatProperties2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
pNext:PVkVoid;
properties:TVkSparseImageFormatProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProperties:TVkSparseImageFormatProperties);
{$endif}
end;
PPVkSparseImageFormatProperties2KHR=^PVkSparseImageFormatProperties2KHR;
PVkSparseImageFormatProperties2KHR=^TVkSparseImageFormatProperties2KHR;
TVkSparseImageFormatProperties2KHR=TVkSparseImageFormatProperties2;
PPVkPhysicalDeviceSparseImageFormatInfo2=^PVkPhysicalDeviceSparseImageFormatInfo2;
PVkPhysicalDeviceSparseImageFormatInfo2=^TVkPhysicalDeviceSparseImageFormatInfo2;
TVkPhysicalDeviceSparseImageFormatInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
pNext:PVkVoid;
format:TVkFormat;
type_:TVkImageType;
samples:TVkSampleCountFlagBits;
usage:TVkImageUsageFlags;
tiling:TVkImageTiling;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat;
const aType_:TVkImageType;
const aSamples:TVkSampleCountFlagBits;
const aUsage:TVkImageUsageFlags;
const aTiling:TVkImageTiling);
{$endif}
end;
PPVkPhysicalDeviceSparseImageFormatInfo2KHR=^PVkPhysicalDeviceSparseImageFormatInfo2KHR;
PVkPhysicalDeviceSparseImageFormatInfo2KHR=^TVkPhysicalDeviceSparseImageFormatInfo2KHR;
TVkPhysicalDeviceSparseImageFormatInfo2KHR=TVkPhysicalDeviceSparseImageFormatInfo2;
PPVkPhysicalDevicePushDescriptorPropertiesKHR=^PVkPhysicalDevicePushDescriptorPropertiesKHR;
PVkPhysicalDevicePushDescriptorPropertiesKHR=^TVkPhysicalDevicePushDescriptorPropertiesKHR;
TVkPhysicalDevicePushDescriptorPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
pNext:PVkVoid;
maxPushDescriptors:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxPushDescriptors:TVkUInt32);
{$endif}
end;
PPVkConformanceVersion=^PVkConformanceVersion;
PVkConformanceVersion=^TVkConformanceVersion;
TVkConformanceVersion=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
major:TVkUInt8;
minor:TVkUInt8;
subminor:TVkUInt8;
patch:TVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMajor:TVkUInt8;
const aMinor:TVkUInt8;
const aSubminor:TVkUInt8;
const aPatch:TVkUInt8);
{$endif}
end;
PPVkConformanceVersionKHR=^PVkConformanceVersionKHR;
PVkConformanceVersionKHR=^TVkConformanceVersionKHR;
TVkConformanceVersionKHR=TVkConformanceVersion;
PPVkPhysicalDeviceDriverProperties=^PVkPhysicalDeviceDriverProperties;
PVkPhysicalDeviceDriverProperties=^TVkPhysicalDeviceDriverProperties;
TVkPhysicalDeviceDriverProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
pNext:PVkVoid;
driverID:TVkDriverId;
driverName:array[0..VK_MAX_DRIVER_NAME_SIZE-1] of TVkChar;
driverInfo:array[0..VK_MAX_DRIVER_INFO_SIZE-1] of TVkChar;
conformanceVersion:TVkConformanceVersion;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDriverID:TVkDriverId;
const aDriverName:TVkCharString;
const aDriverInfo:TVkCharString;
const aConformanceVersion:TVkConformanceVersion);
{$endif}
end;
PPVkPhysicalDeviceDriverPropertiesKHR=^PVkPhysicalDeviceDriverPropertiesKHR;
PVkPhysicalDeviceDriverPropertiesKHR=^TVkPhysicalDeviceDriverPropertiesKHR;
TVkPhysicalDeviceDriverPropertiesKHR=TVkPhysicalDeviceDriverProperties;
PPVkRectLayerKHR=^PVkRectLayerKHR;
PVkRectLayerKHR=^TVkRectLayerKHR;
TVkRectLayerKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
offset:TVkOffset2D;
extent:TVkExtent2D;
layer:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOffset:TVkOffset2D;
const aExtent:TVkExtent2D;
const aLayer:TVkUInt32);
{$endif}
end;
PPVkPresentRegionKHR=^PVkPresentRegionKHR;
PVkPresentRegionKHR=^TVkPresentRegionKHR;
TVkPresentRegionKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
rectangleCount:TVkUInt32;
pRectangles:PVkRectLayerKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRectangleCount:TVkUInt32;
const aPRectangles:PVkRectLayerKHR);
{$endif}
end;
PPVkPresentRegionsKHR=^PVkPresentRegionsKHR;
PVkPresentRegionsKHR=^TVkPresentRegionsKHR;
TVkPresentRegionsKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
pNext:PVkVoid;
swapchainCount:TVkUInt32;
pRegions:PVkPresentRegionKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchainCount:TVkUInt32;
const aPRegions:PVkPresentRegionKHR);
{$endif}
end;
PPVkPhysicalDeviceVariablePointersFeatures=^PVkPhysicalDeviceVariablePointersFeatures;
PVkPhysicalDeviceVariablePointersFeatures=^TVkPhysicalDeviceVariablePointersFeatures;
TVkPhysicalDeviceVariablePointersFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
pNext:PVkVoid;
variablePointersStorageBuffer:TVkBool32;
variablePointers:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVariablePointersStorageBuffer:TVkBool32;
const aVariablePointers:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVariablePointersFeaturesKHR=^PVkPhysicalDeviceVariablePointersFeaturesKHR;
PVkPhysicalDeviceVariablePointersFeaturesKHR=^TVkPhysicalDeviceVariablePointersFeaturesKHR;
TVkPhysicalDeviceVariablePointersFeaturesKHR=TVkPhysicalDeviceVariablePointersFeatures;
PPVkPhysicalDeviceVariablePointerFeaturesKHR=^PVkPhysicalDeviceVariablePointerFeaturesKHR;
PVkPhysicalDeviceVariablePointerFeaturesKHR=^TVkPhysicalDeviceVariablePointerFeaturesKHR;
TVkPhysicalDeviceVariablePointerFeaturesKHR=TVkPhysicalDeviceVariablePointersFeatures;
PPVkPhysicalDeviceVariablePointerFeatures=^PVkPhysicalDeviceVariablePointerFeatures;
PVkPhysicalDeviceVariablePointerFeatures=^TVkPhysicalDeviceVariablePointerFeatures;
TVkPhysicalDeviceVariablePointerFeatures=TVkPhysicalDeviceVariablePointersFeatures;
PPVkExternalMemoryProperties=^PVkExternalMemoryProperties;
PVkExternalMemoryProperties=^TVkExternalMemoryProperties;
TVkExternalMemoryProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
externalMemoryFeatures:TVkExternalMemoryFeatureFlags;
exportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlags;
compatibleHandleTypes:TVkExternalMemoryHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExternalMemoryFeatures:TVkExternalMemoryFeatureFlags;
const aExportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalMemoryHandleTypeFlags);
{$endif}
end;
PPVkExternalMemoryPropertiesKHR=^PVkExternalMemoryPropertiesKHR;
PVkExternalMemoryPropertiesKHR=^TVkExternalMemoryPropertiesKHR;
TVkExternalMemoryPropertiesKHR=TVkExternalMemoryProperties;
PPVkPhysicalDeviceExternalImageFormatInfo=^PVkPhysicalDeviceExternalImageFormatInfo;
PVkPhysicalDeviceExternalImageFormatInfo=^TVkPhysicalDeviceExternalImageFormatInfo;
TVkPhysicalDeviceExternalImageFormatInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceExternalImageFormatInfoKHR=^PVkPhysicalDeviceExternalImageFormatInfoKHR;
PVkPhysicalDeviceExternalImageFormatInfoKHR=^TVkPhysicalDeviceExternalImageFormatInfoKHR;
TVkPhysicalDeviceExternalImageFormatInfoKHR=TVkPhysicalDeviceExternalImageFormatInfo;
PPVkExternalImageFormatProperties=^PVkExternalImageFormatProperties;
PVkExternalImageFormatProperties=^TVkExternalImageFormatProperties;
TVkExternalImageFormatProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
pNext:PVkVoid;
externalMemoryProperties:TVkExternalMemoryProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExternalMemoryProperties:TVkExternalMemoryProperties);
{$endif}
end;
PPVkExternalImageFormatPropertiesKHR=^PVkExternalImageFormatPropertiesKHR;
PVkExternalImageFormatPropertiesKHR=^TVkExternalImageFormatPropertiesKHR;
TVkExternalImageFormatPropertiesKHR=TVkExternalImageFormatProperties;
PPVkPhysicalDeviceExternalBufferInfo=^PVkPhysicalDeviceExternalBufferInfo;
PVkPhysicalDeviceExternalBufferInfo=^TVkPhysicalDeviceExternalBufferInfo;
TVkPhysicalDeviceExternalBufferInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
pNext:PVkVoid;
flags:TVkBufferCreateFlags;
usage:TVkBufferUsageFlags;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkBufferCreateFlags;
const aUsage:TVkBufferUsageFlags;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceExternalBufferInfoKHR=^PVkPhysicalDeviceExternalBufferInfoKHR;
PVkPhysicalDeviceExternalBufferInfoKHR=^TVkPhysicalDeviceExternalBufferInfoKHR;
TVkPhysicalDeviceExternalBufferInfoKHR=TVkPhysicalDeviceExternalBufferInfo;
PPVkExternalBufferProperties=^PVkExternalBufferProperties;
PVkExternalBufferProperties=^TVkExternalBufferProperties;
TVkExternalBufferProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
pNext:PVkVoid;
externalMemoryProperties:TVkExternalMemoryProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExternalMemoryProperties:TVkExternalMemoryProperties);
{$endif}
end;
PPVkExternalBufferPropertiesKHR=^PVkExternalBufferPropertiesKHR;
PVkExternalBufferPropertiesKHR=^TVkExternalBufferPropertiesKHR;
TVkExternalBufferPropertiesKHR=TVkExternalBufferProperties;
PPVkPhysicalDeviceIDProperties=^PVkPhysicalDeviceIDProperties;
PVkPhysicalDeviceIDProperties=^TVkPhysicalDeviceIDProperties;
TVkPhysicalDeviceIDProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
pNext:PVkVoid;
deviceUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
driverUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
deviceLUID:array[0..VK_LUID_SIZE-1] of TVkUInt8;
deviceNodeMask:TVkUInt32;
deviceLUIDValid:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceUUID:array of TVkUInt8;
const aDriverUUID:array of TVkUInt8;
const aDeviceLUID:array of TVkUInt8;
const aDeviceNodeMask:TVkUInt32;
const aDeviceLUIDValid:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceIDPropertiesKHR=^PVkPhysicalDeviceIDPropertiesKHR;
PVkPhysicalDeviceIDPropertiesKHR=^TVkPhysicalDeviceIDPropertiesKHR;
TVkPhysicalDeviceIDPropertiesKHR=TVkPhysicalDeviceIDProperties;
PPVkExternalMemoryImageCreateInfo=^PVkExternalMemoryImageCreateInfo;
PVkExternalMemoryImageCreateInfo=^TVkExternalMemoryImageCreateInfo;
TVkExternalMemoryImageCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
pNext:PVkVoid;
handleTypes:TVkExternalMemoryHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
{$endif}
end;
PPVkExternalMemoryImageCreateInfoKHR=^PVkExternalMemoryImageCreateInfoKHR;
PVkExternalMemoryImageCreateInfoKHR=^TVkExternalMemoryImageCreateInfoKHR;
TVkExternalMemoryImageCreateInfoKHR=TVkExternalMemoryImageCreateInfo;
PPVkExternalMemoryBufferCreateInfo=^PVkExternalMemoryBufferCreateInfo;
PVkExternalMemoryBufferCreateInfo=^TVkExternalMemoryBufferCreateInfo;
TVkExternalMemoryBufferCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
pNext:PVkVoid;
handleTypes:TVkExternalMemoryHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
{$endif}
end;
PPVkExternalMemoryBufferCreateInfoKHR=^PVkExternalMemoryBufferCreateInfoKHR;
PVkExternalMemoryBufferCreateInfoKHR=^TVkExternalMemoryBufferCreateInfoKHR;
TVkExternalMemoryBufferCreateInfoKHR=TVkExternalMemoryBufferCreateInfo;
PPVkExportMemoryAllocateInfo=^PVkExportMemoryAllocateInfo;
PVkExportMemoryAllocateInfo=^TVkExportMemoryAllocateInfo;
TVkExportMemoryAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
pNext:PVkVoid;
handleTypes:TVkExternalMemoryHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
{$endif}
end;
PPVkExportMemoryAllocateInfoKHR=^PVkExportMemoryAllocateInfoKHR;
PVkExportMemoryAllocateInfoKHR=^TVkExportMemoryAllocateInfoKHR;
TVkExportMemoryAllocateInfoKHR=TVkExportMemoryAllocateInfo;
PPVkImportMemoryWin32HandleInfoKHR=^PVkImportMemoryWin32HandleInfoKHR;
PVkImportMemoryWin32HandleInfoKHR=^TVkImportMemoryWin32HandleInfoKHR;
TVkImportMemoryWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagBits;
handle:THANDLE;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
{$endif}
end;
{$ifdef Windows}
PPVkExportMemoryWin32HandleInfoKHR=^PVkExportMemoryWin32HandleInfoKHR;
PVkExportMemoryWin32HandleInfoKHR=^TVkExportMemoryWin32HandleInfoKHR;
TVkExportMemoryWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
pAttributes:PSecurityAttributes;
dwAccess:TVkUInt32;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
{$endif}
end;
{$endif}
{$ifdef Fuchsia}
PPVkImportMemoryZirconHandleInfoFUCHSIA=^PVkImportMemoryZirconHandleInfoFUCHSIA;
PVkImportMemoryZirconHandleInfoFUCHSIA=^TVkImportMemoryZirconHandleInfoFUCHSIA;
TVkImportMemoryZirconHandleInfoFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagBits;
handle:TVkFuchsiaZXHandle;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aHandle:TVkFuchsiaZXHandle);
{$endif}
end;
{$endif}
PPVkMemoryZirconHandlePropertiesFUCHSIA=^PVkMemoryZirconHandlePropertiesFUCHSIA;
PVkMemoryZirconHandlePropertiesFUCHSIA=^TVkMemoryZirconHandlePropertiesFUCHSIA;
TVkMemoryZirconHandlePropertiesFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
pNext:PVkVoid;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
PPVkMemoryGetZirconHandleInfoFUCHSIA=^PVkMemoryGetZirconHandleInfoFUCHSIA;
PVkMemoryGetZirconHandleInfoFUCHSIA=^TVkMemoryGetZirconHandleInfoFUCHSIA;
TVkMemoryGetZirconHandleInfoFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
pNext:PVkVoid;
memory:TVkDeviceMemory;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
PPVkMemoryWin32HandlePropertiesKHR=^PVkMemoryWin32HandlePropertiesKHR;
PVkMemoryWin32HandlePropertiesKHR=^TVkMemoryWin32HandlePropertiesKHR;
TVkMemoryWin32HandlePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
pNext:PVkVoid;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
PPVkMemoryGetWin32HandleInfoKHR=^PVkMemoryGetWin32HandleInfoKHR;
PVkMemoryGetWin32HandleInfoKHR=^TVkMemoryGetWin32HandleInfoKHR;
TVkMemoryGetWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
memory:TVkDeviceMemory;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
PPVkImportMemoryFdInfoKHR=^PVkImportMemoryFdInfoKHR;
PVkImportMemoryFdInfoKHR=^TVkImportMemoryFdInfoKHR;
TVkImportMemoryFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagBits;
fd:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aFd:TVkInt32);
{$endif}
end;
PPVkMemoryFdPropertiesKHR=^PVkMemoryFdPropertiesKHR;
PVkMemoryFdPropertiesKHR=^TVkMemoryFdPropertiesKHR;
TVkMemoryFdPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
pNext:PVkVoid;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
PPVkMemoryGetFdInfoKHR=^PVkMemoryGetFdInfoKHR;
PVkMemoryGetFdInfoKHR=^TVkMemoryGetFdInfoKHR;
TVkMemoryGetFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
pNext:PVkVoid;
memory:TVkDeviceMemory;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
PPVkWin32KeyedMutexAcquireReleaseInfoKHR=^PVkWin32KeyedMutexAcquireReleaseInfoKHR;
PVkWin32KeyedMutexAcquireReleaseInfoKHR=^TVkWin32KeyedMutexAcquireReleaseInfoKHR;
TVkWin32KeyedMutexAcquireReleaseInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
pNext:PVkVoid;
acquireCount:TVkUInt32;
pAcquireSyncs:PVkDeviceMemory;
pAcquireKeys:PVkUInt64;
pAcquireTimeouts:PVkUInt32;
releaseCount:TVkUInt32;
pReleaseSyncs:PVkDeviceMemory;
pReleaseKeys:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAcquireCount:TVkUInt32;
const aPAcquireSyncs:PVkDeviceMemory;
const aPAcquireKeys:PVkUInt64;
const aPAcquireTimeouts:PVkUInt32;
const aReleaseCount:TVkUInt32;
const aPReleaseSyncs:PVkDeviceMemory;
const aPReleaseKeys:PVkUInt64);
{$endif}
end;
PPVkPhysicalDeviceExternalSemaphoreInfo=^PVkPhysicalDeviceExternalSemaphoreInfo;
PVkPhysicalDeviceExternalSemaphoreInfo=^TVkPhysicalDeviceExternalSemaphoreInfo;
TVkPhysicalDeviceExternalSemaphoreInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
pNext:PVkVoid;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceExternalSemaphoreInfoKHR=^PVkPhysicalDeviceExternalSemaphoreInfoKHR;
PVkPhysicalDeviceExternalSemaphoreInfoKHR=^TVkPhysicalDeviceExternalSemaphoreInfoKHR;
TVkPhysicalDeviceExternalSemaphoreInfoKHR=TVkPhysicalDeviceExternalSemaphoreInfo;
PPVkExternalSemaphoreProperties=^PVkExternalSemaphoreProperties;
PVkExternalSemaphoreProperties=^TVkExternalSemaphoreProperties;
TVkExternalSemaphoreProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
pNext:PVkVoid;
exportFromImportedHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
compatibleHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
externalSemaphoreFeatures:TVkExternalSemaphoreFeatureFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExportFromImportedHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
const aExternalSemaphoreFeatures:TVkExternalSemaphoreFeatureFlags);
{$endif}
end;
PPVkExternalSemaphorePropertiesKHR=^PVkExternalSemaphorePropertiesKHR;
PVkExternalSemaphorePropertiesKHR=^TVkExternalSemaphorePropertiesKHR;
TVkExternalSemaphorePropertiesKHR=TVkExternalSemaphoreProperties;
PPVkExportSemaphoreCreateInfo=^PVkExportSemaphoreCreateInfo;
PVkExportSemaphoreCreateInfo=^TVkExportSemaphoreCreateInfo;
TVkExportSemaphoreCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
pNext:PVkVoid;
handleTypes:TVkExternalSemaphoreHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalSemaphoreHandleTypeFlags);
{$endif}
end;
PPVkExportSemaphoreCreateInfoKHR=^PVkExportSemaphoreCreateInfoKHR;
PVkExportSemaphoreCreateInfoKHR=^TVkExportSemaphoreCreateInfoKHR;
TVkExportSemaphoreCreateInfoKHR=TVkExportSemaphoreCreateInfo;
PPVkImportSemaphoreWin32HandleInfoKHR=^PVkImportSemaphoreWin32HandleInfoKHR;
PVkImportSemaphoreWin32HandleInfoKHR=^TVkImportSemaphoreWin32HandleInfoKHR;
TVkImportSemaphoreWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
semaphore:TVkSemaphore;
flags:TVkSemaphoreImportFlags;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
handle:THANDLE;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
{$endif}
end;
{$ifdef Windows}
PPVkExportSemaphoreWin32HandleInfoKHR=^PVkExportSemaphoreWin32HandleInfoKHR;
PVkExportSemaphoreWin32HandleInfoKHR=^TVkExportSemaphoreWin32HandleInfoKHR;
TVkExportSemaphoreWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
pAttributes:PSecurityAttributes;
dwAccess:TVkUInt32;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
{$endif}
end;
{$endif}
PPVkD3D12FenceSubmitInfoKHR=^PVkD3D12FenceSubmitInfoKHR;
PVkD3D12FenceSubmitInfoKHR=^TVkD3D12FenceSubmitInfoKHR;
TVkD3D12FenceSubmitInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
pNext:PVkVoid;
waitSemaphoreValuesCount:TVkUInt32;
pWaitSemaphoreValues:PVkUInt64;
signalSemaphoreValuesCount:TVkUInt32;
pSignalSemaphoreValues:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreValuesCount:TVkUInt32;
const aPWaitSemaphoreValues:PVkUInt64;
const aSignalSemaphoreValuesCount:TVkUInt32;
const aPSignalSemaphoreValues:PVkUInt64);
{$endif}
end;
PPVkSemaphoreGetWin32HandleInfoKHR=^PVkSemaphoreGetWin32HandleInfoKHR;
PVkSemaphoreGetWin32HandleInfoKHR=^TVkSemaphoreGetWin32HandleInfoKHR;
TVkSemaphoreGetWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
semaphore:TVkSemaphore;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
{$endif}
end;
PPVkImportSemaphoreFdInfoKHR=^PVkImportSemaphoreFdInfoKHR;
PVkImportSemaphoreFdInfoKHR=^TVkImportSemaphoreFdInfoKHR;
TVkImportSemaphoreFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
pNext:PVkVoid;
semaphore:TVkSemaphore;
flags:TVkSemaphoreImportFlags;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
fd:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aFd:TVkInt32);
{$endif}
end;
PPVkSemaphoreGetFdInfoKHR=^PVkSemaphoreGetFdInfoKHR;
PVkSemaphoreGetFdInfoKHR=^TVkSemaphoreGetFdInfoKHR;
TVkSemaphoreGetFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
pNext:PVkVoid;
semaphore:TVkSemaphore;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
{$endif}
end;
{$ifdef Fuchsia}
PPVkImportSemaphoreZirconHandleInfoFUCHSIA=^PVkImportSemaphoreZirconHandleInfoFUCHSIA;
PVkImportSemaphoreZirconHandleInfoFUCHSIA=^TVkImportSemaphoreZirconHandleInfoFUCHSIA;
TVkImportSemaphoreZirconHandleInfoFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
pNext:PVkVoid;
semaphore:TVkSemaphore;
flags:TVkSemaphoreImportFlags;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
zirconHandle:TVkFuchsiaZXHandle;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aZirconHandle:TVkFuchsiaZXHandle);
{$endif}
end;
{$endif}
PPVkSemaphoreGetZirconHandleInfoFUCHSIA=^PVkSemaphoreGetZirconHandleInfoFUCHSIA;
PVkSemaphoreGetZirconHandleInfoFUCHSIA=^TVkSemaphoreGetZirconHandleInfoFUCHSIA;
TVkSemaphoreGetZirconHandleInfoFUCHSIA=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
pNext:PVkVoid;
semaphore:TVkSemaphore;
handleType:TVkExternalSemaphoreHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceExternalFenceInfo=^PVkPhysicalDeviceExternalFenceInfo;
PVkPhysicalDeviceExternalFenceInfo=^TVkPhysicalDeviceExternalFenceInfo;
TVkPhysicalDeviceExternalFenceInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
pNext:PVkVoid;
handleType:TVkExternalFenceHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalFenceHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceExternalFenceInfoKHR=^PVkPhysicalDeviceExternalFenceInfoKHR;
PVkPhysicalDeviceExternalFenceInfoKHR=^TVkPhysicalDeviceExternalFenceInfoKHR;
TVkPhysicalDeviceExternalFenceInfoKHR=TVkPhysicalDeviceExternalFenceInfo;
PPVkExternalFenceProperties=^PVkExternalFenceProperties;
PVkExternalFenceProperties=^TVkExternalFenceProperties;
TVkExternalFenceProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
pNext:PVkVoid;
exportFromImportedHandleTypes:TVkExternalFenceHandleTypeFlags;
compatibleHandleTypes:TVkExternalFenceHandleTypeFlags;
externalFenceFeatures:TVkExternalFenceFeatureFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExportFromImportedHandleTypes:TVkExternalFenceHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalFenceHandleTypeFlags;
const aExternalFenceFeatures:TVkExternalFenceFeatureFlags);
{$endif}
end;
PPVkExternalFencePropertiesKHR=^PVkExternalFencePropertiesKHR;
PVkExternalFencePropertiesKHR=^TVkExternalFencePropertiesKHR;
TVkExternalFencePropertiesKHR=TVkExternalFenceProperties;
PPVkExportFenceCreateInfo=^PVkExportFenceCreateInfo;
PVkExportFenceCreateInfo=^TVkExportFenceCreateInfo;
TVkExportFenceCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
pNext:PVkVoid;
handleTypes:TVkExternalFenceHandleTypeFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleTypes:TVkExternalFenceHandleTypeFlags);
{$endif}
end;
PPVkExportFenceCreateInfoKHR=^PVkExportFenceCreateInfoKHR;
PVkExportFenceCreateInfoKHR=^TVkExportFenceCreateInfoKHR;
TVkExportFenceCreateInfoKHR=TVkExportFenceCreateInfo;
PPVkImportFenceWin32HandleInfoKHR=^PVkImportFenceWin32HandleInfoKHR;
PVkImportFenceWin32HandleInfoKHR=^TVkImportFenceWin32HandleInfoKHR;
TVkImportFenceWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
fence:TVkFence;
flags:TVkFenceImportFlags;
handleType:TVkExternalFenceHandleTypeFlagBits;
handle:THANDLE;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFence:TVkFence;
const aFlags:TVkFenceImportFlags;
const aHandleType:TVkExternalFenceHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
{$endif}
end;
{$ifdef Windows}
PPVkExportFenceWin32HandleInfoKHR=^PVkExportFenceWin32HandleInfoKHR;
PVkExportFenceWin32HandleInfoKHR=^TVkExportFenceWin32HandleInfoKHR;
TVkExportFenceWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
pAttributes:PSecurityAttributes;
dwAccess:TVkUInt32;
name:PWideChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
{$endif}
end;
{$endif}
PPVkFenceGetWin32HandleInfoKHR=^PVkFenceGetWin32HandleInfoKHR;
PVkFenceGetWin32HandleInfoKHR=^TVkFenceGetWin32HandleInfoKHR;
TVkFenceGetWin32HandleInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
pNext:PVkVoid;
fence:TVkFence;
handleType:TVkExternalFenceHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFence:TVkFence;
const aHandleType:TVkExternalFenceHandleTypeFlagBits);
{$endif}
end;
PPVkImportFenceFdInfoKHR=^PVkImportFenceFdInfoKHR;
PVkImportFenceFdInfoKHR=^TVkImportFenceFdInfoKHR;
TVkImportFenceFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
pNext:PVkVoid;
fence:TVkFence;
flags:TVkFenceImportFlags;
handleType:TVkExternalFenceHandleTypeFlagBits;
fd:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFence:TVkFence;
const aFlags:TVkFenceImportFlags;
const aHandleType:TVkExternalFenceHandleTypeFlagBits;
const aFd:TVkInt32);
{$endif}
end;
PPVkFenceGetFdInfoKHR=^PVkFenceGetFdInfoKHR;
PVkFenceGetFdInfoKHR=^TVkFenceGetFdInfoKHR;
TVkFenceGetFdInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
pNext:PVkVoid;
fence:TVkFence;
handleType:TVkExternalFenceHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFence:TVkFence;
const aHandleType:TVkExternalFenceHandleTypeFlagBits);
{$endif}
end;
PPVkPhysicalDeviceMultiviewFeatures=^PVkPhysicalDeviceMultiviewFeatures;
PVkPhysicalDeviceMultiviewFeatures=^TVkPhysicalDeviceMultiviewFeatures;
TVkPhysicalDeviceMultiviewFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
pNext:PVkVoid;
multiview:TVkBool32;
multiviewGeometryShader:TVkBool32;
multiviewTessellationShader:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMultiview:TVkBool32;
const aMultiviewGeometryShader:TVkBool32;
const aMultiviewTessellationShader:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceMultiviewFeaturesKHR=^PVkPhysicalDeviceMultiviewFeaturesKHR;
PVkPhysicalDeviceMultiviewFeaturesKHR=^TVkPhysicalDeviceMultiviewFeaturesKHR;
TVkPhysicalDeviceMultiviewFeaturesKHR=TVkPhysicalDeviceMultiviewFeatures;
PPVkPhysicalDeviceMultiviewProperties=^PVkPhysicalDeviceMultiviewProperties;
PVkPhysicalDeviceMultiviewProperties=^TVkPhysicalDeviceMultiviewProperties;
TVkPhysicalDeviceMultiviewProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
pNext:PVkVoid;
maxMultiviewViewCount:TVkUInt32;
maxMultiviewInstanceIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxMultiviewViewCount:TVkUInt32;
const aMaxMultiviewInstanceIndex:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceMultiviewPropertiesKHR=^PVkPhysicalDeviceMultiviewPropertiesKHR;
PVkPhysicalDeviceMultiviewPropertiesKHR=^TVkPhysicalDeviceMultiviewPropertiesKHR;
TVkPhysicalDeviceMultiviewPropertiesKHR=TVkPhysicalDeviceMultiviewProperties;
PPVkRenderPassMultiviewCreateInfo=^PVkRenderPassMultiviewCreateInfo;
PVkRenderPassMultiviewCreateInfo=^TVkRenderPassMultiviewCreateInfo;
TVkRenderPassMultiviewCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
pNext:PVkVoid;
subpassCount:TVkUInt32;
pViewMasks:PVkUInt32;
dependencyCount:TVkUInt32;
pViewOffsets:PVkInt32;
correlationMaskCount:TVkUInt32;
pCorrelationMasks:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubpassCount:TVkUInt32;
const aPViewMasks:PVkUInt32;
const aDependencyCount:TVkUInt32;
const aPViewOffsets:PVkInt32;
const aCorrelationMaskCount:TVkUInt32;
const aPCorrelationMasks:PVkUInt32);
{$endif}
end;
PPVkRenderPassMultiviewCreateInfoKHR=^PVkRenderPassMultiviewCreateInfoKHR;
PVkRenderPassMultiviewCreateInfoKHR=^TVkRenderPassMultiviewCreateInfoKHR;
TVkRenderPassMultiviewCreateInfoKHR=TVkRenderPassMultiviewCreateInfo;
PPVkSurfaceCapabilities2EXT=^PVkSurfaceCapabilities2EXT;
PVkSurfaceCapabilities2EXT=^TVkSurfaceCapabilities2EXT;
TVkSurfaceCapabilities2EXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
pNext:PVkVoid;
minImageCount:TVkUInt32;
maxImageCount:TVkUInt32;
currentExtent:TVkExtent2D;
minImageExtent:TVkExtent2D;
maxImageExtent:TVkExtent2D;
maxImageArrayLayers:TVkUInt32;
supportedTransforms:TVkSurfaceTransformFlagsKHR;
currentTransform:TVkSurfaceTransformFlagBitsKHR;
supportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
supportedUsageFlags:TVkImageUsageFlags;
supportedSurfaceCounters:TVkSurfaceCounterFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinImageCount:TVkUInt32;
const aMaxImageCount:TVkUInt32;
const aCurrentExtent:TVkExtent2D;
const aMinImageExtent:TVkExtent2D;
const aMaxImageExtent:TVkExtent2D;
const aMaxImageArrayLayers:TVkUInt32;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aCurrentTransform:TVkSurfaceTransformFlagBitsKHR;
const aSupportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
const aSupportedUsageFlags:TVkImageUsageFlags;
const aSupportedSurfaceCounters:TVkSurfaceCounterFlagsEXT);
{$endif}
end;
PPVkDisplayPowerInfoEXT=^PVkDisplayPowerInfoEXT;
PVkDisplayPowerInfoEXT=^TVkDisplayPowerInfoEXT;
TVkDisplayPowerInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
pNext:PVkVoid;
powerState:TVkDisplayPowerStateEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPowerState:TVkDisplayPowerStateEXT);
{$endif}
end;
PPVkDeviceEventInfoEXT=^PVkDeviceEventInfoEXT;
PVkDeviceEventInfoEXT=^TVkDeviceEventInfoEXT;
TVkDeviceEventInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
pNext:PVkVoid;
deviceEvent:TVkDeviceEventTypeEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceEvent:TVkDeviceEventTypeEXT);
{$endif}
end;
PPVkDisplayEventInfoEXT=^PVkDisplayEventInfoEXT;
PVkDisplayEventInfoEXT=^TVkDisplayEventInfoEXT;
TVkDisplayEventInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
pNext:PVkVoid;
displayEvent:TVkDisplayEventTypeEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayEvent:TVkDisplayEventTypeEXT);
{$endif}
end;
PPVkSwapchainCounterCreateInfoEXT=^PVkSwapchainCounterCreateInfoEXT;
PVkSwapchainCounterCreateInfoEXT=^TVkSwapchainCounterCreateInfoEXT;
TVkSwapchainCounterCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
pNext:PVkVoid;
surfaceCounters:TVkSurfaceCounterFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSurfaceCounters:TVkSurfaceCounterFlagsEXT);
{$endif}
end;
PPVkPhysicalDeviceGroupProperties=^PVkPhysicalDeviceGroupProperties;
PVkPhysicalDeviceGroupProperties=^TVkPhysicalDeviceGroupProperties;
TVkPhysicalDeviceGroupProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
pNext:PVkVoid;
physicalDeviceCount:TVkUInt32;
physicalDevices:array[0..VK_MAX_DEVICE_GROUP_SIZE-1] of TVkPhysicalDevice;
subsetAllocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPhysicalDeviceCount:TVkUInt32;
const aPhysicalDevices:array of TVkPhysicalDevice;
const aSubsetAllocation:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceGroupPropertiesKHR=^PVkPhysicalDeviceGroupPropertiesKHR;
PVkPhysicalDeviceGroupPropertiesKHR=^TVkPhysicalDeviceGroupPropertiesKHR;
TVkPhysicalDeviceGroupPropertiesKHR=TVkPhysicalDeviceGroupProperties;
PPVkMemoryAllocateFlagsInfo=^PVkMemoryAllocateFlagsInfo;
PVkMemoryAllocateFlagsInfo=^TVkMemoryAllocateFlagsInfo;
TVkMemoryAllocateFlagsInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
pNext:PVkVoid;
flags:TVkMemoryAllocateFlags;
deviceMask:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkMemoryAllocateFlags;
const aDeviceMask:TVkUInt32);
{$endif}
end;
PPVkMemoryAllocateFlagsInfoKHR=^PVkMemoryAllocateFlagsInfoKHR;
PVkMemoryAllocateFlagsInfoKHR=^TVkMemoryAllocateFlagsInfoKHR;
TVkMemoryAllocateFlagsInfoKHR=TVkMemoryAllocateFlagsInfo;
PPVkBindBufferMemoryInfo=^PVkBindBufferMemoryInfo;
PVkBindBufferMemoryInfo=^TVkBindBufferMemoryInfo;
TVkBindBufferMemoryInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
pNext:PVkVoid;
buffer:TVkBuffer;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize);
{$endif}
end;
PPVkBindBufferMemoryInfoKHR=^PVkBindBufferMemoryInfoKHR;
PVkBindBufferMemoryInfoKHR=^TVkBindBufferMemoryInfoKHR;
TVkBindBufferMemoryInfoKHR=TVkBindBufferMemoryInfo;
PPVkBindBufferMemoryDeviceGroupInfo=^PVkBindBufferMemoryDeviceGroupInfo;
PVkBindBufferMemoryDeviceGroupInfo=^TVkBindBufferMemoryDeviceGroupInfo;
TVkBindBufferMemoryDeviceGroupInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
pNext:PVkVoid;
deviceIndexCount:TVkUInt32;
pDeviceIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32);
{$endif}
end;
PPVkBindBufferMemoryDeviceGroupInfoKHR=^PVkBindBufferMemoryDeviceGroupInfoKHR;
PVkBindBufferMemoryDeviceGroupInfoKHR=^TVkBindBufferMemoryDeviceGroupInfoKHR;
TVkBindBufferMemoryDeviceGroupInfoKHR=TVkBindBufferMemoryDeviceGroupInfo;
PPVkBindImageMemoryInfo=^PVkBindImageMemoryInfo;
PVkBindImageMemoryInfo=^TVkBindImageMemoryInfo;
TVkBindImageMemoryInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
pNext:PVkVoid;
image:TVkImage;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize);
{$endif}
end;
PPVkBindImageMemoryInfoKHR=^PVkBindImageMemoryInfoKHR;
PVkBindImageMemoryInfoKHR=^TVkBindImageMemoryInfoKHR;
TVkBindImageMemoryInfoKHR=TVkBindImageMemoryInfo;
PPVkBindImageMemoryDeviceGroupInfo=^PVkBindImageMemoryDeviceGroupInfo;
PVkBindImageMemoryDeviceGroupInfo=^TVkBindImageMemoryDeviceGroupInfo;
TVkBindImageMemoryDeviceGroupInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
pNext:PVkVoid;
deviceIndexCount:TVkUInt32;
pDeviceIndices:PVkUInt32;
splitInstanceBindRegionCount:TVkUInt32;
pSplitInstanceBindRegions:PVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32;
const aSplitInstanceBindRegionCount:TVkUInt32;
const aPSplitInstanceBindRegions:PVkRect2D);
{$endif}
end;
PPVkBindImageMemoryDeviceGroupInfoKHR=^PVkBindImageMemoryDeviceGroupInfoKHR;
PVkBindImageMemoryDeviceGroupInfoKHR=^TVkBindImageMemoryDeviceGroupInfoKHR;
TVkBindImageMemoryDeviceGroupInfoKHR=TVkBindImageMemoryDeviceGroupInfo;
PPVkDeviceGroupRenderPassBeginInfo=^PVkDeviceGroupRenderPassBeginInfo;
PVkDeviceGroupRenderPassBeginInfo=^TVkDeviceGroupRenderPassBeginInfo;
TVkDeviceGroupRenderPassBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
pNext:PVkVoid;
deviceMask:TVkUInt32;
deviceRenderAreaCount:TVkUInt32;
pDeviceRenderAreas:PVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceMask:TVkUInt32;
const aDeviceRenderAreaCount:TVkUInt32;
const aPDeviceRenderAreas:PVkRect2D);
{$endif}
end;
PPVkDeviceGroupRenderPassBeginInfoKHR=^PVkDeviceGroupRenderPassBeginInfoKHR;
PVkDeviceGroupRenderPassBeginInfoKHR=^TVkDeviceGroupRenderPassBeginInfoKHR;
TVkDeviceGroupRenderPassBeginInfoKHR=TVkDeviceGroupRenderPassBeginInfo;
PPVkDeviceGroupCommandBufferBeginInfo=^PVkDeviceGroupCommandBufferBeginInfo;
PVkDeviceGroupCommandBufferBeginInfo=^TVkDeviceGroupCommandBufferBeginInfo;
TVkDeviceGroupCommandBufferBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
pNext:PVkVoid;
deviceMask:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceMask:TVkUInt32);
{$endif}
end;
PPVkDeviceGroupCommandBufferBeginInfoKHR=^PVkDeviceGroupCommandBufferBeginInfoKHR;
PVkDeviceGroupCommandBufferBeginInfoKHR=^TVkDeviceGroupCommandBufferBeginInfoKHR;
TVkDeviceGroupCommandBufferBeginInfoKHR=TVkDeviceGroupCommandBufferBeginInfo;
PPVkDeviceGroupSubmitInfo=^PVkDeviceGroupSubmitInfo;
PVkDeviceGroupSubmitInfo=^TVkDeviceGroupSubmitInfo;
TVkDeviceGroupSubmitInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
pNext:PVkVoid;
waitSemaphoreCount:TVkUInt32;
pWaitSemaphoreDeviceIndices:PVkUInt32;
commandBufferCount:TVkUInt32;
pCommandBufferDeviceMasks:PVkUInt32;
signalSemaphoreCount:TVkUInt32;
pSignalSemaphoreDeviceIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphoreDeviceIndices:PVkUInt32;
const aCommandBufferCount:TVkUInt32;
const aPCommandBufferDeviceMasks:PVkUInt32;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphoreDeviceIndices:PVkUInt32);
{$endif}
end;
PPVkDeviceGroupSubmitInfoKHR=^PVkDeviceGroupSubmitInfoKHR;
PVkDeviceGroupSubmitInfoKHR=^TVkDeviceGroupSubmitInfoKHR;
TVkDeviceGroupSubmitInfoKHR=TVkDeviceGroupSubmitInfo;
PPVkDeviceGroupBindSparseInfo=^PVkDeviceGroupBindSparseInfo;
PVkDeviceGroupBindSparseInfo=^TVkDeviceGroupBindSparseInfo;
TVkDeviceGroupBindSparseInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
pNext:PVkVoid;
resourceDeviceIndex:TVkUInt32;
memoryDeviceIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aResourceDeviceIndex:TVkUInt32;
const aMemoryDeviceIndex:TVkUInt32);
{$endif}
end;
PPVkDeviceGroupBindSparseInfoKHR=^PVkDeviceGroupBindSparseInfoKHR;
PVkDeviceGroupBindSparseInfoKHR=^TVkDeviceGroupBindSparseInfoKHR;
TVkDeviceGroupBindSparseInfoKHR=TVkDeviceGroupBindSparseInfo;
PPVkDeviceGroupPresentCapabilitiesKHR=^PVkDeviceGroupPresentCapabilitiesKHR;
PVkDeviceGroupPresentCapabilitiesKHR=^TVkDeviceGroupPresentCapabilitiesKHR;
TVkDeviceGroupPresentCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
pNext:PVkVoid;
presentMask:array[0..VK_MAX_DEVICE_GROUP_SIZE-1] of TVkUInt32;
modes:TVkDeviceGroupPresentModeFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPresentMask:array of TVkUInt32;
const aModes:TVkDeviceGroupPresentModeFlagsKHR);
{$endif}
end;
PPVkImageSwapchainCreateInfoKHR=^PVkImageSwapchainCreateInfoKHR;
PVkImageSwapchainCreateInfoKHR=^TVkImageSwapchainCreateInfoKHR;
TVkImageSwapchainCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
pNext:PVkVoid;
swapchain:TVkSwapchainKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchain:TVkSwapchainKHR);
{$endif}
end;
PPVkBindImageMemorySwapchainInfoKHR=^PVkBindImageMemorySwapchainInfoKHR;
PVkBindImageMemorySwapchainInfoKHR=^TVkBindImageMemorySwapchainInfoKHR;
TVkBindImageMemorySwapchainInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
pNext:PVkVoid;
swapchain:TVkSwapchainKHR;
imageIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchain:TVkSwapchainKHR;
const aImageIndex:TVkUInt32);
{$endif}
end;
PPVkAcquireNextImageInfoKHR=^PVkAcquireNextImageInfoKHR;
PVkAcquireNextImageInfoKHR=^TVkAcquireNextImageInfoKHR;
TVkAcquireNextImageInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
pNext:PVkVoid;
swapchain:TVkSwapchainKHR;
timeout:TVkUInt64;
semaphore:TVkSemaphore;
fence:TVkFence;
deviceMask:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchain:TVkSwapchainKHR;
const aTimeout:TVkUInt64;
const aSemaphore:TVkSemaphore;
const aFence:TVkFence;
const aDeviceMask:TVkUInt32);
{$endif}
end;
PPVkDeviceGroupPresentInfoKHR=^PVkDeviceGroupPresentInfoKHR;
PVkDeviceGroupPresentInfoKHR=^TVkDeviceGroupPresentInfoKHR;
TVkDeviceGroupPresentInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
pNext:PVkVoid;
swapchainCount:TVkUInt32;
pDeviceMasks:PVkUInt32;
mode:TVkDeviceGroupPresentModeFlagBitsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchainCount:TVkUInt32;
const aPDeviceMasks:PVkUInt32;
const aMode:TVkDeviceGroupPresentModeFlagBitsKHR);
{$endif}
end;
PPVkDeviceGroupDeviceCreateInfo=^PVkDeviceGroupDeviceCreateInfo;
PVkDeviceGroupDeviceCreateInfo=^TVkDeviceGroupDeviceCreateInfo;
TVkDeviceGroupDeviceCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
pNext:PVkVoid;
physicalDeviceCount:TVkUInt32;
pPhysicalDevices:PVkPhysicalDevice;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPhysicalDeviceCount:TVkUInt32;
const aPPhysicalDevices:PVkPhysicalDevice);
{$endif}
end;
PPVkDeviceGroupDeviceCreateInfoKHR=^PVkDeviceGroupDeviceCreateInfoKHR;
PVkDeviceGroupDeviceCreateInfoKHR=^TVkDeviceGroupDeviceCreateInfoKHR;
TVkDeviceGroupDeviceCreateInfoKHR=TVkDeviceGroupDeviceCreateInfo;
PPVkDeviceGroupSwapchainCreateInfoKHR=^PVkDeviceGroupSwapchainCreateInfoKHR;
PVkDeviceGroupSwapchainCreateInfoKHR=^TVkDeviceGroupSwapchainCreateInfoKHR;
TVkDeviceGroupSwapchainCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
pNext:PVkVoid;
modes:TVkDeviceGroupPresentModeFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aModes:TVkDeviceGroupPresentModeFlagsKHR);
{$endif}
end;
PPVkDescriptorUpdateTemplateEntry=^PVkDescriptorUpdateTemplateEntry;
PVkDescriptorUpdateTemplateEntry=^TVkDescriptorUpdateTemplateEntry;
TVkDescriptorUpdateTemplateEntry=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
dstBinding:TVkUInt32;
dstArrayElement:TVkUInt32;
descriptorCount:TVkUInt32;
descriptorType:TVkDescriptorType;
offset:TVkSize;
stride:TVkSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aOffset:TVkSize;
const aStride:TVkSize);
{$endif}
end;
PPVkDescriptorUpdateTemplateEntryKHR=^PVkDescriptorUpdateTemplateEntryKHR;
PVkDescriptorUpdateTemplateEntryKHR=^TVkDescriptorUpdateTemplateEntryKHR;
TVkDescriptorUpdateTemplateEntryKHR=TVkDescriptorUpdateTemplateEntry;
PPVkDescriptorUpdateTemplateCreateInfo=^PVkDescriptorUpdateTemplateCreateInfo;
PVkDescriptorUpdateTemplateCreateInfo=^TVkDescriptorUpdateTemplateCreateInfo;
TVkDescriptorUpdateTemplateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
pNext:PVkVoid;
flags:TVkDescriptorUpdateTemplateCreateFlags;
descriptorUpdateEntryCount:TVkUInt32;
pDescriptorUpdateEntries:PVkDescriptorUpdateTemplateEntry;
templateType:TVkDescriptorUpdateTemplateType;
descriptorSetLayout:TVkDescriptorSetLayout;
pipelineBindPoint:TVkPipelineBindPoint;
pipelineLayout:TVkPipelineLayout;
set_:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDescriptorUpdateTemplateCreateFlags;
const aDescriptorUpdateEntryCount:TVkUInt32;
const aPDescriptorUpdateEntries:PVkDescriptorUpdateTemplateEntry;
const aTemplateType:TVkDescriptorUpdateTemplateType;
const aDescriptorSetLayout:TVkDescriptorSetLayout;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipelineLayout:TVkPipelineLayout;
const aSet_:TVkUInt32);
{$endif}
end;
PPVkDescriptorUpdateTemplateCreateInfoKHR=^PVkDescriptorUpdateTemplateCreateInfoKHR;
PVkDescriptorUpdateTemplateCreateInfoKHR=^TVkDescriptorUpdateTemplateCreateInfoKHR;
TVkDescriptorUpdateTemplateCreateInfoKHR=TVkDescriptorUpdateTemplateCreateInfo;
PPVkXYColorEXT=^PVkXYColorEXT;
PVkXYColorEXT=^TVkXYColorEXT;
TVkXYColorEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkFloat;
y:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkFloat;
const aY:TVkFloat);
{$endif}
end;
PPVkPhysicalDevicePresentIdFeaturesKHR=^PVkPhysicalDevicePresentIdFeaturesKHR;
PVkPhysicalDevicePresentIdFeaturesKHR=^TVkPhysicalDevicePresentIdFeaturesKHR;
TVkPhysicalDevicePresentIdFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
pNext:PVkVoid;
presentId:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPresentId:TVkBool32);
{$endif}
end;
PPVkPresentIdKHR=^PVkPresentIdKHR;
PVkPresentIdKHR=^TVkPresentIdKHR;
TVkPresentIdKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR
pNext:PVkVoid;
swapchainCount:TVkUInt32;
pPresentIds:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchainCount:TVkUInt32;
const aPPresentIds:PVkUInt64);
{$endif}
end;
PPVkPhysicalDevicePresentWaitFeaturesKHR=^PVkPhysicalDevicePresentWaitFeaturesKHR;
PVkPhysicalDevicePresentWaitFeaturesKHR=^TVkPhysicalDevicePresentWaitFeaturesKHR;
TVkPhysicalDevicePresentWaitFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
pNext:PVkVoid;
presentWait:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPresentWait:TVkBool32);
{$endif}
end;
PPVkHdrMetadataEXT=^PVkHdrMetadataEXT;
PVkHdrMetadataEXT=^TVkHdrMetadataEXT;
TVkHdrMetadataEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT
pNext:PVkVoid;
displayPrimaryRed:TVkXYColorEXT;
displayPrimaryGreen:TVkXYColorEXT;
displayPrimaryBlue:TVkXYColorEXT;
whitePoint:TVkXYColorEXT;
maxLuminance:TVkFloat;
minLuminance:TVkFloat;
maxContentLightLevel:TVkFloat;
maxFrameAverageLightLevel:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayPrimaryRed:TVkXYColorEXT;
const aDisplayPrimaryGreen:TVkXYColorEXT;
const aDisplayPrimaryBlue:TVkXYColorEXT;
const aWhitePoint:TVkXYColorEXT;
const aMaxLuminance:TVkFloat;
const aMinLuminance:TVkFloat;
const aMaxContentLightLevel:TVkFloat;
const aMaxFrameAverageLightLevel:TVkFloat);
{$endif}
end;
PPVkDisplayNativeHdrSurfaceCapabilitiesAMD=^PVkDisplayNativeHdrSurfaceCapabilitiesAMD;
PVkDisplayNativeHdrSurfaceCapabilitiesAMD=^TVkDisplayNativeHdrSurfaceCapabilitiesAMD;
TVkDisplayNativeHdrSurfaceCapabilitiesAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
pNext:PVkVoid;
localDimmingSupport:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLocalDimmingSupport:TVkBool32);
{$endif}
end;
PPVkSwapchainDisplayNativeHdrCreateInfoAMD=^PVkSwapchainDisplayNativeHdrCreateInfoAMD;
PVkSwapchainDisplayNativeHdrCreateInfoAMD=^TVkSwapchainDisplayNativeHdrCreateInfoAMD;
TVkSwapchainDisplayNativeHdrCreateInfoAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
pNext:PVkVoid;
localDimmingEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLocalDimmingEnable:TVkBool32);
{$endif}
end;
PPVkRefreshCycleDurationGOOGLE=^PVkRefreshCycleDurationGOOGLE;
PVkRefreshCycleDurationGOOGLE=^TVkRefreshCycleDurationGOOGLE;
TVkRefreshCycleDurationGOOGLE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
refreshDuration:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRefreshDuration:TVkUInt64);
{$endif}
end;
PPVkPastPresentationTimingGOOGLE=^PVkPastPresentationTimingGOOGLE;
PVkPastPresentationTimingGOOGLE=^TVkPastPresentationTimingGOOGLE;
TVkPastPresentationTimingGOOGLE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
presentID:TVkUInt32;
desiredPresentTime:TVkUInt64;
actualPresentTime:TVkUInt64;
earliestPresentTime:TVkUInt64;
presentMargin:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPresentID:TVkUInt32;
const aDesiredPresentTime:TVkUInt64;
const aActualPresentTime:TVkUInt64;
const aEarliestPresentTime:TVkUInt64;
const aPresentMargin:TVkUInt64);
{$endif}
end;
PPVkPresentTimeGOOGLE=^PVkPresentTimeGOOGLE;
PVkPresentTimeGOOGLE=^TVkPresentTimeGOOGLE;
TVkPresentTimeGOOGLE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
presentID:TVkUInt32;
desiredPresentTime:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPresentID:TVkUInt32;
const aDesiredPresentTime:TVkUInt64);
{$endif}
end;
PPVkPresentTimesInfoGOOGLE=^PVkPresentTimesInfoGOOGLE;
PVkPresentTimesInfoGOOGLE=^TVkPresentTimesInfoGOOGLE;
TVkPresentTimesInfoGOOGLE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
pNext:PVkVoid;
swapchainCount:TVkUInt32;
pTimes:PVkPresentTimeGOOGLE;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSwapchainCount:TVkUInt32;
const aPTimes:PVkPresentTimeGOOGLE);
{$endif}
end;
{$ifdef MoltenVK_IOS}
PPVkIOSSurfaceCreateInfoMVK=^PVkIOSSurfaceCreateInfoMVK;
PVkIOSSurfaceCreateInfoMVK=^TVkIOSSurfaceCreateInfoMVK;
TVkIOSSurfaceCreateInfoMVK=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
pNext:PVkVoid;
flags:TVkIOSSurfaceCreateFlagsMVK;
pView:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkIOSSurfaceCreateFlagsMVK;
const aPView:PVkVoid);
{$endif}
end;
{$endif}
{$ifdef MoltenVK_MacOS}
PPVkMacOSSurfaceCreateInfoMVK=^PVkMacOSSurfaceCreateInfoMVK;
PVkMacOSSurfaceCreateInfoMVK=^TVkMacOSSurfaceCreateInfoMVK;
TVkMacOSSurfaceCreateInfoMVK=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
pNext:PVkVoid;
flags:TVkMacOSSurfaceCreateFlagsMVK;
pView:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkMacOSSurfaceCreateFlagsMVK;
const aPView:PVkVoid);
{$endif}
end;
{$endif}
PPVkMetalSurfaceCreateInfoEXT=^PVkMetalSurfaceCreateInfoEXT;
PVkMetalSurfaceCreateInfoEXT=^TVkMetalSurfaceCreateInfoEXT;
TVkMetalSurfaceCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkMetalSurfaceCreateFlagsEXT;
pLayer:PVkCAMetalLayer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkMetalSurfaceCreateFlagsEXT;
const aPLayer:PVkCAMetalLayer);
{$endif}
end;
PPVkViewportWScalingNV=^PVkViewportWScalingNV;
PVkViewportWScalingNV=^TVkViewportWScalingNV;
TVkViewportWScalingNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
xcoeff:TVkFloat;
ycoeff:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aXcoeff:TVkFloat;
const aYcoeff:TVkFloat);
{$endif}
end;
PPVkPipelineViewportWScalingStateCreateInfoNV=^PVkPipelineViewportWScalingStateCreateInfoNV;
PVkPipelineViewportWScalingStateCreateInfoNV=^TVkPipelineViewportWScalingStateCreateInfoNV;
TVkPipelineViewportWScalingStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
pNext:PVkVoid;
viewportWScalingEnable:TVkBool32;
viewportCount:TVkUInt32;
pViewportWScalings:PVkViewportWScalingNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aViewportWScalingEnable:TVkBool32;
const aViewportCount:TVkUInt32;
const aPViewportWScalings:PVkViewportWScalingNV);
{$endif}
end;
PPVkViewportSwizzleNV=^PVkViewportSwizzleNV;
PVkViewportSwizzleNV=^TVkViewportSwizzleNV;
TVkViewportSwizzleNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkViewportCoordinateSwizzleNV;
y:TVkViewportCoordinateSwizzleNV;
z:TVkViewportCoordinateSwizzleNV;
w:TVkViewportCoordinateSwizzleNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkViewportCoordinateSwizzleNV;
const aY:TVkViewportCoordinateSwizzleNV;
const aZ:TVkViewportCoordinateSwizzleNV;
const aW:TVkViewportCoordinateSwizzleNV);
{$endif}
end;
PPVkPipelineViewportSwizzleStateCreateInfoNV=^PVkPipelineViewportSwizzleStateCreateInfoNV;
PVkPipelineViewportSwizzleStateCreateInfoNV=^TVkPipelineViewportSwizzleStateCreateInfoNV;
TVkPipelineViewportSwizzleStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkPipelineViewportSwizzleStateCreateFlagsNV;
viewportCount:TVkUInt32;
pViewportSwizzles:PVkViewportSwizzleNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineViewportSwizzleStateCreateFlagsNV;
const aViewportCount:TVkUInt32;
const aPViewportSwizzles:PVkViewportSwizzleNV);
{$endif}
end;
PPVkPhysicalDeviceDiscardRectanglePropertiesEXT=^PVkPhysicalDeviceDiscardRectanglePropertiesEXT;
PVkPhysicalDeviceDiscardRectanglePropertiesEXT=^TVkPhysicalDeviceDiscardRectanglePropertiesEXT;
TVkPhysicalDeviceDiscardRectanglePropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
pNext:PVkVoid;
maxDiscardRectangles:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxDiscardRectangles:TVkUInt32);
{$endif}
end;
PPVkPipelineDiscardRectangleStateCreateInfoEXT=^PVkPipelineDiscardRectangleStateCreateInfoEXT;
PVkPipelineDiscardRectangleStateCreateInfoEXT=^TVkPipelineDiscardRectangleStateCreateInfoEXT;
TVkPipelineDiscardRectangleStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkPipelineDiscardRectangleStateCreateFlagsEXT;
discardRectangleMode:TVkDiscardRectangleModeEXT;
discardRectangleCount:TVkUInt32;
pDiscardRectangles:PVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineDiscardRectangleStateCreateFlagsEXT;
const aDiscardRectangleMode:TVkDiscardRectangleModeEXT;
const aDiscardRectangleCount:TVkUInt32;
const aPDiscardRectangles:PVkRect2D);
{$endif}
end;
PPVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX=^PVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
PVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX=^TVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
TVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
pNext:PVkVoid;
perViewPositionAllComponents:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPerViewPositionAllComponents:TVkBool32);
{$endif}
end;
PPVkInputAttachmentAspectReference=^PVkInputAttachmentAspectReference;
PVkInputAttachmentAspectReference=^TVkInputAttachmentAspectReference;
TVkInputAttachmentAspectReference=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
subpass:TVkUInt32;
inputAttachmentIndex:TVkUInt32;
aspectMask:TVkImageAspectFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubpass:TVkUInt32;
const aInputAttachmentIndex:TVkUInt32;
const aAspectMask:TVkImageAspectFlags);
{$endif}
end;
PPVkInputAttachmentAspectReferenceKHR=^PVkInputAttachmentAspectReferenceKHR;
PVkInputAttachmentAspectReferenceKHR=^TVkInputAttachmentAspectReferenceKHR;
TVkInputAttachmentAspectReferenceKHR=TVkInputAttachmentAspectReference;
PPVkRenderPassInputAttachmentAspectCreateInfo=^PVkRenderPassInputAttachmentAspectCreateInfo;
PVkRenderPassInputAttachmentAspectCreateInfo=^TVkRenderPassInputAttachmentAspectCreateInfo;
TVkRenderPassInputAttachmentAspectCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
pNext:PVkVoid;
aspectReferenceCount:TVkUInt32;
pAspectReferences:PVkInputAttachmentAspectReference;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAspectReferenceCount:TVkUInt32;
const aPAspectReferences:PVkInputAttachmentAspectReference);
{$endif}
end;
PPVkRenderPassInputAttachmentAspectCreateInfoKHR=^PVkRenderPassInputAttachmentAspectCreateInfoKHR;
PVkRenderPassInputAttachmentAspectCreateInfoKHR=^TVkRenderPassInputAttachmentAspectCreateInfoKHR;
TVkRenderPassInputAttachmentAspectCreateInfoKHR=TVkRenderPassInputAttachmentAspectCreateInfo;
PPVkPhysicalDeviceSurfaceInfo2KHR=^PVkPhysicalDeviceSurfaceInfo2KHR;
PVkPhysicalDeviceSurfaceInfo2KHR=^TVkPhysicalDeviceSurfaceInfo2KHR;
TVkPhysicalDeviceSurfaceInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
pNext:PVkVoid;
surface:TVkSurfaceKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSurface:TVkSurfaceKHR);
{$endif}
end;
PPVkSurfaceCapabilities2KHR=^PVkSurfaceCapabilities2KHR;
PVkSurfaceCapabilities2KHR=^TVkSurfaceCapabilities2KHR;
TVkSurfaceCapabilities2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
pNext:PVkVoid;
surfaceCapabilities:TVkSurfaceCapabilitiesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSurfaceCapabilities:TVkSurfaceCapabilitiesKHR);
{$endif}
end;
PPVkSurfaceFormat2KHR=^PVkSurfaceFormat2KHR;
PVkSurfaceFormat2KHR=^TVkSurfaceFormat2KHR;
TVkSurfaceFormat2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
pNext:PVkVoid;
surfaceFormat:TVkSurfaceFormatKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSurfaceFormat:TVkSurfaceFormatKHR);
{$endif}
end;
PPVkDisplayProperties2KHR=^PVkDisplayProperties2KHR;
PVkDisplayProperties2KHR=^TVkDisplayProperties2KHR;
TVkDisplayProperties2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
pNext:PVkVoid;
displayProperties:TVkDisplayPropertiesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayProperties:TVkDisplayPropertiesKHR);
{$endif}
end;
PPVkDisplayPlaneProperties2KHR=^PVkDisplayPlaneProperties2KHR;
PVkDisplayPlaneProperties2KHR=^TVkDisplayPlaneProperties2KHR;
TVkDisplayPlaneProperties2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
pNext:PVkVoid;
displayPlaneProperties:TVkDisplayPlanePropertiesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayPlaneProperties:TVkDisplayPlanePropertiesKHR);
{$endif}
end;
PPVkDisplayModeProperties2KHR=^PVkDisplayModeProperties2KHR;
PVkDisplayModeProperties2KHR=^TVkDisplayModeProperties2KHR;
TVkDisplayModeProperties2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
pNext:PVkVoid;
displayModeProperties:TVkDisplayModePropertiesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDisplayModeProperties:TVkDisplayModePropertiesKHR);
{$endif}
end;
PPVkDisplayPlaneInfo2KHR=^PVkDisplayPlaneInfo2KHR;
PVkDisplayPlaneInfo2KHR=^TVkDisplayPlaneInfo2KHR;
TVkDisplayPlaneInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
pNext:PVkVoid;
mode:TVkDisplayModeKHR;
planeIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMode:TVkDisplayModeKHR;
const aPlaneIndex:TVkUInt32);
{$endif}
end;
PPVkDisplayPlaneCapabilities2KHR=^PVkDisplayPlaneCapabilities2KHR;
PVkDisplayPlaneCapabilities2KHR=^TVkDisplayPlaneCapabilities2KHR;
TVkDisplayPlaneCapabilities2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
pNext:PVkVoid;
capabilities:TVkDisplayPlaneCapabilitiesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCapabilities:TVkDisplayPlaneCapabilitiesKHR);
{$endif}
end;
PPVkSharedPresentSurfaceCapabilitiesKHR=^PVkSharedPresentSurfaceCapabilitiesKHR;
PVkSharedPresentSurfaceCapabilitiesKHR=^TVkSharedPresentSurfaceCapabilitiesKHR;
TVkSharedPresentSurfaceCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
pNext:PVkVoid;
sharedPresentSupportedUsageFlags:TVkImageUsageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSharedPresentSupportedUsageFlags:TVkImageUsageFlags);
{$endif}
end;
PPVkPhysicalDevice16BitStorageFeatures=^PVkPhysicalDevice16BitStorageFeatures;
PVkPhysicalDevice16BitStorageFeatures=^TVkPhysicalDevice16BitStorageFeatures;
TVkPhysicalDevice16BitStorageFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
pNext:PVkVoid;
storageBuffer16BitAccess:TVkBool32;
uniformAndStorageBuffer16BitAccess:TVkBool32;
storagePushConstant16:TVkBool32;
storageInputOutput16:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStorageBuffer16BitAccess:TVkBool32;
const aUniformAndStorageBuffer16BitAccess:TVkBool32;
const aStoragePushConstant16:TVkBool32;
const aStorageInputOutput16:TVkBool32);
{$endif}
end;
PPVkPhysicalDevice16BitStorageFeaturesKHR=^PVkPhysicalDevice16BitStorageFeaturesKHR;
PVkPhysicalDevice16BitStorageFeaturesKHR=^TVkPhysicalDevice16BitStorageFeaturesKHR;
TVkPhysicalDevice16BitStorageFeaturesKHR=TVkPhysicalDevice16BitStorageFeatures;
PPVkPhysicalDeviceSubgroupProperties=^PVkPhysicalDeviceSubgroupProperties;
PVkPhysicalDeviceSubgroupProperties=^TVkPhysicalDeviceSubgroupProperties;
TVkPhysicalDeviceSubgroupProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
pNext:PVkVoid;
subgroupSize:TVkUInt32;
supportedStages:TVkShaderStageFlags;
supportedOperations:TVkSubgroupFeatureFlags;
quadOperationsInAllStages:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubgroupSize:TVkUInt32;
const aSupportedStages:TVkShaderStageFlags;
const aSupportedOperations:TVkSubgroupFeatureFlags;
const aQuadOperationsInAllStages:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures=^PVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
PVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures=^TVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
TVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
pNext:PVkVoid;
shaderSubgroupExtendedTypes:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderSubgroupExtendedTypes:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR=^PVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
PVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR=^TVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
TVkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR=TVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
PPVkBufferMemoryRequirementsInfo2=^PVkBufferMemoryRequirementsInfo2;
PVkBufferMemoryRequirementsInfo2=^TVkBufferMemoryRequirementsInfo2;
TVkBufferMemoryRequirementsInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
pNext:PVkVoid;
buffer:TVkBuffer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer);
{$endif}
end;
PPVkBufferMemoryRequirementsInfo2KHR=^PVkBufferMemoryRequirementsInfo2KHR;
PVkBufferMemoryRequirementsInfo2KHR=^TVkBufferMemoryRequirementsInfo2KHR;
TVkBufferMemoryRequirementsInfo2KHR=TVkBufferMemoryRequirementsInfo2;
PPVkImageMemoryRequirementsInfo2=^PVkImageMemoryRequirementsInfo2;
PVkImageMemoryRequirementsInfo2=^TVkImageMemoryRequirementsInfo2;
TVkImageMemoryRequirementsInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
pNext:PVkVoid;
image:TVkImage;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage);
{$endif}
end;
PPVkImageMemoryRequirementsInfo2KHR=^PVkImageMemoryRequirementsInfo2KHR;
PVkImageMemoryRequirementsInfo2KHR=^TVkImageMemoryRequirementsInfo2KHR;
TVkImageMemoryRequirementsInfo2KHR=TVkImageMemoryRequirementsInfo2;
PPVkImageSparseMemoryRequirementsInfo2=^PVkImageSparseMemoryRequirementsInfo2;
PVkImageSparseMemoryRequirementsInfo2=^TVkImageSparseMemoryRequirementsInfo2;
TVkImageSparseMemoryRequirementsInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
pNext:PVkVoid;
image:TVkImage;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage);
{$endif}
end;
PPVkImageSparseMemoryRequirementsInfo2KHR=^PVkImageSparseMemoryRequirementsInfo2KHR;
PVkImageSparseMemoryRequirementsInfo2KHR=^TVkImageSparseMemoryRequirementsInfo2KHR;
TVkImageSparseMemoryRequirementsInfo2KHR=TVkImageSparseMemoryRequirementsInfo2;
PPVkMemoryRequirements2=^PVkMemoryRequirements2;
PVkMemoryRequirements2=^TVkMemoryRequirements2;
TVkMemoryRequirements2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
pNext:PVkVoid;
memoryRequirements:TVkMemoryRequirements;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryRequirements:TVkMemoryRequirements);
{$endif}
end;
PPVkMemoryRequirements2KHR=^PVkMemoryRequirements2KHR;
PVkMemoryRequirements2KHR=^TVkMemoryRequirements2KHR;
TVkMemoryRequirements2KHR=TVkMemoryRequirements2;
PPVkSparseImageMemoryRequirements2=^PVkSparseImageMemoryRequirements2;
PVkSparseImageMemoryRequirements2=^TVkSparseImageMemoryRequirements2;
TVkSparseImageMemoryRequirements2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
pNext:PVkVoid;
memoryRequirements:TVkSparseImageMemoryRequirements;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryRequirements:TVkSparseImageMemoryRequirements);
{$endif}
end;
PPVkSparseImageMemoryRequirements2KHR=^PVkSparseImageMemoryRequirements2KHR;
PVkSparseImageMemoryRequirements2KHR=^TVkSparseImageMemoryRequirements2KHR;
TVkSparseImageMemoryRequirements2KHR=TVkSparseImageMemoryRequirements2;
PPVkPhysicalDevicePointClippingProperties=^PVkPhysicalDevicePointClippingProperties;
PVkPhysicalDevicePointClippingProperties=^TVkPhysicalDevicePointClippingProperties;
TVkPhysicalDevicePointClippingProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
pNext:PVkVoid;
pointClippingBehavior:TVkPointClippingBehavior;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPointClippingBehavior:TVkPointClippingBehavior);
{$endif}
end;
PPVkPhysicalDevicePointClippingPropertiesKHR=^PVkPhysicalDevicePointClippingPropertiesKHR;
PVkPhysicalDevicePointClippingPropertiesKHR=^TVkPhysicalDevicePointClippingPropertiesKHR;
TVkPhysicalDevicePointClippingPropertiesKHR=TVkPhysicalDevicePointClippingProperties;
PPVkMemoryDedicatedRequirements=^PVkMemoryDedicatedRequirements;
PVkMemoryDedicatedRequirements=^TVkMemoryDedicatedRequirements;
TVkMemoryDedicatedRequirements=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
pNext:PVkVoid;
prefersDedicatedAllocation:TVkBool32;
requiresDedicatedAllocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPrefersDedicatedAllocation:TVkBool32;
const aRequiresDedicatedAllocation:TVkBool32);
{$endif}
end;
PPVkMemoryDedicatedRequirementsKHR=^PVkMemoryDedicatedRequirementsKHR;
PVkMemoryDedicatedRequirementsKHR=^TVkMemoryDedicatedRequirementsKHR;
TVkMemoryDedicatedRequirementsKHR=TVkMemoryDedicatedRequirements;
PPVkMemoryDedicatedAllocateInfo=^PVkMemoryDedicatedAllocateInfo;
PVkMemoryDedicatedAllocateInfo=^TVkMemoryDedicatedAllocateInfo;
TVkMemoryDedicatedAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
pNext:PVkVoid;
image:TVkImage;
buffer:TVkBuffer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImage:TVkImage;
const aBuffer:TVkBuffer);
{$endif}
end;
PPVkMemoryDedicatedAllocateInfoKHR=^PVkMemoryDedicatedAllocateInfoKHR;
PVkMemoryDedicatedAllocateInfoKHR=^TVkMemoryDedicatedAllocateInfoKHR;
TVkMemoryDedicatedAllocateInfoKHR=TVkMemoryDedicatedAllocateInfo;
PPVkImageViewUsageCreateInfo=^PVkImageViewUsageCreateInfo;
PVkImageViewUsageCreateInfo=^TVkImageViewUsageCreateInfo;
TVkImageViewUsageCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
pNext:PVkVoid;
usage:TVkImageUsageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aUsage:TVkImageUsageFlags);
{$endif}
end;
PPVkImageViewUsageCreateInfoKHR=^PVkImageViewUsageCreateInfoKHR;
PVkImageViewUsageCreateInfoKHR=^TVkImageViewUsageCreateInfoKHR;
TVkImageViewUsageCreateInfoKHR=TVkImageViewUsageCreateInfo;
PPVkPipelineTessellationDomainOriginStateCreateInfo=^PVkPipelineTessellationDomainOriginStateCreateInfo;
PVkPipelineTessellationDomainOriginStateCreateInfo=^TVkPipelineTessellationDomainOriginStateCreateInfo;
TVkPipelineTessellationDomainOriginStateCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
pNext:PVkVoid;
domainOrigin:TVkTessellationDomainOrigin;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDomainOrigin:TVkTessellationDomainOrigin);
{$endif}
end;
PPVkPipelineTessellationDomainOriginStateCreateInfoKHR=^PVkPipelineTessellationDomainOriginStateCreateInfoKHR;
PVkPipelineTessellationDomainOriginStateCreateInfoKHR=^TVkPipelineTessellationDomainOriginStateCreateInfoKHR;
TVkPipelineTessellationDomainOriginStateCreateInfoKHR=TVkPipelineTessellationDomainOriginStateCreateInfo;
PPVkSamplerYcbcrConversionInfo=^PVkSamplerYcbcrConversionInfo;
PVkSamplerYcbcrConversionInfo=^TVkSamplerYcbcrConversionInfo;
TVkSamplerYcbcrConversionInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
pNext:PVkVoid;
conversion:TVkSamplerYcbcrConversion;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConversion:TVkSamplerYcbcrConversion);
{$endif}
end;
PPVkSamplerYcbcrConversionInfoKHR=^PVkSamplerYcbcrConversionInfoKHR;
PVkSamplerYcbcrConversionInfoKHR=^TVkSamplerYcbcrConversionInfoKHR;
TVkSamplerYcbcrConversionInfoKHR=TVkSamplerYcbcrConversionInfo;
PPVkSamplerYcbcrConversionCreateInfo=^PVkSamplerYcbcrConversionCreateInfo;
PVkSamplerYcbcrConversionCreateInfo=^TVkSamplerYcbcrConversionCreateInfo;
TVkSamplerYcbcrConversionCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
pNext:PVkVoid;
format:TVkFormat;
ycbcrModel:TVkSamplerYcbcrModelConversion;
ycbcrRange:TVkSamplerYcbcrRange;
components:TVkComponentMapping;
xChromaOffset:TVkChromaLocation;
yChromaOffset:TVkChromaLocation;
chromaFilter:TVkFilter;
forceExplicitReconstruction:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat;
const aYcbcrModel:TVkSamplerYcbcrModelConversion;
const aYcbcrRange:TVkSamplerYcbcrRange;
const aComponents:TVkComponentMapping;
const aXChromaOffset:TVkChromaLocation;
const aYChromaOffset:TVkChromaLocation;
const aChromaFilter:TVkFilter;
const aForceExplicitReconstruction:TVkBool32);
{$endif}
end;
PPVkSamplerYcbcrConversionCreateInfoKHR=^PVkSamplerYcbcrConversionCreateInfoKHR;
PVkSamplerYcbcrConversionCreateInfoKHR=^TVkSamplerYcbcrConversionCreateInfoKHR;
TVkSamplerYcbcrConversionCreateInfoKHR=TVkSamplerYcbcrConversionCreateInfo;
PPVkBindImagePlaneMemoryInfo=^PVkBindImagePlaneMemoryInfo;
PVkBindImagePlaneMemoryInfo=^TVkBindImagePlaneMemoryInfo;
TVkBindImagePlaneMemoryInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
pNext:PVkVoid;
planeAspect:TVkImageAspectFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPlaneAspect:TVkImageAspectFlagBits);
{$endif}
end;
PPVkBindImagePlaneMemoryInfoKHR=^PVkBindImagePlaneMemoryInfoKHR;
PVkBindImagePlaneMemoryInfoKHR=^TVkBindImagePlaneMemoryInfoKHR;
TVkBindImagePlaneMemoryInfoKHR=TVkBindImagePlaneMemoryInfo;
PPVkImagePlaneMemoryRequirementsInfo=^PVkImagePlaneMemoryRequirementsInfo;
PVkImagePlaneMemoryRequirementsInfo=^TVkImagePlaneMemoryRequirementsInfo;
TVkImagePlaneMemoryRequirementsInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
pNext:PVkVoid;
planeAspect:TVkImageAspectFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPlaneAspect:TVkImageAspectFlagBits);
{$endif}
end;
PPVkImagePlaneMemoryRequirementsInfoKHR=^PVkImagePlaneMemoryRequirementsInfoKHR;
PVkImagePlaneMemoryRequirementsInfoKHR=^TVkImagePlaneMemoryRequirementsInfoKHR;
TVkImagePlaneMemoryRequirementsInfoKHR=TVkImagePlaneMemoryRequirementsInfo;
PPVkPhysicalDeviceSamplerYcbcrConversionFeatures=^PVkPhysicalDeviceSamplerYcbcrConversionFeatures;
PVkPhysicalDeviceSamplerYcbcrConversionFeatures=^TVkPhysicalDeviceSamplerYcbcrConversionFeatures;
TVkPhysicalDeviceSamplerYcbcrConversionFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
pNext:PVkVoid;
samplerYcbcrConversion:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSamplerYcbcrConversion:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR=^PVkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
PVkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR=^TVkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
TVkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR=TVkPhysicalDeviceSamplerYcbcrConversionFeatures;
PPVkSamplerYcbcrConversionImageFormatProperties=^PVkSamplerYcbcrConversionImageFormatProperties;
PVkSamplerYcbcrConversionImageFormatProperties=^TVkSamplerYcbcrConversionImageFormatProperties;
TVkSamplerYcbcrConversionImageFormatProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
pNext:PVkVoid;
combinedImageSamplerDescriptorCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCombinedImageSamplerDescriptorCount:TVkUInt32);
{$endif}
end;
PPVkSamplerYcbcrConversionImageFormatPropertiesKHR=^PVkSamplerYcbcrConversionImageFormatPropertiesKHR;
PVkSamplerYcbcrConversionImageFormatPropertiesKHR=^TVkSamplerYcbcrConversionImageFormatPropertiesKHR;
TVkSamplerYcbcrConversionImageFormatPropertiesKHR=TVkSamplerYcbcrConversionImageFormatProperties;
PPVkTextureLODGatherFormatPropertiesAMD=^PVkTextureLODGatherFormatPropertiesAMD;
PVkTextureLODGatherFormatPropertiesAMD=^TVkTextureLODGatherFormatPropertiesAMD;
TVkTextureLODGatherFormatPropertiesAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
pNext:PVkVoid;
supportsTextureGatherLODBiasAMD:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSupportsTextureGatherLODBiasAMD:TVkBool32);
{$endif}
end;
PPVkConditionalRenderingBeginInfoEXT=^PVkConditionalRenderingBeginInfoEXT;
PVkConditionalRenderingBeginInfoEXT=^TVkConditionalRenderingBeginInfoEXT;
TVkConditionalRenderingBeginInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
pNext:PVkVoid;
buffer:TVkBuffer;
offset:TVkDeviceSize;
flags:TVkConditionalRenderingFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aFlags:TVkConditionalRenderingFlagsEXT);
{$endif}
end;
PPVkProtectedSubmitInfo=^PVkProtectedSubmitInfo;
PVkProtectedSubmitInfo=^TVkProtectedSubmitInfo;
TVkProtectedSubmitInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
pNext:PVkVoid;
protectedSubmit:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProtectedSubmit:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceProtectedMemoryFeatures=^PVkPhysicalDeviceProtectedMemoryFeatures;
PVkPhysicalDeviceProtectedMemoryFeatures=^TVkPhysicalDeviceProtectedMemoryFeatures;
TVkPhysicalDeviceProtectedMemoryFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
pNext:PVkVoid;
protectedMemory:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProtectedMemory:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceProtectedMemoryProperties=^PVkPhysicalDeviceProtectedMemoryProperties;
PVkPhysicalDeviceProtectedMemoryProperties=^TVkPhysicalDeviceProtectedMemoryProperties;
TVkPhysicalDeviceProtectedMemoryProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
pNext:PVkVoid;
protectedNoFault:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProtectedNoFault:TVkBool32);
{$endif}
end;
PPVkDeviceQueueInfo2=^PVkDeviceQueueInfo2;
PVkDeviceQueueInfo2=^TVkDeviceQueueInfo2;
TVkDeviceQueueInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
pNext:PVkVoid;
flags:TVkDeviceQueueCreateFlags;
queueFamilyIndex:TVkUInt32;
queueIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceQueueCreateFlags;
const aQueueFamilyIndex:TVkUInt32;
const aQueueIndex:TVkUInt32);
{$endif}
end;
PPVkPipelineCoverageToColorStateCreateInfoNV=^PVkPipelineCoverageToColorStateCreateInfoNV;
PVkPipelineCoverageToColorStateCreateInfoNV=^TVkPipelineCoverageToColorStateCreateInfoNV;
TVkPipelineCoverageToColorStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkPipelineCoverageToColorStateCreateFlagsNV;
coverageToColorEnable:TVkBool32;
coverageToColorLocation:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCoverageToColorStateCreateFlagsNV;
const aCoverageToColorEnable:TVkBool32;
const aCoverageToColorLocation:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceSamplerFilterMinmaxProperties=^PVkPhysicalDeviceSamplerFilterMinmaxProperties;
PVkPhysicalDeviceSamplerFilterMinmaxProperties=^TVkPhysicalDeviceSamplerFilterMinmaxProperties;
TVkPhysicalDeviceSamplerFilterMinmaxProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
pNext:PVkVoid;
filterMinmaxSingleComponentFormats:TVkBool32;
filterMinmaxImageComponentMapping:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFilterMinmaxSingleComponentFormats:TVkBool32;
const aFilterMinmaxImageComponentMapping:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT=^PVkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
PVkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT=^TVkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
TVkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT=TVkPhysicalDeviceSamplerFilterMinmaxProperties;
PPVkSampleLocationEXT=^PVkSampleLocationEXT;
PVkSampleLocationEXT=^TVkSampleLocationEXT;
TVkSampleLocationEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
x:TVkFloat;
y:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aX:TVkFloat;
const aY:TVkFloat);
{$endif}
end;
PPVkSampleLocationsInfoEXT=^PVkSampleLocationsInfoEXT;
PVkSampleLocationsInfoEXT=^TVkSampleLocationsInfoEXT;
TVkSampleLocationsInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
pNext:PVkVoid;
sampleLocationsPerPixel:TVkSampleCountFlagBits;
sampleLocationGridSize:TVkExtent2D;
sampleLocationsCount:TVkUInt32;
pSampleLocations:PVkSampleLocationEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampleLocationsPerPixel:TVkSampleCountFlagBits;
const aSampleLocationGridSize:TVkExtent2D;
const aSampleLocationsCount:TVkUInt32;
const aPSampleLocations:PVkSampleLocationEXT);
{$endif}
end;
PPVkAttachmentSampleLocationsEXT=^PVkAttachmentSampleLocationsEXT;
PVkAttachmentSampleLocationsEXT=^TVkAttachmentSampleLocationsEXT;
TVkAttachmentSampleLocationsEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
attachmentIndex:TVkUInt32;
sampleLocationsInfo:TVkSampleLocationsInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachmentIndex:TVkUInt32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
{$endif}
end;
PPVkSubpassSampleLocationsEXT=^PVkSubpassSampleLocationsEXT;
PVkSubpassSampleLocationsEXT=^TVkSubpassSampleLocationsEXT;
TVkSubpassSampleLocationsEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
subpassIndex:TVkUInt32;
sampleLocationsInfo:TVkSampleLocationsInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubpassIndex:TVkUInt32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
{$endif}
end;
PPVkRenderPassSampleLocationsBeginInfoEXT=^PVkRenderPassSampleLocationsBeginInfoEXT;
PVkRenderPassSampleLocationsBeginInfoEXT=^TVkRenderPassSampleLocationsBeginInfoEXT;
TVkRenderPassSampleLocationsBeginInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
pNext:PVkVoid;
attachmentInitialSampleLocationsCount:TVkUInt32;
pAttachmentInitialSampleLocations:PVkAttachmentSampleLocationsEXT;
postSubpassSampleLocationsCount:TVkUInt32;
pPostSubpassSampleLocations:PVkSubpassSampleLocationsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachmentInitialSampleLocationsCount:TVkUInt32;
const aPAttachmentInitialSampleLocations:PVkAttachmentSampleLocationsEXT;
const aPostSubpassSampleLocationsCount:TVkUInt32;
const aPPostSubpassSampleLocations:PVkSubpassSampleLocationsEXT);
{$endif}
end;
PPVkPipelineSampleLocationsStateCreateInfoEXT=^PVkPipelineSampleLocationsStateCreateInfoEXT;
PVkPipelineSampleLocationsStateCreateInfoEXT=^TVkPipelineSampleLocationsStateCreateInfoEXT;
TVkPipelineSampleLocationsStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
sampleLocationsEnable:TVkBool32;
sampleLocationsInfo:TVkSampleLocationsInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampleLocationsEnable:TVkBool32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
{$endif}
end;
PPVkPhysicalDeviceSampleLocationsPropertiesEXT=^PVkPhysicalDeviceSampleLocationsPropertiesEXT;
PVkPhysicalDeviceSampleLocationsPropertiesEXT=^TVkPhysicalDeviceSampleLocationsPropertiesEXT;
TVkPhysicalDeviceSampleLocationsPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
pNext:PVkVoid;
sampleLocationSampleCounts:TVkSampleCountFlags;
maxSampleLocationGridSize:TVkExtent2D;
sampleLocationCoordinateRange:array[0..1] of TVkFloat;
sampleLocationSubPixelBits:TVkUInt32;
variableSampleLocations:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampleLocationSampleCounts:TVkSampleCountFlags;
const aMaxSampleLocationGridSize:TVkExtent2D;
const aSampleLocationCoordinateRange:array of TVkFloat;
const aSampleLocationSubPixelBits:TVkUInt32;
const aVariableSampleLocations:TVkBool32);
{$endif}
end;
PPVkMultisamplePropertiesEXT=^PVkMultisamplePropertiesEXT;
PVkMultisamplePropertiesEXT=^TVkMultisamplePropertiesEXT;
TVkMultisamplePropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
pNext:PVkVoid;
maxSampleLocationGridSize:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxSampleLocationGridSize:TVkExtent2D);
{$endif}
end;
PPVkSamplerReductionModeCreateInfo=^PVkSamplerReductionModeCreateInfo;
PVkSamplerReductionModeCreateInfo=^TVkSamplerReductionModeCreateInfo;
TVkSamplerReductionModeCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
pNext:PVkVoid;
reductionMode:TVkSamplerReductionMode;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aReductionMode:TVkSamplerReductionMode);
{$endif}
end;
PPVkSamplerReductionModeCreateInfoEXT=^PVkSamplerReductionModeCreateInfoEXT;
PVkSamplerReductionModeCreateInfoEXT=^TVkSamplerReductionModeCreateInfoEXT;
TVkSamplerReductionModeCreateInfoEXT=TVkSamplerReductionModeCreateInfo;
PPVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT=^PVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
PVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT=^TVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
TVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
pNext:PVkVoid;
advancedBlendCoherentOperations:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAdvancedBlendCoherentOperations:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceMultiDrawFeaturesEXT=^PVkPhysicalDeviceMultiDrawFeaturesEXT;
PVkPhysicalDeviceMultiDrawFeaturesEXT=^TVkPhysicalDeviceMultiDrawFeaturesEXT;
TVkPhysicalDeviceMultiDrawFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
pNext:PVkVoid;
multiDraw:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMultiDraw:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT=^PVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
PVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT=^TVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
TVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
pNext:PVkVoid;
advancedBlendMaxColorAttachments:TVkUInt32;
advancedBlendIndependentBlend:TVkBool32;
advancedBlendNonPremultipliedSrcColor:TVkBool32;
advancedBlendNonPremultipliedDstColor:TVkBool32;
advancedBlendCorrelatedOverlap:TVkBool32;
advancedBlendAllOperations:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAdvancedBlendMaxColorAttachments:TVkUInt32;
const aAdvancedBlendIndependentBlend:TVkBool32;
const aAdvancedBlendNonPremultipliedSrcColor:TVkBool32;
const aAdvancedBlendNonPremultipliedDstColor:TVkBool32;
const aAdvancedBlendCorrelatedOverlap:TVkBool32;
const aAdvancedBlendAllOperations:TVkBool32);
{$endif}
end;
PPVkPipelineColorBlendAdvancedStateCreateInfoEXT=^PVkPipelineColorBlendAdvancedStateCreateInfoEXT;
PVkPipelineColorBlendAdvancedStateCreateInfoEXT=^TVkPipelineColorBlendAdvancedStateCreateInfoEXT;
TVkPipelineColorBlendAdvancedStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
srcPremultiplied:TVkBool32;
dstPremultiplied:TVkBool32;
blendOverlap:TVkBlendOverlapEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcPremultiplied:TVkBool32;
const aDstPremultiplied:TVkBool32;
const aBlendOverlap:TVkBlendOverlapEXT);
{$endif}
end;
PPVkPhysicalDeviceInlineUniformBlockFeaturesEXT=^PVkPhysicalDeviceInlineUniformBlockFeaturesEXT;
PVkPhysicalDeviceInlineUniformBlockFeaturesEXT=^TVkPhysicalDeviceInlineUniformBlockFeaturesEXT;
TVkPhysicalDeviceInlineUniformBlockFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT
pNext:PVkVoid;
inlineUniformBlock:TVkBool32;
descriptorBindingInlineUniformBlockUpdateAfterBind:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aInlineUniformBlock:TVkBool32;
const aDescriptorBindingInlineUniformBlockUpdateAfterBind:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceInlineUniformBlockPropertiesEXT=^PVkPhysicalDeviceInlineUniformBlockPropertiesEXT;
PVkPhysicalDeviceInlineUniformBlockPropertiesEXT=^TVkPhysicalDeviceInlineUniformBlockPropertiesEXT;
TVkPhysicalDeviceInlineUniformBlockPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT
pNext:PVkVoid;
maxInlineUniformBlockSize:TVkUInt32;
maxPerStageDescriptorInlineUniformBlocks:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:TVkUInt32;
maxDescriptorSetInlineUniformBlocks:TVkUInt32;
maxDescriptorSetUpdateAfterBindInlineUniformBlocks:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxInlineUniformBlockSize:TVkUInt32;
const aMaxPerStageDescriptorInlineUniformBlocks:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:TVkUInt32;
const aMaxDescriptorSetInlineUniformBlocks:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInlineUniformBlocks:TVkUInt32);
{$endif}
end;
PPVkWriteDescriptorSetInlineUniformBlockEXT=^PVkWriteDescriptorSetInlineUniformBlockEXT;
PVkWriteDescriptorSetInlineUniformBlockEXT=^TVkWriteDescriptorSetInlineUniformBlockEXT;
TVkWriteDescriptorSetInlineUniformBlockEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT
pNext:PVkVoid;
dataSize:TVkUInt32;
pData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDataSize:TVkUInt32;
const aPData:PVkVoid);
{$endif}
end;
PPVkDescriptorPoolInlineUniformBlockCreateInfoEXT=^PVkDescriptorPoolInlineUniformBlockCreateInfoEXT;
PVkDescriptorPoolInlineUniformBlockCreateInfoEXT=^TVkDescriptorPoolInlineUniformBlockCreateInfoEXT;
TVkDescriptorPoolInlineUniformBlockCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT
pNext:PVkVoid;
maxInlineUniformBlockBindings:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxInlineUniformBlockBindings:TVkUInt32);
{$endif}
end;
PPVkPipelineCoverageModulationStateCreateInfoNV=^PVkPipelineCoverageModulationStateCreateInfoNV;
PVkPipelineCoverageModulationStateCreateInfoNV=^TVkPipelineCoverageModulationStateCreateInfoNV;
TVkPipelineCoverageModulationStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkPipelineCoverageModulationStateCreateFlagsNV;
coverageModulationMode:TVkCoverageModulationModeNV;
coverageModulationTableEnable:TVkBool32;
coverageModulationTableCount:TVkUInt32;
pCoverageModulationTable:PVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCoverageModulationStateCreateFlagsNV;
const aCoverageModulationMode:TVkCoverageModulationModeNV;
const aCoverageModulationTableEnable:TVkBool32;
const aCoverageModulationTableCount:TVkUInt32;
const aPCoverageModulationTable:PVkFloat);
{$endif}
end;
PPVkImageFormatListCreateInfo=^PVkImageFormatListCreateInfo;
PVkImageFormatListCreateInfo=^TVkImageFormatListCreateInfo;
TVkImageFormatListCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
pNext:PVkVoid;
viewFormatCount:TVkUInt32;
pViewFormats:PVkFormat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aViewFormatCount:TVkUInt32;
const aPViewFormats:PVkFormat);
{$endif}
end;
PPVkImageFormatListCreateInfoKHR=^PVkImageFormatListCreateInfoKHR;
PVkImageFormatListCreateInfoKHR=^TVkImageFormatListCreateInfoKHR;
TVkImageFormatListCreateInfoKHR=TVkImageFormatListCreateInfo;
PPVkValidationCacheCreateInfoEXT=^PVkValidationCacheCreateInfoEXT;
PVkValidationCacheCreateInfoEXT=^TVkValidationCacheCreateInfoEXT;
TVkValidationCacheCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkValidationCacheCreateFlagsEXT;
initialDataSize:TVkSize;
pInitialData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkValidationCacheCreateFlagsEXT;
const aInitialDataSize:TVkSize;
const aPInitialData:PVkVoid);
{$endif}
end;
PPVkShaderModuleValidationCacheCreateInfoEXT=^PVkShaderModuleValidationCacheCreateInfoEXT;
PVkShaderModuleValidationCacheCreateInfoEXT=^TVkShaderModuleValidationCacheCreateInfoEXT;
TVkShaderModuleValidationCacheCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
pNext:PVkVoid;
validationCache:TVkValidationCacheEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aValidationCache:TVkValidationCacheEXT);
{$endif}
end;
PPVkPhysicalDeviceMaintenance3Properties=^PVkPhysicalDeviceMaintenance3Properties;
PVkPhysicalDeviceMaintenance3Properties=^TVkPhysicalDeviceMaintenance3Properties;
TVkPhysicalDeviceMaintenance3Properties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
pNext:PVkVoid;
maxPerSetDescriptors:TVkUInt32;
maxMemoryAllocationSize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxPerSetDescriptors:TVkUInt32;
const aMaxMemoryAllocationSize:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceMaintenance3PropertiesKHR=^PVkPhysicalDeviceMaintenance3PropertiesKHR;
PVkPhysicalDeviceMaintenance3PropertiesKHR=^TVkPhysicalDeviceMaintenance3PropertiesKHR;
TVkPhysicalDeviceMaintenance3PropertiesKHR=TVkPhysicalDeviceMaintenance3Properties;
PPVkDescriptorSetLayoutSupport=^PVkDescriptorSetLayoutSupport;
PVkDescriptorSetLayoutSupport=^TVkDescriptorSetLayoutSupport;
TVkDescriptorSetLayoutSupport=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
pNext:PVkVoid;
supported:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSupported:TVkBool32);
{$endif}
end;
PPVkDescriptorSetLayoutSupportKHR=^PVkDescriptorSetLayoutSupportKHR;
PVkDescriptorSetLayoutSupportKHR=^TVkDescriptorSetLayoutSupportKHR;
TVkDescriptorSetLayoutSupportKHR=TVkDescriptorSetLayoutSupport;
PPVkPhysicalDeviceShaderDrawParametersFeatures=^PVkPhysicalDeviceShaderDrawParametersFeatures;
PVkPhysicalDeviceShaderDrawParametersFeatures=^TVkPhysicalDeviceShaderDrawParametersFeatures;
TVkPhysicalDeviceShaderDrawParametersFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
pNext:PVkVoid;
shaderDrawParameters:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderDrawParameters:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderDrawParameterFeatures=^PVkPhysicalDeviceShaderDrawParameterFeatures;
PVkPhysicalDeviceShaderDrawParameterFeatures=^TVkPhysicalDeviceShaderDrawParameterFeatures;
TVkPhysicalDeviceShaderDrawParameterFeatures=TVkPhysicalDeviceShaderDrawParametersFeatures;
PPVkPhysicalDeviceShaderFloat16Int8Features=^PVkPhysicalDeviceShaderFloat16Int8Features;
PVkPhysicalDeviceShaderFloat16Int8Features=^TVkPhysicalDeviceShaderFloat16Int8Features;
TVkPhysicalDeviceShaderFloat16Int8Features=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
pNext:PVkVoid;
shaderFloat16:TVkBool32;
shaderInt8:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderFloat16:TVkBool32;
const aShaderInt8:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderFloat16Int8FeaturesKHR=^PVkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
PVkPhysicalDeviceShaderFloat16Int8FeaturesKHR=^TVkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
TVkPhysicalDeviceShaderFloat16Int8FeaturesKHR=TVkPhysicalDeviceShaderFloat16Int8Features;
PPVkPhysicalDeviceFloat16Int8FeaturesKHR=^PVkPhysicalDeviceFloat16Int8FeaturesKHR;
PVkPhysicalDeviceFloat16Int8FeaturesKHR=^TVkPhysicalDeviceFloat16Int8FeaturesKHR;
TVkPhysicalDeviceFloat16Int8FeaturesKHR=TVkPhysicalDeviceShaderFloat16Int8Features;
PPVkPhysicalDeviceFloatControlsProperties=^PVkPhysicalDeviceFloatControlsProperties;
PVkPhysicalDeviceFloatControlsProperties=^TVkPhysicalDeviceFloatControlsProperties;
TVkPhysicalDeviceFloatControlsProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
pNext:PVkVoid;
denormBehaviorIndependence:TVkShaderFloatControlsIndependence;
roundingModeIndependence:TVkShaderFloatControlsIndependence;
shaderSignedZeroInfNanPreserveFloat16:TVkBool32;
shaderSignedZeroInfNanPreserveFloat32:TVkBool32;
shaderSignedZeroInfNanPreserveFloat64:TVkBool32;
shaderDenormPreserveFloat16:TVkBool32;
shaderDenormPreserveFloat32:TVkBool32;
shaderDenormPreserveFloat64:TVkBool32;
shaderDenormFlushToZeroFloat16:TVkBool32;
shaderDenormFlushToZeroFloat32:TVkBool32;
shaderDenormFlushToZeroFloat64:TVkBool32;
shaderRoundingModeRTEFloat16:TVkBool32;
shaderRoundingModeRTEFloat32:TVkBool32;
shaderRoundingModeRTEFloat64:TVkBool32;
shaderRoundingModeRTZFloat16:TVkBool32;
shaderRoundingModeRTZFloat32:TVkBool32;
shaderRoundingModeRTZFloat64:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDenormBehaviorIndependence:TVkShaderFloatControlsIndependence;
const aRoundingModeIndependence:TVkShaderFloatControlsIndependence;
const aShaderSignedZeroInfNanPreserveFloat16:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat32:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat64:TVkBool32;
const aShaderDenormPreserveFloat16:TVkBool32;
const aShaderDenormPreserveFloat32:TVkBool32;
const aShaderDenormPreserveFloat64:TVkBool32;
const aShaderDenormFlushToZeroFloat16:TVkBool32;
const aShaderDenormFlushToZeroFloat32:TVkBool32;
const aShaderDenormFlushToZeroFloat64:TVkBool32;
const aShaderRoundingModeRTEFloat16:TVkBool32;
const aShaderRoundingModeRTEFloat32:TVkBool32;
const aShaderRoundingModeRTEFloat64:TVkBool32;
const aShaderRoundingModeRTZFloat16:TVkBool32;
const aShaderRoundingModeRTZFloat32:TVkBool32;
const aShaderRoundingModeRTZFloat64:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFloatControlsPropertiesKHR=^PVkPhysicalDeviceFloatControlsPropertiesKHR;
PVkPhysicalDeviceFloatControlsPropertiesKHR=^TVkPhysicalDeviceFloatControlsPropertiesKHR;
TVkPhysicalDeviceFloatControlsPropertiesKHR=TVkPhysicalDeviceFloatControlsProperties;
PPVkPhysicalDeviceHostQueryResetFeatures=^PVkPhysicalDeviceHostQueryResetFeatures;
PVkPhysicalDeviceHostQueryResetFeatures=^TVkPhysicalDeviceHostQueryResetFeatures;
TVkPhysicalDeviceHostQueryResetFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
pNext:PVkVoid;
hostQueryReset:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHostQueryReset:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceHostQueryResetFeaturesEXT=^PVkPhysicalDeviceHostQueryResetFeaturesEXT;
PVkPhysicalDeviceHostQueryResetFeaturesEXT=^TVkPhysicalDeviceHostQueryResetFeaturesEXT;
TVkPhysicalDeviceHostQueryResetFeaturesEXT=TVkPhysicalDeviceHostQueryResetFeatures;
{$ifdef Android}
PPVkNativeBufferUsage2ANDROID=^PVkNativeBufferUsage2ANDROID;
PVkNativeBufferUsage2ANDROID=^TVkNativeBufferUsage2ANDROID;
TVkNativeBufferUsage2ANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
consumer:TVkUInt64;
producer:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConsumer:TVkUInt64;
const aProducer:TVkUInt64);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkNativeBufferANDROID=^PVkNativeBufferANDROID;
PVkNativeBufferANDROID=^TVkNativeBufferANDROID;
TVkNativeBufferANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID
pNext:PVkVoid;
handle:PVkVoid;
stride:TVkInt32;
format:TVkInt32;
usage:TVkInt32;
usage2:TVkNativeBufferUsage2ANDROID;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandle:PVkVoid;
const aStride:TVkInt32;
const aFormat:TVkInt32;
const aUsage:TVkInt32;
const aUsage2:TVkNativeBufferUsage2ANDROID);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkSwapchainImageCreateInfoANDROID=^PVkSwapchainImageCreateInfoANDROID;
PVkSwapchainImageCreateInfoANDROID=^TVkSwapchainImageCreateInfoANDROID;
TVkSwapchainImageCreateInfoANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID
pNext:PVkVoid;
usage:TVkSwapchainImageUsageFlagsANDROID;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aUsage:TVkSwapchainImageUsageFlagsANDROID);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkPhysicalDevicePresentationPropertiesANDROID=^PVkPhysicalDevicePresentationPropertiesANDROID;
PVkPhysicalDevicePresentationPropertiesANDROID=^TVkPhysicalDevicePresentationPropertiesANDROID;
TVkPhysicalDevicePresentationPropertiesANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID
pNext:PVkVoid;
sharedImage:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSharedImage:TVkBool32);
{$endif}
end;
{$endif}
PPVkShaderResourceUsageAMD=^PVkShaderResourceUsageAMD;
PVkShaderResourceUsageAMD=^TVkShaderResourceUsageAMD;
TVkShaderResourceUsageAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
numUsedVgprs:TVkUInt32;
numUsedSgprs:TVkUInt32;
ldsSizePerLocalWorkGroup:TVkUInt32;
ldsUsageSizeInBytes:TVkSize;
scratchMemUsageInBytes:TVkSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aNumUsedVgprs:TVkUInt32;
const aNumUsedSgprs:TVkUInt32;
const aLdsSizePerLocalWorkGroup:TVkUInt32;
const aLdsUsageSizeInBytes:TVkSize;
const aScratchMemUsageInBytes:TVkSize);
{$endif}
end;
PPVkShaderStatisticsInfoAMD=^PVkShaderStatisticsInfoAMD;
PVkShaderStatisticsInfoAMD=^TVkShaderStatisticsInfoAMD;
TVkShaderStatisticsInfoAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
shaderStageMask:TVkShaderStageFlags;
resourceUsage:TVkShaderResourceUsageAMD;
numPhysicalVgprs:TVkUInt32;
numPhysicalSgprs:TVkUInt32;
numAvailableVgprs:TVkUInt32;
numAvailableSgprs:TVkUInt32;
computeWorkGroupSize:array[0..2] of TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderStageMask:TVkShaderStageFlags;
const aResourceUsage:TVkShaderResourceUsageAMD;
const aNumPhysicalVgprs:TVkUInt32;
const aNumPhysicalSgprs:TVkUInt32;
const aNumAvailableVgprs:TVkUInt32;
const aNumAvailableSgprs:TVkUInt32;
const aComputeWorkGroupSize:array of TVkUInt32);
{$endif}
end;
PPVkDeviceQueueGlobalPriorityCreateInfoEXT=^PVkDeviceQueueGlobalPriorityCreateInfoEXT;
PVkDeviceQueueGlobalPriorityCreateInfoEXT=^TVkDeviceQueueGlobalPriorityCreateInfoEXT;
TVkDeviceQueueGlobalPriorityCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
pNext:PVkVoid;
globalPriority:TVkQueueGlobalPriorityEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGlobalPriority:TVkQueueGlobalPriorityEXT);
{$endif}
end;
PPVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT=^PVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
PVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT=^TVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
TVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT
pNext:PVkVoid;
globalPriorityQuery:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGlobalPriorityQuery:TVkBool32);
{$endif}
end;
PPVkQueueFamilyGlobalPriorityPropertiesEXT=^PVkQueueFamilyGlobalPriorityPropertiesEXT;
PVkQueueFamilyGlobalPriorityPropertiesEXT=^TVkQueueFamilyGlobalPriorityPropertiesEXT;
TVkQueueFamilyGlobalPriorityPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT
pNext:PVkVoid;
priorityCount:TVkUInt32;
priorities:array[0..VK_MAX_GLOBAL_PRIORITY_SIZE_EXT-1] of TVkQueueGlobalPriorityEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPriorityCount:TVkUInt32;
const aPriorities:array of TVkQueueGlobalPriorityEXT);
{$endif}
end;
PPVkDebugUtilsLabelEXT=^PVkDebugUtilsLabelEXT;
PVkDebugUtilsLabelEXT=^TVkDebugUtilsLabelEXT;
TVkDebugUtilsLabelEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
pNext:PVkVoid;
pLabelName:PVkChar;
color:array[0..3] of TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPLabelName:PVkChar;
const aColor:array of TVkFloat);
{$endif}
end;
PPVkDebugUtilsObjectTagInfoEXT=^PVkDebugUtilsObjectTagInfoEXT;
PVkDebugUtilsObjectTagInfoEXT=^TVkDebugUtilsObjectTagInfoEXT;
TVkDebugUtilsObjectTagInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
pNext:PVkVoid;
objectType:TVkObjectType;
objectHandle:TVkUInt64;
tagName:TVkUInt64;
tagSize:TVkSize;
pTag:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aTagName:TVkUInt64;
const aTagSize:TVkSize;
const aPTag:PVkVoid);
{$endif}
end;
PPVkDebugUtilsMessengerCallbackDataEXT=^PVkDebugUtilsMessengerCallbackDataEXT;
PVkDebugUtilsMessengerCallbackDataEXT=^TVkDebugUtilsMessengerCallbackDataEXT;
TVkDebugUtilsMessengerCallbackDataEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
pNext:PVkVoid;
flags:TVkDebugUtilsMessengerCallbackDataFlagsEXT;
pMessageIdName:PVkChar;
messageIdNumber:TVkInt32;
pMessage:PVkChar;
queueLabelCount:TVkUInt32;
pQueueLabels:PVkDebugUtilsLabelEXT;
cmdBufLabelCount:TVkUInt32;
pCmdBufLabels:PVkDebugUtilsLabelEXT;
objectCount:TVkUInt32;
pObjects:PVkDebugUtilsObjectNameInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDebugUtilsMessengerCallbackDataFlagsEXT;
const aPMessageIdName:PVkChar;
const aMessageIdNumber:TVkInt32;
const aPMessage:PVkChar;
const aQueueLabelCount:TVkUInt32;
const aPQueueLabels:PVkDebugUtilsLabelEXT;
const aCmdBufLabelCount:TVkUInt32;
const aPCmdBufLabels:PVkDebugUtilsLabelEXT;
const aObjectCount:TVkUInt32;
const aPObjects:PVkDebugUtilsObjectNameInfoEXT);
{$endif}
end;
PPPFN_vkDebugUtilsMessengerCallbackEXT=^PPFN_vkDebugUtilsMessengerCallbackEXT;
PPFN_vkDebugUtilsMessengerCallbackEXT=^TPFN_vkDebugUtilsMessengerCallbackEXT;
TPFN_vkDebugUtilsMessengerCallbackEXT=function(messageSeverity:TVkDebugUtilsMessageSeverityFlagBitsEXT;messageTypes:TVkDebugUtilsMessageTypeFlagsEXT;const pCallbackData:PVkDebugUtilsMessengerCallbackDataEXT;pUserData:PVkVoid):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPVkDebugUtilsMessengerCreateInfoEXT=^PVkDebugUtilsMessengerCreateInfoEXT;
PVkDebugUtilsMessengerCreateInfoEXT=^TVkDebugUtilsMessengerCreateInfoEXT;
TVkDebugUtilsMessengerCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkDebugUtilsMessengerCreateFlagsEXT;
messageSeverity:TVkDebugUtilsMessageSeverityFlagsEXT;
messageType:TVkDebugUtilsMessageTypeFlagsEXT;
pfnUserCallback:TPFN_vkDebugUtilsMessengerCallbackEXT;
pUserData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDebugUtilsMessengerCreateFlagsEXT;
const aMessageSeverity:TVkDebugUtilsMessageSeverityFlagsEXT;
const aMessageType:TVkDebugUtilsMessageTypeFlagsEXT;
const aPfnUserCallback:TPFN_vkDebugUtilsMessengerCallbackEXT;
const aPUserData:PVkVoid);
{$endif}
end;
PPVkPhysicalDeviceDeviceMemoryReportFeaturesEXT=^PVkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
PVkPhysicalDeviceDeviceMemoryReportFeaturesEXT=^TVkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
TVkPhysicalDeviceDeviceMemoryReportFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
pNext:PVkVoid;
deviceMemoryReport:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceMemoryReport:TVkBool32);
{$endif}
end;
PPPFN_vkDeviceMemoryReportCallbackEXT=^PPFN_vkDeviceMemoryReportCallbackEXT;
PPFN_vkDeviceMemoryReportCallbackEXT=^TPFN_vkDeviceMemoryReportCallbackEXT;
TPFN_vkDeviceMemoryReportCallbackEXT=procedure(pCallbackData:PVkDeviceMemoryReportCallbackDataEXT;pUserData:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPVkDeviceDeviceMemoryReportCreateInfoEXT=^PVkDeviceDeviceMemoryReportCreateInfoEXT;
PVkDeviceDeviceMemoryReportCreateInfoEXT=^TVkDeviceDeviceMemoryReportCreateInfoEXT;
TVkDeviceDeviceMemoryReportCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkDeviceMemoryReportFlagsEXT;
pfnUserCallback:TPFN_vkDeviceMemoryReportCallbackEXT;
pUserData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceMemoryReportFlagsEXT;
const aPfnUserCallback:TPFN_vkDeviceMemoryReportCallbackEXT;
const aPUserData:PVkVoid);
{$endif}
end;
PPVkImportMemoryHostPointerInfoEXT=^PVkImportMemoryHostPointerInfoEXT;
PVkImportMemoryHostPointerInfoEXT=^TVkImportMemoryHostPointerInfoEXT;
TVkImportMemoryHostPointerInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
pNext:PVkVoid;
handleType:TVkExternalMemoryHandleTypeFlagBits;
pHostPointer:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aPHostPointer:PVkVoid);
{$endif}
end;
PPVkMemoryHostPointerPropertiesEXT=^PVkMemoryHostPointerPropertiesEXT;
PVkMemoryHostPointerPropertiesEXT=^TVkMemoryHostPointerPropertiesEXT;
TVkMemoryHostPointerPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
pNext:PVkVoid;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceExternalMemoryHostPropertiesEXT=^PVkPhysicalDeviceExternalMemoryHostPropertiesEXT;
PVkPhysicalDeviceExternalMemoryHostPropertiesEXT=^TVkPhysicalDeviceExternalMemoryHostPropertiesEXT;
TVkPhysicalDeviceExternalMemoryHostPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
pNext:PVkVoid;
minImportedHostPointerAlignment:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinImportedHostPointerAlignment:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceConservativeRasterizationPropertiesEXT=^PVkPhysicalDeviceConservativeRasterizationPropertiesEXT;
PVkPhysicalDeviceConservativeRasterizationPropertiesEXT=^TVkPhysicalDeviceConservativeRasterizationPropertiesEXT;
TVkPhysicalDeviceConservativeRasterizationPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
pNext:PVkVoid;
primitiveOverestimationSize:TVkFloat;
maxExtraPrimitiveOverestimationSize:TVkFloat;
extraPrimitiveOverestimationSizeGranularity:TVkFloat;
primitiveUnderestimation:TVkBool32;
conservativePointAndLineRasterization:TVkBool32;
degenerateTrianglesRasterized:TVkBool32;
degenerateLinesRasterized:TVkBool32;
fullyCoveredFragmentShaderInputVariable:TVkBool32;
conservativeRasterizationPostDepthCoverage:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPrimitiveOverestimationSize:TVkFloat;
const aMaxExtraPrimitiveOverestimationSize:TVkFloat;
const aExtraPrimitiveOverestimationSizeGranularity:TVkFloat;
const aPrimitiveUnderestimation:TVkBool32;
const aConservativePointAndLineRasterization:TVkBool32;
const aDegenerateTrianglesRasterized:TVkBool32;
const aDegenerateLinesRasterized:TVkBool32;
const aFullyCoveredFragmentShaderInputVariable:TVkBool32;
const aConservativeRasterizationPostDepthCoverage:TVkBool32);
{$endif}
end;
PPVkCalibratedTimestampInfoEXT=^PVkCalibratedTimestampInfoEXT;
PVkCalibratedTimestampInfoEXT=^TVkCalibratedTimestampInfoEXT;
TVkCalibratedTimestampInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
pNext:PVkVoid;
timeDomain:TVkTimeDomainEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTimeDomain:TVkTimeDomainEXT);
{$endif}
end;
PPVkPhysicalDeviceShaderCorePropertiesAMD=^PVkPhysicalDeviceShaderCorePropertiesAMD;
PVkPhysicalDeviceShaderCorePropertiesAMD=^TVkPhysicalDeviceShaderCorePropertiesAMD;
TVkPhysicalDeviceShaderCorePropertiesAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
pNext:PVkVoid;
shaderEngineCount:TVkUInt32;
shaderArraysPerEngineCount:TVkUInt32;
computeUnitsPerShaderArray:TVkUInt32;
simdPerComputeUnit:TVkUInt32;
wavefrontsPerSimd:TVkUInt32;
wavefrontSize:TVkUInt32;
sgprsPerSimd:TVkUInt32;
minSgprAllocation:TVkUInt32;
maxSgprAllocation:TVkUInt32;
sgprAllocationGranularity:TVkUInt32;
vgprsPerSimd:TVkUInt32;
minVgprAllocation:TVkUInt32;
maxVgprAllocation:TVkUInt32;
vgprAllocationGranularity:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderEngineCount:TVkUInt32;
const aShaderArraysPerEngineCount:TVkUInt32;
const aComputeUnitsPerShaderArray:TVkUInt32;
const aSimdPerComputeUnit:TVkUInt32;
const aWavefrontsPerSimd:TVkUInt32;
const aWavefrontSize:TVkUInt32;
const aSgprsPerSimd:TVkUInt32;
const aMinSgprAllocation:TVkUInt32;
const aMaxSgprAllocation:TVkUInt32;
const aSgprAllocationGranularity:TVkUInt32;
const aVgprsPerSimd:TVkUInt32;
const aMinVgprAllocation:TVkUInt32;
const aMaxVgprAllocation:TVkUInt32;
const aVgprAllocationGranularity:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceShaderCoreProperties2AMD=^PVkPhysicalDeviceShaderCoreProperties2AMD;
PVkPhysicalDeviceShaderCoreProperties2AMD=^TVkPhysicalDeviceShaderCoreProperties2AMD;
TVkPhysicalDeviceShaderCoreProperties2AMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
pNext:PVkVoid;
shaderCoreFeatures:TVkShaderCorePropertiesFlagsAMD;
activeComputeUnitCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderCoreFeatures:TVkShaderCorePropertiesFlagsAMD;
const aActiveComputeUnitCount:TVkUInt32);
{$endif}
end;
PPVkPipelineRasterizationConservativeStateCreateInfoEXT=^PVkPipelineRasterizationConservativeStateCreateInfoEXT;
PVkPipelineRasterizationConservativeStateCreateInfoEXT=^TVkPipelineRasterizationConservativeStateCreateInfoEXT;
TVkPipelineRasterizationConservativeStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkPipelineRasterizationConservativeStateCreateFlagsEXT;
conservativeRasterizationMode:TVkConservativeRasterizationModeEXT;
extraPrimitiveOverestimationSize:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineRasterizationConservativeStateCreateFlagsEXT;
const aConservativeRasterizationMode:TVkConservativeRasterizationModeEXT;
const aExtraPrimitiveOverestimationSize:TVkFloat);
{$endif}
end;
PPVkPhysicalDeviceDescriptorIndexingFeatures=^PVkPhysicalDeviceDescriptorIndexingFeatures;
PVkPhysicalDeviceDescriptorIndexingFeatures=^TVkPhysicalDeviceDescriptorIndexingFeatures;
TVkPhysicalDeviceDescriptorIndexingFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
pNext:PVkVoid;
shaderInputAttachmentArrayDynamicIndexing:TVkBool32;
shaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
shaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
shaderUniformBufferArrayNonUniformIndexing:TVkBool32;
shaderSampledImageArrayNonUniformIndexing:TVkBool32;
shaderStorageBufferArrayNonUniformIndexing:TVkBool32;
shaderStorageImageArrayNonUniformIndexing:TVkBool32;
shaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
shaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
shaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
descriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
descriptorBindingSampledImageUpdateAfterBind:TVkBool32;
descriptorBindingStorageImageUpdateAfterBind:TVkBool32;
descriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
descriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
descriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
descriptorBindingUpdateUnusedWhilePending:TVkBool32;
descriptorBindingPartiallyBound:TVkBool32;
descriptorBindingVariableDescriptorCount:TVkBool32;
runtimeDescriptorArray:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderInputAttachmentArrayDynamicIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderUniformBufferArrayNonUniformIndexing:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexing:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexing:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
const aDescriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingSampledImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUpdateUnusedWhilePending:TVkBool32;
const aDescriptorBindingPartiallyBound:TVkBool32;
const aDescriptorBindingVariableDescriptorCount:TVkBool32;
const aRuntimeDescriptorArray:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceDescriptorIndexingFeaturesEXT=^PVkPhysicalDeviceDescriptorIndexingFeaturesEXT;
PVkPhysicalDeviceDescriptorIndexingFeaturesEXT=^TVkPhysicalDeviceDescriptorIndexingFeaturesEXT;
TVkPhysicalDeviceDescriptorIndexingFeaturesEXT=TVkPhysicalDeviceDescriptorIndexingFeatures;
PPVkPhysicalDeviceDescriptorIndexingProperties=^PVkPhysicalDeviceDescriptorIndexingProperties;
PVkPhysicalDeviceDescriptorIndexingProperties=^TVkPhysicalDeviceDescriptorIndexingProperties;
TVkPhysicalDeviceDescriptorIndexingProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
pNext:PVkVoid;
maxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
shaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
shaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
shaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
shaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
shaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
robustBufferAccessUpdateAfterBind:TVkBool32;
quadDivergentImplicitLod:TVkBool32;
maxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
maxPerStageUpdateAfterBindResources:TVkUInt32;
maxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
maxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
maxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
maxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
const aShaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
const aRobustBufferAccessUpdateAfterBind:TVkBool32;
const aQuadDivergentImplicitLod:TVkBool32;
const aMaxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
const aMaxPerStageUpdateAfterBindResources:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceDescriptorIndexingPropertiesEXT=^PVkPhysicalDeviceDescriptorIndexingPropertiesEXT;
PVkPhysicalDeviceDescriptorIndexingPropertiesEXT=^TVkPhysicalDeviceDescriptorIndexingPropertiesEXT;
TVkPhysicalDeviceDescriptorIndexingPropertiesEXT=TVkPhysicalDeviceDescriptorIndexingProperties;
PPVkDescriptorSetLayoutBindingFlagsCreateInfo=^PVkDescriptorSetLayoutBindingFlagsCreateInfo;
PVkDescriptorSetLayoutBindingFlagsCreateInfo=^TVkDescriptorSetLayoutBindingFlagsCreateInfo;
TVkDescriptorSetLayoutBindingFlagsCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
pNext:PVkVoid;
bindingCount:TVkUInt32;
pBindingFlags:PVkDescriptorBindingFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBindingCount:TVkUInt32;
const aPBindingFlags:PVkDescriptorBindingFlags);
{$endif}
end;
PPVkDescriptorSetLayoutBindingFlagsCreateInfoEXT=^PVkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
PVkDescriptorSetLayoutBindingFlagsCreateInfoEXT=^TVkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
TVkDescriptorSetLayoutBindingFlagsCreateInfoEXT=TVkDescriptorSetLayoutBindingFlagsCreateInfo;
PPVkDescriptorSetVariableDescriptorCountAllocateInfo=^PVkDescriptorSetVariableDescriptorCountAllocateInfo;
PVkDescriptorSetVariableDescriptorCountAllocateInfo=^TVkDescriptorSetVariableDescriptorCountAllocateInfo;
TVkDescriptorSetVariableDescriptorCountAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
pNext:PVkVoid;
descriptorSetCount:TVkUInt32;
pDescriptorCounts:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDescriptorSetCount:TVkUInt32;
const aPDescriptorCounts:PVkUInt32);
{$endif}
end;
PPVkDescriptorSetVariableDescriptorCountAllocateInfoEXT=^PVkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
PVkDescriptorSetVariableDescriptorCountAllocateInfoEXT=^TVkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
TVkDescriptorSetVariableDescriptorCountAllocateInfoEXT=TVkDescriptorSetVariableDescriptorCountAllocateInfo;
PPVkDescriptorSetVariableDescriptorCountLayoutSupport=^PVkDescriptorSetVariableDescriptorCountLayoutSupport;
PVkDescriptorSetVariableDescriptorCountLayoutSupport=^TVkDescriptorSetVariableDescriptorCountLayoutSupport;
TVkDescriptorSetVariableDescriptorCountLayoutSupport=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
pNext:PVkVoid;
maxVariableDescriptorCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxVariableDescriptorCount:TVkUInt32);
{$endif}
end;
PPVkDescriptorSetVariableDescriptorCountLayoutSupportEXT=^PVkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
PVkDescriptorSetVariableDescriptorCountLayoutSupportEXT=^TVkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
TVkDescriptorSetVariableDescriptorCountLayoutSupportEXT=TVkDescriptorSetVariableDescriptorCountLayoutSupport;
PPVkAttachmentDescription2=^PVkAttachmentDescription2;
PVkAttachmentDescription2=^TVkAttachmentDescription2;
TVkAttachmentDescription2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
pNext:PVkVoid;
flags:TVkAttachmentDescriptionFlags;
format:TVkFormat;
samples:TVkSampleCountFlagBits;
loadOp:TVkAttachmentLoadOp;
storeOp:TVkAttachmentStoreOp;
stencilLoadOp:TVkAttachmentLoadOp;
stencilStoreOp:TVkAttachmentStoreOp;
initialLayout:TVkImageLayout;
finalLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkAttachmentDescriptionFlags;
const aFormat:TVkFormat;
const aSamples:TVkSampleCountFlagBits;
const aLoadOp:TVkAttachmentLoadOp;
const aStoreOp:TVkAttachmentStoreOp;
const aStencilLoadOp:TVkAttachmentLoadOp;
const aStencilStoreOp:TVkAttachmentStoreOp;
const aInitialLayout:TVkImageLayout;
const aFinalLayout:TVkImageLayout);
{$endif}
end;
PPVkAttachmentDescription2KHR=^PVkAttachmentDescription2KHR;
PVkAttachmentDescription2KHR=^TVkAttachmentDescription2KHR;
TVkAttachmentDescription2KHR=TVkAttachmentDescription2;
PPVkAttachmentReference2=^PVkAttachmentReference2;
PVkAttachmentReference2=^TVkAttachmentReference2;
TVkAttachmentReference2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
pNext:PVkVoid;
attachment:TVkUInt32;
layout:TVkImageLayout;
aspectMask:TVkImageAspectFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachment:TVkUInt32;
const aLayout:TVkImageLayout;
const aAspectMask:TVkImageAspectFlags);
{$endif}
end;
PPVkAttachmentReference2KHR=^PVkAttachmentReference2KHR;
PVkAttachmentReference2KHR=^TVkAttachmentReference2KHR;
TVkAttachmentReference2KHR=TVkAttachmentReference2;
PPVkSubpassDescription2=^PVkSubpassDescription2;
PVkSubpassDescription2=^TVkSubpassDescription2;
TVkSubpassDescription2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
pNext:PVkVoid;
flags:TVkSubpassDescriptionFlags;
pipelineBindPoint:TVkPipelineBindPoint;
viewMask:TVkUInt32;
inputAttachmentCount:TVkUInt32;
pInputAttachments:PVkAttachmentReference2;
colorAttachmentCount:TVkUInt32;
pColorAttachments:PVkAttachmentReference2;
pResolveAttachments:PVkAttachmentReference2;
pDepthStencilAttachment:PVkAttachmentReference2;
preserveAttachmentCount:TVkUInt32;
pPreserveAttachments:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSubpassDescriptionFlags;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aViewMask:TVkUInt32;
const aInputAttachmentCount:TVkUInt32;
const aPInputAttachments:PVkAttachmentReference2;
const aColorAttachmentCount:TVkUInt32;
const aPColorAttachments:PVkAttachmentReference2;
const aPResolveAttachments:PVkAttachmentReference2;
const aPDepthStencilAttachment:PVkAttachmentReference2;
const aPreserveAttachmentCount:TVkUInt32;
const aPPreserveAttachments:PVkUInt32);
{$endif}
end;
PPVkSubpassDescription2KHR=^PVkSubpassDescription2KHR;
PVkSubpassDescription2KHR=^TVkSubpassDescription2KHR;
TVkSubpassDescription2KHR=TVkSubpassDescription2;
PPVkSubpassDependency2=^PVkSubpassDependency2;
PVkSubpassDependency2=^TVkSubpassDependency2;
TVkSubpassDependency2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
pNext:PVkVoid;
srcSubpass:TVkUInt32;
dstSubpass:TVkUInt32;
srcStageMask:TVkPipelineStageFlags;
dstStageMask:TVkPipelineStageFlags;
srcAccessMask:TVkAccessFlags;
dstAccessMask:TVkAccessFlags;
dependencyFlags:TVkDependencyFlags;
viewOffset:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubpass:TVkUInt32;
const aDstSubpass:TVkUInt32;
const aSrcStageMask:TVkPipelineStageFlags;
const aDstStageMask:TVkPipelineStageFlags;
const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aDependencyFlags:TVkDependencyFlags;
const aViewOffset:TVkInt32);
{$endif}
end;
PPVkSubpassDependency2KHR=^PVkSubpassDependency2KHR;
PVkSubpassDependency2KHR=^TVkSubpassDependency2KHR;
TVkSubpassDependency2KHR=TVkSubpassDependency2;
PPVkRenderPassCreateInfo2=^PVkRenderPassCreateInfo2;
PVkRenderPassCreateInfo2=^TVkRenderPassCreateInfo2;
TVkRenderPassCreateInfo2=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
pNext:PVkVoid;
flags:TVkRenderPassCreateFlags;
attachmentCount:TVkUInt32;
pAttachments:PVkAttachmentDescription2;
subpassCount:TVkUInt32;
pSubpasses:PVkSubpassDescription2;
dependencyCount:TVkUInt32;
pDependencies:PVkSubpassDependency2;
correlatedViewMaskCount:TVkUInt32;
pCorrelatedViewMasks:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkRenderPassCreateFlags;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkAttachmentDescription2;
const aSubpassCount:TVkUInt32;
const aPSubpasses:PVkSubpassDescription2;
const aDependencyCount:TVkUInt32;
const aPDependencies:PVkSubpassDependency2;
const aCorrelatedViewMaskCount:TVkUInt32;
const aPCorrelatedViewMasks:PVkUInt32);
{$endif}
end;
PPVkRenderPassCreateInfo2KHR=^PVkRenderPassCreateInfo2KHR;
PVkRenderPassCreateInfo2KHR=^TVkRenderPassCreateInfo2KHR;
TVkRenderPassCreateInfo2KHR=TVkRenderPassCreateInfo2;
PPVkSubpassBeginInfo=^PVkSubpassBeginInfo;
PVkSubpassBeginInfo=^TVkSubpassBeginInfo;
TVkSubpassBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
pNext:PVkVoid;
contents:TVkSubpassContents;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aContents:TVkSubpassContents);
{$endif}
end;
PPVkSubpassBeginInfoKHR=^PVkSubpassBeginInfoKHR;
PVkSubpassBeginInfoKHR=^TVkSubpassBeginInfoKHR;
TVkSubpassBeginInfoKHR=TVkSubpassBeginInfo;
PPVkSubpassEndInfo=^PVkSubpassEndInfo;
PVkSubpassEndInfo=^TVkSubpassEndInfo;
TVkSubpassEndInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO
pNext:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
{$endif}
end;
PPVkSubpassEndInfoKHR=^PVkSubpassEndInfoKHR;
PVkSubpassEndInfoKHR=^TVkSubpassEndInfoKHR;
TVkSubpassEndInfoKHR=TVkSubpassEndInfo;
PPVkPhysicalDeviceTimelineSemaphoreFeatures=^PVkPhysicalDeviceTimelineSemaphoreFeatures;
PVkPhysicalDeviceTimelineSemaphoreFeatures=^TVkPhysicalDeviceTimelineSemaphoreFeatures;
TVkPhysicalDeviceTimelineSemaphoreFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
pNext:PVkVoid;
timelineSemaphore:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTimelineSemaphore:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceTimelineSemaphoreFeaturesKHR=^PVkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
PVkPhysicalDeviceTimelineSemaphoreFeaturesKHR=^TVkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
TVkPhysicalDeviceTimelineSemaphoreFeaturesKHR=TVkPhysicalDeviceTimelineSemaphoreFeatures;
PPVkPhysicalDeviceTimelineSemaphoreProperties=^PVkPhysicalDeviceTimelineSemaphoreProperties;
PVkPhysicalDeviceTimelineSemaphoreProperties=^TVkPhysicalDeviceTimelineSemaphoreProperties;
TVkPhysicalDeviceTimelineSemaphoreProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
pNext:PVkVoid;
maxTimelineSemaphoreValueDifference:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxTimelineSemaphoreValueDifference:TVkUInt64);
{$endif}
end;
PPVkPhysicalDeviceTimelineSemaphorePropertiesKHR=^PVkPhysicalDeviceTimelineSemaphorePropertiesKHR;
PVkPhysicalDeviceTimelineSemaphorePropertiesKHR=^TVkPhysicalDeviceTimelineSemaphorePropertiesKHR;
TVkPhysicalDeviceTimelineSemaphorePropertiesKHR=TVkPhysicalDeviceTimelineSemaphoreProperties;
PPVkSemaphoreTypeCreateInfo=^PVkSemaphoreTypeCreateInfo;
PVkSemaphoreTypeCreateInfo=^TVkSemaphoreTypeCreateInfo;
TVkSemaphoreTypeCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
pNext:PVkVoid;
semaphoreType:TVkSemaphoreType;
initialValue:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphoreType:TVkSemaphoreType;
const aInitialValue:TVkUInt64);
{$endif}
end;
PPVkSemaphoreTypeCreateInfoKHR=^PVkSemaphoreTypeCreateInfoKHR;
PVkSemaphoreTypeCreateInfoKHR=^TVkSemaphoreTypeCreateInfoKHR;
TVkSemaphoreTypeCreateInfoKHR=TVkSemaphoreTypeCreateInfo;
PPVkTimelineSemaphoreSubmitInfo=^PVkTimelineSemaphoreSubmitInfo;
PVkTimelineSemaphoreSubmitInfo=^TVkTimelineSemaphoreSubmitInfo;
TVkTimelineSemaphoreSubmitInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
pNext:PVkVoid;
waitSemaphoreValueCount:TVkUInt32;
pWaitSemaphoreValues:PVkUInt64;
signalSemaphoreValueCount:TVkUInt32;
pSignalSemaphoreValues:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWaitSemaphoreValueCount:TVkUInt32;
const aPWaitSemaphoreValues:PVkUInt64;
const aSignalSemaphoreValueCount:TVkUInt32;
const aPSignalSemaphoreValues:PVkUInt64);
{$endif}
end;
PPVkTimelineSemaphoreSubmitInfoKHR=^PVkTimelineSemaphoreSubmitInfoKHR;
PVkTimelineSemaphoreSubmitInfoKHR=^TVkTimelineSemaphoreSubmitInfoKHR;
TVkTimelineSemaphoreSubmitInfoKHR=TVkTimelineSemaphoreSubmitInfo;
PPVkSemaphoreWaitInfo=^PVkSemaphoreWaitInfo;
PVkSemaphoreWaitInfo=^TVkSemaphoreWaitInfo;
TVkSemaphoreWaitInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
pNext:PVkVoid;
flags:TVkSemaphoreWaitFlags;
semaphoreCount:TVkUInt32;
pSemaphores:PVkSemaphore;
pValues:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSemaphoreWaitFlags;
const aSemaphoreCount:TVkUInt32;
const aPSemaphores:PVkSemaphore;
const aPValues:PVkUInt64);
{$endif}
end;
PPVkSemaphoreWaitInfoKHR=^PVkSemaphoreWaitInfoKHR;
PVkSemaphoreWaitInfoKHR=^TVkSemaphoreWaitInfoKHR;
TVkSemaphoreWaitInfoKHR=TVkSemaphoreWaitInfo;
PPVkSemaphoreSignalInfo=^PVkSemaphoreSignalInfo;
PVkSemaphoreSignalInfo=^TVkSemaphoreSignalInfo;
TVkSemaphoreSignalInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
pNext:PVkVoid;
semaphore:TVkSemaphore;
value:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aValue:TVkUInt64);
{$endif}
end;
PPVkSemaphoreSignalInfoKHR=^PVkSemaphoreSignalInfoKHR;
PVkSemaphoreSignalInfoKHR=^TVkSemaphoreSignalInfoKHR;
TVkSemaphoreSignalInfoKHR=TVkSemaphoreSignalInfo;
PPVkVertexInputBindingDivisorDescriptionEXT=^PVkVertexInputBindingDivisorDescriptionEXT;
PVkVertexInputBindingDivisorDescriptionEXT=^TVkVertexInputBindingDivisorDescriptionEXT;
TVkVertexInputBindingDivisorDescriptionEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
binding:TVkUInt32;
divisor:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBinding:TVkUInt32;
const aDivisor:TVkUInt32);
{$endif}
end;
PPVkPipelineVertexInputDivisorStateCreateInfoEXT=^PVkPipelineVertexInputDivisorStateCreateInfoEXT;
PVkPipelineVertexInputDivisorStateCreateInfoEXT=^TVkPipelineVertexInputDivisorStateCreateInfoEXT;
TVkPipelineVertexInputDivisorStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
vertexBindingDivisorCount:TVkUInt32;
pVertexBindingDivisors:PVkVertexInputBindingDivisorDescriptionEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexBindingDivisorCount:TVkUInt32;
const aPVertexBindingDivisors:PVkVertexInputBindingDivisorDescriptionEXT);
{$endif}
end;
PPVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT=^PVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
PVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT=^TVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
TVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
pNext:PVkVoid;
maxVertexAttribDivisor:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxVertexAttribDivisor:TVkUInt32);
{$endif}
end;
PPVkPhysicalDevicePCIBusInfoPropertiesEXT=^PVkPhysicalDevicePCIBusInfoPropertiesEXT;
PVkPhysicalDevicePCIBusInfoPropertiesEXT=^TVkPhysicalDevicePCIBusInfoPropertiesEXT;
TVkPhysicalDevicePCIBusInfoPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
pNext:PVkVoid;
pciDomain:TVkUInt32;
pciBus:TVkUInt32;
pciDevice:TVkUInt32;
pciFunction:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPciDomain:TVkUInt32;
const aPciBus:TVkUInt32;
const aPciDevice:TVkUInt32;
const aPciFunction:TVkUInt32);
{$endif}
end;
{$ifdef Android}
PPVkImportAndroidHardwareBufferInfoANDROID=^PVkImportAndroidHardwareBufferInfoANDROID;
PVkImportAndroidHardwareBufferInfoANDROID=^TVkImportAndroidHardwareBufferInfoANDROID;
TVkImportAndroidHardwareBufferInfoANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
pNext:PVkVoid;
buffer:PVkAndroidAHardwareBuffer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:PVkAndroidAHardwareBuffer);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkAndroidHardwareBufferUsageANDROID=^PVkAndroidHardwareBufferUsageANDROID;
PVkAndroidHardwareBufferUsageANDROID=^TVkAndroidHardwareBufferUsageANDROID;
TVkAndroidHardwareBufferUsageANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
pNext:PVkVoid;
androidHardwareBufferUsage:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAndroidHardwareBufferUsage:TVkUInt64);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkAndroidHardwareBufferPropertiesANDROID=^PVkAndroidHardwareBufferPropertiesANDROID;
PVkAndroidHardwareBufferPropertiesANDROID=^TVkAndroidHardwareBufferPropertiesANDROID;
TVkAndroidHardwareBufferPropertiesANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
pNext:PVkVoid;
allocationSize:TVkDeviceSize;
memoryTypeBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAllocationSize:TVkDeviceSize;
const aMemoryTypeBits:TVkUInt32);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkMemoryGetAndroidHardwareBufferInfoANDROID=^PVkMemoryGetAndroidHardwareBufferInfoANDROID;
PVkMemoryGetAndroidHardwareBufferInfoANDROID=^TVkMemoryGetAndroidHardwareBufferInfoANDROID;
TVkMemoryGetAndroidHardwareBufferInfoANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
pNext:PVkVoid;
memory:TVkDeviceMemory;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory);
{$endif}
end;
{$endif}
{$ifdef Android}
PPVkAndroidHardwareBufferFormatPropertiesANDROID=^PVkAndroidHardwareBufferFormatPropertiesANDROID;
PVkAndroidHardwareBufferFormatPropertiesANDROID=^TVkAndroidHardwareBufferFormatPropertiesANDROID;
TVkAndroidHardwareBufferFormatPropertiesANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
pNext:PVkVoid;
format:TVkFormat;
externalFormat:TVkUInt64;
formatFeatures:TVkFormatFeatureFlags;
samplerYcbcrConversionComponents:TVkComponentMapping;
suggestedYcbcrModel:TVkSamplerYcbcrModelConversion;
suggestedYcbcrRange:TVkSamplerYcbcrRange;
suggestedXChromaOffset:TVkChromaLocation;
suggestedYChromaOffset:TVkChromaLocation;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat;
const aExternalFormat:TVkUInt64;
const aFormatFeatures:TVkFormatFeatureFlags;
const aSamplerYcbcrConversionComponents:TVkComponentMapping;
const aSuggestedYcbcrModel:TVkSamplerYcbcrModelConversion;
const aSuggestedYcbcrRange:TVkSamplerYcbcrRange;
const aSuggestedXChromaOffset:TVkChromaLocation;
const aSuggestedYChromaOffset:TVkChromaLocation);
{$endif}
end;
{$endif}
PPVkCommandBufferInheritanceConditionalRenderingInfoEXT=^PVkCommandBufferInheritanceConditionalRenderingInfoEXT;
PVkCommandBufferInheritanceConditionalRenderingInfoEXT=^TVkCommandBufferInheritanceConditionalRenderingInfoEXT;
TVkCommandBufferInheritanceConditionalRenderingInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
pNext:PVkVoid;
conditionalRenderingEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConditionalRenderingEnable:TVkBool32);
{$endif}
end;
{$ifdef Android}
PPVkExternalFormatANDROID=^PVkExternalFormatANDROID;
PVkExternalFormatANDROID=^TVkExternalFormatANDROID;
TVkExternalFormatANDROID=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
pNext:PVkVoid;
externalFormat:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExternalFormat:TVkUInt64);
{$endif}
end;
{$endif}
PPVkPhysicalDevice8BitStorageFeatures=^PVkPhysicalDevice8BitStorageFeatures;
PVkPhysicalDevice8BitStorageFeatures=^TVkPhysicalDevice8BitStorageFeatures;
TVkPhysicalDevice8BitStorageFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
pNext:PVkVoid;
storageBuffer8BitAccess:TVkBool32;
uniformAndStorageBuffer8BitAccess:TVkBool32;
storagePushConstant8:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStorageBuffer8BitAccess:TVkBool32;
const aUniformAndStorageBuffer8BitAccess:TVkBool32;
const aStoragePushConstant8:TVkBool32);
{$endif}
end;
PPVkPhysicalDevice8BitStorageFeaturesKHR=^PVkPhysicalDevice8BitStorageFeaturesKHR;
PVkPhysicalDevice8BitStorageFeaturesKHR=^TVkPhysicalDevice8BitStorageFeaturesKHR;
TVkPhysicalDevice8BitStorageFeaturesKHR=TVkPhysicalDevice8BitStorageFeatures;
PPVkPhysicalDeviceConditionalRenderingFeaturesEXT=^PVkPhysicalDeviceConditionalRenderingFeaturesEXT;
PVkPhysicalDeviceConditionalRenderingFeaturesEXT=^TVkPhysicalDeviceConditionalRenderingFeaturesEXT;
TVkPhysicalDeviceConditionalRenderingFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
pNext:PVkVoid;
conditionalRendering:TVkBool32;
inheritedConditionalRendering:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConditionalRendering:TVkBool32;
const aInheritedConditionalRendering:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVulkanMemoryModelFeatures=^PVkPhysicalDeviceVulkanMemoryModelFeatures;
PVkPhysicalDeviceVulkanMemoryModelFeatures=^TVkPhysicalDeviceVulkanMemoryModelFeatures;
TVkPhysicalDeviceVulkanMemoryModelFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
pNext:PVkVoid;
vulkanMemoryModel:TVkBool32;
vulkanMemoryModelDeviceScope:TVkBool32;
vulkanMemoryModelAvailabilityVisibilityChains:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVulkanMemoryModel:TVkBool32;
const aVulkanMemoryModelDeviceScope:TVkBool32;
const aVulkanMemoryModelAvailabilityVisibilityChains:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVulkanMemoryModelFeaturesKHR=^PVkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
PVkPhysicalDeviceVulkanMemoryModelFeaturesKHR=^TVkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
TVkPhysicalDeviceVulkanMemoryModelFeaturesKHR=TVkPhysicalDeviceVulkanMemoryModelFeatures;
PPVkPhysicalDeviceShaderAtomicInt64Features=^PVkPhysicalDeviceShaderAtomicInt64Features;
PVkPhysicalDeviceShaderAtomicInt64Features=^TVkPhysicalDeviceShaderAtomicInt64Features;
TVkPhysicalDeviceShaderAtomicInt64Features=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
pNext:PVkVoid;
shaderBufferInt64Atomics:TVkBool32;
shaderSharedInt64Atomics:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderBufferInt64Atomics:TVkBool32;
const aShaderSharedInt64Atomics:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderAtomicInt64FeaturesKHR=^PVkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
PVkPhysicalDeviceShaderAtomicInt64FeaturesKHR=^TVkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
TVkPhysicalDeviceShaderAtomicInt64FeaturesKHR=TVkPhysicalDeviceShaderAtomicInt64Features;
PPVkPhysicalDeviceShaderAtomicFloatFeaturesEXT=^PVkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
PVkPhysicalDeviceShaderAtomicFloatFeaturesEXT=^TVkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
TVkPhysicalDeviceShaderAtomicFloatFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
pNext:PVkVoid;
shaderBufferFloat32Atomics:TVkBool32;
shaderBufferFloat32AtomicAdd:TVkBool32;
shaderBufferFloat64Atomics:TVkBool32;
shaderBufferFloat64AtomicAdd:TVkBool32;
shaderSharedFloat32Atomics:TVkBool32;
shaderSharedFloat32AtomicAdd:TVkBool32;
shaderSharedFloat64Atomics:TVkBool32;
shaderSharedFloat64AtomicAdd:TVkBool32;
shaderImageFloat32Atomics:TVkBool32;
shaderImageFloat32AtomicAdd:TVkBool32;
sparseImageFloat32Atomics:TVkBool32;
sparseImageFloat32AtomicAdd:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderBufferFloat32Atomics:TVkBool32;
const aShaderBufferFloat32AtomicAdd:TVkBool32;
const aShaderBufferFloat64Atomics:TVkBool32;
const aShaderBufferFloat64AtomicAdd:TVkBool32;
const aShaderSharedFloat32Atomics:TVkBool32;
const aShaderSharedFloat32AtomicAdd:TVkBool32;
const aShaderSharedFloat64Atomics:TVkBool32;
const aShaderSharedFloat64AtomicAdd:TVkBool32;
const aShaderImageFloat32Atomics:TVkBool32;
const aShaderImageFloat32AtomicAdd:TVkBool32;
const aSparseImageFloat32Atomics:TVkBool32;
const aSparseImageFloat32AtomicAdd:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT=^PVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
PVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT=^TVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
TVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
pNext:PVkVoid;
shaderBufferFloat16Atomics:TVkBool32;
shaderBufferFloat16AtomicAdd:TVkBool32;
shaderBufferFloat16AtomicMinMax:TVkBool32;
shaderBufferFloat32AtomicMinMax:TVkBool32;
shaderBufferFloat64AtomicMinMax:TVkBool32;
shaderSharedFloat16Atomics:TVkBool32;
shaderSharedFloat16AtomicAdd:TVkBool32;
shaderSharedFloat16AtomicMinMax:TVkBool32;
shaderSharedFloat32AtomicMinMax:TVkBool32;
shaderSharedFloat64AtomicMinMax:TVkBool32;
shaderImageFloat32AtomicMinMax:TVkBool32;
sparseImageFloat32AtomicMinMax:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderBufferFloat16Atomics:TVkBool32;
const aShaderBufferFloat16AtomicAdd:TVkBool32;
const aShaderBufferFloat16AtomicMinMax:TVkBool32;
const aShaderBufferFloat32AtomicMinMax:TVkBool32;
const aShaderBufferFloat64AtomicMinMax:TVkBool32;
const aShaderSharedFloat16Atomics:TVkBool32;
const aShaderSharedFloat16AtomicAdd:TVkBool32;
const aShaderSharedFloat16AtomicMinMax:TVkBool32;
const aShaderSharedFloat32AtomicMinMax:TVkBool32;
const aShaderSharedFloat64AtomicMinMax:TVkBool32;
const aShaderImageFloat32AtomicMinMax:TVkBool32;
const aSparseImageFloat32AtomicMinMax:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT=^PVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
PVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT=^TVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
TVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
pNext:PVkVoid;
vertexAttributeInstanceRateDivisor:TVkBool32;
vertexAttributeInstanceRateZeroDivisor:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexAttributeInstanceRateDivisor:TVkBool32;
const aVertexAttributeInstanceRateZeroDivisor:TVkBool32);
{$endif}
end;
PPVkQueueFamilyCheckpointPropertiesNV=^PVkQueueFamilyCheckpointPropertiesNV;
PVkQueueFamilyCheckpointPropertiesNV=^TVkQueueFamilyCheckpointPropertiesNV;
TVkQueueFamilyCheckpointPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
pNext:PVkVoid;
checkpointExecutionStageMask:TVkPipelineStageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCheckpointExecutionStageMask:TVkPipelineStageFlags);
{$endif}
end;
PPVkCheckpointDataNV=^PVkCheckpointDataNV;
PVkCheckpointDataNV=^TVkCheckpointDataNV;
TVkCheckpointDataNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
pNext:PVkVoid;
stage:TVkPipelineStageFlagBits;
pCheckpointMarker:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStage:TVkPipelineStageFlagBits;
const aPCheckpointMarker:PVkVoid);
{$endif}
end;
PPVkPhysicalDeviceDepthStencilResolveProperties=^PVkPhysicalDeviceDepthStencilResolveProperties;
PVkPhysicalDeviceDepthStencilResolveProperties=^TVkPhysicalDeviceDepthStencilResolveProperties;
TVkPhysicalDeviceDepthStencilResolveProperties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
pNext:PVkVoid;
supportedDepthResolveModes:TVkResolveModeFlags;
supportedStencilResolveModes:TVkResolveModeFlags;
independentResolveNone:TVkBool32;
independentResolve:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSupportedDepthResolveModes:TVkResolveModeFlags;
const aSupportedStencilResolveModes:TVkResolveModeFlags;
const aIndependentResolveNone:TVkBool32;
const aIndependentResolve:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceDepthStencilResolvePropertiesKHR=^PVkPhysicalDeviceDepthStencilResolvePropertiesKHR;
PVkPhysicalDeviceDepthStencilResolvePropertiesKHR=^TVkPhysicalDeviceDepthStencilResolvePropertiesKHR;
TVkPhysicalDeviceDepthStencilResolvePropertiesKHR=TVkPhysicalDeviceDepthStencilResolveProperties;
PPVkSubpassDescriptionDepthStencilResolve=^PVkSubpassDescriptionDepthStencilResolve;
PVkSubpassDescriptionDepthStencilResolve=^TVkSubpassDescriptionDepthStencilResolve;
TVkSubpassDescriptionDepthStencilResolve=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
pNext:PVkVoid;
depthResolveMode:TVkResolveModeFlagBits;
stencilResolveMode:TVkResolveModeFlagBits;
pDepthStencilResolveAttachment:PVkAttachmentReference2;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDepthResolveMode:TVkResolveModeFlagBits;
const aStencilResolveMode:TVkResolveModeFlagBits;
const aPDepthStencilResolveAttachment:PVkAttachmentReference2);
{$endif}
end;
PPVkSubpassDescriptionDepthStencilResolveKHR=^PVkSubpassDescriptionDepthStencilResolveKHR;
PVkSubpassDescriptionDepthStencilResolveKHR=^TVkSubpassDescriptionDepthStencilResolveKHR;
TVkSubpassDescriptionDepthStencilResolveKHR=TVkSubpassDescriptionDepthStencilResolve;
PPVkImageViewASTCDecodeModeEXT=^PVkImageViewASTCDecodeModeEXT;
PVkImageViewASTCDecodeModeEXT=^TVkImageViewASTCDecodeModeEXT;
TVkImageViewASTCDecodeModeEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
pNext:PVkVoid;
decodeMode:TVkFormat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDecodeMode:TVkFormat);
{$endif}
end;
PPVkPhysicalDeviceASTCDecodeFeaturesEXT=^PVkPhysicalDeviceASTCDecodeFeaturesEXT;
PVkPhysicalDeviceASTCDecodeFeaturesEXT=^TVkPhysicalDeviceASTCDecodeFeaturesEXT;
TVkPhysicalDeviceASTCDecodeFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
pNext:PVkVoid;
decodeModeSharedExponent:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDecodeModeSharedExponent:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceTransformFeedbackFeaturesEXT=^PVkPhysicalDeviceTransformFeedbackFeaturesEXT;
PVkPhysicalDeviceTransformFeedbackFeaturesEXT=^TVkPhysicalDeviceTransformFeedbackFeaturesEXT;
TVkPhysicalDeviceTransformFeedbackFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
pNext:PVkVoid;
transformFeedback:TVkBool32;
geometryStreams:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransformFeedback:TVkBool32;
const aGeometryStreams:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceTransformFeedbackPropertiesEXT=^PVkPhysicalDeviceTransformFeedbackPropertiesEXT;
PVkPhysicalDeviceTransformFeedbackPropertiesEXT=^TVkPhysicalDeviceTransformFeedbackPropertiesEXT;
TVkPhysicalDeviceTransformFeedbackPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
pNext:PVkVoid;
maxTransformFeedbackStreams:TVkUInt32;
maxTransformFeedbackBuffers:TVkUInt32;
maxTransformFeedbackBufferSize:TVkDeviceSize;
maxTransformFeedbackStreamDataSize:TVkUInt32;
maxTransformFeedbackBufferDataSize:TVkUInt32;
maxTransformFeedbackBufferDataStride:TVkUInt32;
transformFeedbackQueries:TVkBool32;
transformFeedbackStreamsLinesTriangles:TVkBool32;
transformFeedbackRasterizationStreamSelect:TVkBool32;
transformFeedbackDraw:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxTransformFeedbackStreams:TVkUInt32;
const aMaxTransformFeedbackBuffers:TVkUInt32;
const aMaxTransformFeedbackBufferSize:TVkDeviceSize;
const aMaxTransformFeedbackStreamDataSize:TVkUInt32;
const aMaxTransformFeedbackBufferDataSize:TVkUInt32;
const aMaxTransformFeedbackBufferDataStride:TVkUInt32;
const aTransformFeedbackQueries:TVkBool32;
const aTransformFeedbackStreamsLinesTriangles:TVkBool32;
const aTransformFeedbackRasterizationStreamSelect:TVkBool32;
const aTransformFeedbackDraw:TVkBool32);
{$endif}
end;
PPVkPipelineRasterizationStateStreamCreateInfoEXT=^PVkPipelineRasterizationStateStreamCreateInfoEXT;
PVkPipelineRasterizationStateStreamCreateInfoEXT=^TVkPipelineRasterizationStateStreamCreateInfoEXT;
TVkPipelineRasterizationStateStreamCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkPipelineRasterizationStateStreamCreateFlagsEXT;
rasterizationStream:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineRasterizationStateStreamCreateFlagsEXT;
const aRasterizationStream:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV=^PVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
PVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV=^TVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
TVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
pNext:PVkVoid;
representativeFragmentTest:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRepresentativeFragmentTest:TVkBool32);
{$endif}
end;
PPVkPipelineRepresentativeFragmentTestStateCreateInfoNV=^PVkPipelineRepresentativeFragmentTestStateCreateInfoNV;
PVkPipelineRepresentativeFragmentTestStateCreateInfoNV=^TVkPipelineRepresentativeFragmentTestStateCreateInfoNV;
TVkPipelineRepresentativeFragmentTestStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
pNext:PVkVoid;
representativeFragmentTestEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRepresentativeFragmentTestEnable:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceExclusiveScissorFeaturesNV=^PVkPhysicalDeviceExclusiveScissorFeaturesNV;
PVkPhysicalDeviceExclusiveScissorFeaturesNV=^TVkPhysicalDeviceExclusiveScissorFeaturesNV;
TVkPhysicalDeviceExclusiveScissorFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
pNext:PVkVoid;
exclusiveScissor:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExclusiveScissor:TVkBool32);
{$endif}
end;
PPVkPipelineViewportExclusiveScissorStateCreateInfoNV=^PVkPipelineViewportExclusiveScissorStateCreateInfoNV;
PVkPipelineViewportExclusiveScissorStateCreateInfoNV=^TVkPipelineViewportExclusiveScissorStateCreateInfoNV;
TVkPipelineViewportExclusiveScissorStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
pNext:PVkVoid;
exclusiveScissorCount:TVkUInt32;
pExclusiveScissors:PVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExclusiveScissorCount:TVkUInt32;
const aPExclusiveScissors:PVkRect2D);
{$endif}
end;
PPVkPhysicalDeviceCornerSampledImageFeaturesNV=^PVkPhysicalDeviceCornerSampledImageFeaturesNV;
PVkPhysicalDeviceCornerSampledImageFeaturesNV=^TVkPhysicalDeviceCornerSampledImageFeaturesNV;
TVkPhysicalDeviceCornerSampledImageFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
pNext:PVkVoid;
cornerSampledImage:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCornerSampledImage:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceComputeShaderDerivativesFeaturesNV=^PVkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
PVkPhysicalDeviceComputeShaderDerivativesFeaturesNV=^TVkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
TVkPhysicalDeviceComputeShaderDerivativesFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
pNext:PVkVoid;
computeDerivativeGroupQuads:TVkBool32;
computeDerivativeGroupLinear:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aComputeDerivativeGroupQuads:TVkBool32;
const aComputeDerivativeGroupLinear:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV=^PVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
PVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV=^TVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
TVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV
pNext:PVkVoid;
fragmentShaderBarycentric:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentShaderBarycentric:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderImageFootprintFeaturesNV=^PVkPhysicalDeviceShaderImageFootprintFeaturesNV;
PVkPhysicalDeviceShaderImageFootprintFeaturesNV=^TVkPhysicalDeviceShaderImageFootprintFeaturesNV;
TVkPhysicalDeviceShaderImageFootprintFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
pNext:PVkVoid;
imageFootprint:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageFootprint:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV=^PVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
PVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV=^TVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
TVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
pNext:PVkVoid;
dedicatedAllocationImageAliasing:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDedicatedAllocationImageAliasing:TVkBool32);
{$endif}
end;
PPVkShadingRatePaletteNV=^PVkShadingRatePaletteNV;
PVkShadingRatePaletteNV=^TVkShadingRatePaletteNV;
TVkShadingRatePaletteNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
shadingRatePaletteEntryCount:TVkUInt32;
pShadingRatePaletteEntries:PVkShadingRatePaletteEntryNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRatePaletteEntryCount:TVkUInt32;
const aPShadingRatePaletteEntries:PVkShadingRatePaletteEntryNV);
{$endif}
end;
PPVkPipelineViewportShadingRateImageStateCreateInfoNV=^PVkPipelineViewportShadingRateImageStateCreateInfoNV;
PVkPipelineViewportShadingRateImageStateCreateInfoNV=^TVkPipelineViewportShadingRateImageStateCreateInfoNV;
TVkPipelineViewportShadingRateImageStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
pNext:PVkVoid;
shadingRateImageEnable:TVkBool32;
viewportCount:TVkUInt32;
pShadingRatePalettes:PVkShadingRatePaletteNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRateImageEnable:TVkBool32;
const aViewportCount:TVkUInt32;
const aPShadingRatePalettes:PVkShadingRatePaletteNV);
{$endif}
end;
PPVkPhysicalDeviceShadingRateImageFeaturesNV=^PVkPhysicalDeviceShadingRateImageFeaturesNV;
PVkPhysicalDeviceShadingRateImageFeaturesNV=^TVkPhysicalDeviceShadingRateImageFeaturesNV;
TVkPhysicalDeviceShadingRateImageFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
pNext:PVkVoid;
shadingRateImage:TVkBool32;
shadingRateCoarseSampleOrder:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRateImage:TVkBool32;
const aShadingRateCoarseSampleOrder:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShadingRateImagePropertiesNV=^PVkPhysicalDeviceShadingRateImagePropertiesNV;
PVkPhysicalDeviceShadingRateImagePropertiesNV=^TVkPhysicalDeviceShadingRateImagePropertiesNV;
TVkPhysicalDeviceShadingRateImagePropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
pNext:PVkVoid;
shadingRateTexelSize:TVkExtent2D;
shadingRatePaletteSize:TVkUInt32;
shadingRateMaxCoarseSamples:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRateTexelSize:TVkExtent2D;
const aShadingRatePaletteSize:TVkUInt32;
const aShadingRateMaxCoarseSamples:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceInvocationMaskFeaturesHUAWEI=^PVkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
PVkPhysicalDeviceInvocationMaskFeaturesHUAWEI=^TVkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
TVkPhysicalDeviceInvocationMaskFeaturesHUAWEI=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
pNext:PVkVoid;
invocationMask:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aInvocationMask:TVkBool32);
{$endif}
end;
PPVkCoarseSampleLocationNV=^PVkCoarseSampleLocationNV;
PVkCoarseSampleLocationNV=^TVkCoarseSampleLocationNV;
TVkCoarseSampleLocationNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
pixelX:TVkUInt32;
pixelY:TVkUInt32;
sample:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPixelX:TVkUInt32;
const aPixelY:TVkUInt32;
const aSample:TVkUInt32);
{$endif}
end;
PPVkCoarseSampleOrderCustomNV=^PVkCoarseSampleOrderCustomNV;
PVkCoarseSampleOrderCustomNV=^TVkCoarseSampleOrderCustomNV;
TVkCoarseSampleOrderCustomNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
shadingRate:TVkShadingRatePaletteEntryNV;
sampleCount:TVkUInt32;
sampleLocationCount:TVkUInt32;
pSampleLocations:PVkCoarseSampleLocationNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRate:TVkShadingRatePaletteEntryNV;
const aSampleCount:TVkUInt32;
const aSampleLocationCount:TVkUInt32;
const aPSampleLocations:PVkCoarseSampleLocationNV);
{$endif}
end;
PPVkPipelineViewportCoarseSampleOrderStateCreateInfoNV=^PVkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
PVkPipelineViewportCoarseSampleOrderStateCreateInfoNV=^TVkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
TVkPipelineViewportCoarseSampleOrderStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
pNext:PVkVoid;
sampleOrderType:TVkCoarseSampleOrderTypeNV;
customSampleOrderCount:TVkUInt32;
pCustomSampleOrders:PVkCoarseSampleOrderCustomNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampleOrderType:TVkCoarseSampleOrderTypeNV;
const aCustomSampleOrderCount:TVkUInt32;
const aPCustomSampleOrders:PVkCoarseSampleOrderCustomNV);
{$endif}
end;
PPVkPhysicalDeviceMeshShaderFeaturesNV=^PVkPhysicalDeviceMeshShaderFeaturesNV;
PVkPhysicalDeviceMeshShaderFeaturesNV=^TVkPhysicalDeviceMeshShaderFeaturesNV;
TVkPhysicalDeviceMeshShaderFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
pNext:PVkVoid;
taskShader:TVkBool32;
meshShader:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTaskShader:TVkBool32;
const aMeshShader:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceMeshShaderPropertiesNV=^PVkPhysicalDeviceMeshShaderPropertiesNV;
PVkPhysicalDeviceMeshShaderPropertiesNV=^TVkPhysicalDeviceMeshShaderPropertiesNV;
TVkPhysicalDeviceMeshShaderPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
pNext:PVkVoid;
maxDrawMeshTasksCount:TVkUInt32;
maxTaskWorkGroupInvocations:TVkUInt32;
maxTaskWorkGroupSize:array[0..2] of TVkUInt32;
maxTaskTotalMemorySize:TVkUInt32;
maxTaskOutputCount:TVkUInt32;
maxMeshWorkGroupInvocations:TVkUInt32;
maxMeshWorkGroupSize:array[0..2] of TVkUInt32;
maxMeshTotalMemorySize:TVkUInt32;
maxMeshOutputVertices:TVkUInt32;
maxMeshOutputPrimitives:TVkUInt32;
maxMeshMultiviewViewCount:TVkUInt32;
meshOutputPerVertexGranularity:TVkUInt32;
meshOutputPerPrimitiveGranularity:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxDrawMeshTasksCount:TVkUInt32;
const aMaxTaskWorkGroupInvocations:TVkUInt32;
const aMaxTaskWorkGroupSize:array of TVkUInt32;
const aMaxTaskTotalMemorySize:TVkUInt32;
const aMaxTaskOutputCount:TVkUInt32;
const aMaxMeshWorkGroupInvocations:TVkUInt32;
const aMaxMeshWorkGroupSize:array of TVkUInt32;
const aMaxMeshTotalMemorySize:TVkUInt32;
const aMaxMeshOutputVertices:TVkUInt32;
const aMaxMeshOutputPrimitives:TVkUInt32;
const aMaxMeshMultiviewViewCount:TVkUInt32;
const aMeshOutputPerVertexGranularity:TVkUInt32;
const aMeshOutputPerPrimitiveGranularity:TVkUInt32);
{$endif}
end;
PPVkDrawMeshTasksIndirectCommandNV=^PVkDrawMeshTasksIndirectCommandNV;
PVkDrawMeshTasksIndirectCommandNV=^TVkDrawMeshTasksIndirectCommandNV;
TVkDrawMeshTasksIndirectCommandNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
taskCount:TVkUInt32;
firstTask:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTaskCount:TVkUInt32;
const aFirstTask:TVkUInt32);
{$endif}
end;
PPVkRayTracingShaderGroupCreateInfoNV=^PVkRayTracingShaderGroupCreateInfoNV;
PVkRayTracingShaderGroupCreateInfoNV=^TVkRayTracingShaderGroupCreateInfoNV;
TVkRayTracingShaderGroupCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
pNext:PVkVoid;
type_:TVkRayTracingShaderGroupTypeKHR;
generalShader:TVkUInt32;
closestHitShader:TVkUInt32;
anyHitShader:TVkUInt32;
intersectionShader:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkRayTracingShaderGroupTypeKHR;
const aGeneralShader:TVkUInt32;
const aClosestHitShader:TVkUInt32;
const aAnyHitShader:TVkUInt32;
const aIntersectionShader:TVkUInt32);
{$endif}
end;
PPVkRayTracingShaderGroupCreateInfoKHR=^PVkRayTracingShaderGroupCreateInfoKHR;
PVkRayTracingShaderGroupCreateInfoKHR=^TVkRayTracingShaderGroupCreateInfoKHR;
TVkRayTracingShaderGroupCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
pNext:PVkVoid;
type_:TVkRayTracingShaderGroupTypeKHR;
generalShader:TVkUInt32;
closestHitShader:TVkUInt32;
anyHitShader:TVkUInt32;
intersectionShader:TVkUInt32;
pShaderGroupCaptureReplayHandle:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkRayTracingShaderGroupTypeKHR;
const aGeneralShader:TVkUInt32;
const aClosestHitShader:TVkUInt32;
const aAnyHitShader:TVkUInt32;
const aIntersectionShader:TVkUInt32;
const aPShaderGroupCaptureReplayHandle:PVkVoid);
{$endif}
end;
PPVkRayTracingPipelineCreateInfoNV=^PVkRayTracingPipelineCreateInfoNV;
PVkRayTracingPipelineCreateInfoNV=^TVkRayTracingPipelineCreateInfoNV;
TVkRayTracingPipelineCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkPipelineCreateFlags;
stageCount:TVkUInt32;
pStages:PVkPipelineShaderStageCreateInfo;
groupCount:TVkUInt32;
pGroups:PVkRayTracingShaderGroupCreateInfoNV;
maxRecursionDepth:TVkUInt32;
layout:TVkPipelineLayout;
basePipelineHandle:TVkPipeline;
basePipelineIndex:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aGroupCount:TVkUInt32;
const aPGroups:PVkRayTracingShaderGroupCreateInfoNV;
const aMaxRecursionDepth:TVkUInt32;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
{$endif}
end;
PPVkRayTracingPipelineInterfaceCreateInfoKHR=^PVkRayTracingPipelineInterfaceCreateInfoKHR;
PVkRayTracingPipelineInterfaceCreateInfoKHR=^TVkRayTracingPipelineInterfaceCreateInfoKHR;
TVkRayTracingPipelineInterfaceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
pNext:PVkVoid;
maxPipelineRayPayloadSize:TVkUInt32;
maxPipelineRayHitAttributeSize:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxPipelineRayPayloadSize:TVkUInt32;
const aMaxPipelineRayHitAttributeSize:TVkUInt32);
{$endif}
end;
PPVkGeometryTrianglesNV=^PVkGeometryTrianglesNV;
PVkGeometryTrianglesNV=^TVkGeometryTrianglesNV;
TVkGeometryTrianglesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
pNext:PVkVoid;
vertexData:TVkBuffer;
vertexOffset:TVkDeviceSize;
vertexCount:TVkUInt32;
vertexStride:TVkDeviceSize;
vertexFormat:TVkFormat;
indexData:TVkBuffer;
indexOffset:TVkDeviceSize;
indexCount:TVkUInt32;
indexType:TVkIndexType;
transformData:TVkBuffer;
transformOffset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexData:TVkBuffer;
const aVertexOffset:TVkDeviceSize;
const aVertexCount:TVkUInt32;
const aVertexStride:TVkDeviceSize;
const aVertexFormat:TVkFormat;
const aIndexData:TVkBuffer;
const aIndexOffset:TVkDeviceSize;
const aIndexCount:TVkUInt32;
const aIndexType:TVkIndexType;
const aTransformData:TVkBuffer;
const aTransformOffset:TVkDeviceSize);
{$endif}
end;
PPVkGeometryAABBNV=^PVkGeometryAABBNV;
PVkGeometryAABBNV=^TVkGeometryAABBNV;
TVkGeometryAABBNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
pNext:PVkVoid;
aabbData:TVkBuffer;
numAABBs:TVkUInt32;
stride:TVkUInt32;
offset:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAabbData:TVkBuffer;
const aNumAABBs:TVkUInt32;
const aStride:TVkUInt32;
const aOffset:TVkDeviceSize);
{$endif}
end;
PPVkGeometryDataNV=^PVkGeometryDataNV;
PVkGeometryDataNV=^TVkGeometryDataNV;
TVkGeometryDataNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
triangles:TVkGeometryTrianglesNV;
aabbs:TVkGeometryAABBNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTriangles:TVkGeometryTrianglesNV;
const aAabbs:TVkGeometryAABBNV);
{$endif}
end;
PPVkGeometryNV=^PVkGeometryNV;
PVkGeometryNV=^TVkGeometryNV;
TVkGeometryNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_GEOMETRY_NV
pNext:PVkVoid;
geometryType:TVkGeometryTypeKHR;
geometry:TVkGeometryDataNV;
flags:TVkGeometryFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGeometryType:TVkGeometryTypeKHR;
const aGeometry:TVkGeometryDataNV;
const aFlags:TVkGeometryFlagsKHR);
{$endif}
end;
PPVkAccelerationStructureInfoNV=^PVkAccelerationStructureInfoNV;
PVkAccelerationStructureInfoNV=^TVkAccelerationStructureInfoNV;
TVkAccelerationStructureInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
pNext:PVkVoid;
type_:TVkAccelerationStructureTypeNV;
flags:TVkBuildAccelerationStructureFlagsNV;
instanceCount:TVkUInt32;
geometryCount:TVkUInt32;
pGeometries:PVkGeometryNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkAccelerationStructureTypeNV;
const aFlags:TVkBuildAccelerationStructureFlagsNV;
const aInstanceCount:TVkUInt32;
const aGeometryCount:TVkUInt32;
const aPGeometries:PVkGeometryNV);
{$endif}
end;
PPVkAccelerationStructureCreateInfoNV=^PVkAccelerationStructureCreateInfoNV;
PVkAccelerationStructureCreateInfoNV=^TVkAccelerationStructureCreateInfoNV;
TVkAccelerationStructureCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
pNext:PVkVoid;
compactedSize:TVkDeviceSize;
info:TVkAccelerationStructureInfoNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCompactedSize:TVkDeviceSize;
const aInfo:TVkAccelerationStructureInfoNV);
{$endif}
end;
PPVkBindAccelerationStructureMemoryInfoNV=^PVkBindAccelerationStructureMemoryInfoNV;
PVkBindAccelerationStructureMemoryInfoNV=^TVkBindAccelerationStructureMemoryInfoNV;
TVkBindAccelerationStructureMemoryInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
pNext:PVkVoid;
accelerationStructure:TVkAccelerationStructureNV;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
deviceIndexCount:TVkUInt32;
pDeviceIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructure:TVkAccelerationStructureNV;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32);
{$endif}
end;
PPVkWriteDescriptorSetAccelerationStructureKHR=^PVkWriteDescriptorSetAccelerationStructureKHR;
PVkWriteDescriptorSetAccelerationStructureKHR=^TVkWriteDescriptorSetAccelerationStructureKHR;
TVkWriteDescriptorSetAccelerationStructureKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
pNext:PVkVoid;
accelerationStructureCount:TVkUInt32;
pAccelerationStructures:PVkAccelerationStructureKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructureCount:TVkUInt32;
const aPAccelerationStructures:PVkAccelerationStructureKHR);
{$endif}
end;
PPVkWriteDescriptorSetAccelerationStructureNV=^PVkWriteDescriptorSetAccelerationStructureNV;
PVkWriteDescriptorSetAccelerationStructureNV=^TVkWriteDescriptorSetAccelerationStructureNV;
TVkWriteDescriptorSetAccelerationStructureNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
pNext:PVkVoid;
accelerationStructureCount:TVkUInt32;
pAccelerationStructures:PVkAccelerationStructureNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructureCount:TVkUInt32;
const aPAccelerationStructures:PVkAccelerationStructureNV);
{$endif}
end;
PPVkAccelerationStructureMemoryRequirementsInfoNV=^PVkAccelerationStructureMemoryRequirementsInfoNV;
PVkAccelerationStructureMemoryRequirementsInfoNV=^TVkAccelerationStructureMemoryRequirementsInfoNV;
TVkAccelerationStructureMemoryRequirementsInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
pNext:PVkVoid;
type_:TVkAccelerationStructureMemoryRequirementsTypeNV;
accelerationStructure:TVkAccelerationStructureNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkAccelerationStructureMemoryRequirementsTypeNV;
const aAccelerationStructure:TVkAccelerationStructureNV);
{$endif}
end;
PPVkPhysicalDeviceAccelerationStructureFeaturesKHR=^PVkPhysicalDeviceAccelerationStructureFeaturesKHR;
PVkPhysicalDeviceAccelerationStructureFeaturesKHR=^TVkPhysicalDeviceAccelerationStructureFeaturesKHR;
TVkPhysicalDeviceAccelerationStructureFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
pNext:PVkVoid;
accelerationStructure:TVkBool32;
accelerationStructureCaptureReplay:TVkBool32;
accelerationStructureIndirectBuild:TVkBool32;
accelerationStructureHostCommands:TVkBool32;
descriptorBindingAccelerationStructureUpdateAfterBind:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructure:TVkBool32;
const aAccelerationStructureCaptureReplay:TVkBool32;
const aAccelerationStructureIndirectBuild:TVkBool32;
const aAccelerationStructureHostCommands:TVkBool32;
const aDescriptorBindingAccelerationStructureUpdateAfterBind:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceRayTracingPipelineFeaturesKHR=^PVkPhysicalDeviceRayTracingPipelineFeaturesKHR;
PVkPhysicalDeviceRayTracingPipelineFeaturesKHR=^TVkPhysicalDeviceRayTracingPipelineFeaturesKHR;
TVkPhysicalDeviceRayTracingPipelineFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
pNext:PVkVoid;
rayTracingPipeline:TVkBool32;
rayTracingPipelineShaderGroupHandleCaptureReplay:TVkBool32;
rayTracingPipelineShaderGroupHandleCaptureReplayMixed:TVkBool32;
rayTracingPipelineTraceRaysIndirect:TVkBool32;
rayTraversalPrimitiveCulling:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRayTracingPipeline:TVkBool32;
const aRayTracingPipelineShaderGroupHandleCaptureReplay:TVkBool32;
const aRayTracingPipelineShaderGroupHandleCaptureReplayMixed:TVkBool32;
const aRayTracingPipelineTraceRaysIndirect:TVkBool32;
const aRayTraversalPrimitiveCulling:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceRayQueryFeaturesKHR=^PVkPhysicalDeviceRayQueryFeaturesKHR;
PVkPhysicalDeviceRayQueryFeaturesKHR=^TVkPhysicalDeviceRayQueryFeaturesKHR;
TVkPhysicalDeviceRayQueryFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
pNext:PVkVoid;
rayQuery:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRayQuery:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceAccelerationStructurePropertiesKHR=^PVkPhysicalDeviceAccelerationStructurePropertiesKHR;
PVkPhysicalDeviceAccelerationStructurePropertiesKHR=^TVkPhysicalDeviceAccelerationStructurePropertiesKHR;
TVkPhysicalDeviceAccelerationStructurePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
pNext:PVkVoid;
maxGeometryCount:TVkUInt64;
maxInstanceCount:TVkUInt64;
maxPrimitiveCount:TVkUInt64;
maxPerStageDescriptorAccelerationStructures:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindAccelerationStructures:TVkUInt32;
maxDescriptorSetAccelerationStructures:TVkUInt32;
maxDescriptorSetUpdateAfterBindAccelerationStructures:TVkUInt32;
minAccelerationStructureScratchOffsetAlignment:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxGeometryCount:TVkUInt64;
const aMaxInstanceCount:TVkUInt64;
const aMaxPrimitiveCount:TVkUInt64;
const aMaxPerStageDescriptorAccelerationStructures:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindAccelerationStructures:TVkUInt32;
const aMaxDescriptorSetAccelerationStructures:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindAccelerationStructures:TVkUInt32;
const aMinAccelerationStructureScratchOffsetAlignment:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceRayTracingPipelinePropertiesKHR=^PVkPhysicalDeviceRayTracingPipelinePropertiesKHR;
PVkPhysicalDeviceRayTracingPipelinePropertiesKHR=^TVkPhysicalDeviceRayTracingPipelinePropertiesKHR;
TVkPhysicalDeviceRayTracingPipelinePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
pNext:PVkVoid;
shaderGroupHandleSize:TVkUInt32;
maxRayRecursionDepth:TVkUInt32;
maxShaderGroupStride:TVkUInt32;
shaderGroupBaseAlignment:TVkUInt32;
shaderGroupHandleCaptureReplaySize:TVkUInt32;
maxRayDispatchInvocationCount:TVkUInt32;
shaderGroupHandleAlignment:TVkUInt32;
maxRayHitAttributeSize:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderGroupHandleSize:TVkUInt32;
const aMaxRayRecursionDepth:TVkUInt32;
const aMaxShaderGroupStride:TVkUInt32;
const aShaderGroupBaseAlignment:TVkUInt32;
const aShaderGroupHandleCaptureReplaySize:TVkUInt32;
const aMaxRayDispatchInvocationCount:TVkUInt32;
const aShaderGroupHandleAlignment:TVkUInt32;
const aMaxRayHitAttributeSize:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceRayTracingPropertiesNV=^PVkPhysicalDeviceRayTracingPropertiesNV;
PVkPhysicalDeviceRayTracingPropertiesNV=^TVkPhysicalDeviceRayTracingPropertiesNV;
TVkPhysicalDeviceRayTracingPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
pNext:PVkVoid;
shaderGroupHandleSize:TVkUInt32;
maxRecursionDepth:TVkUInt32;
maxShaderGroupStride:TVkUInt32;
shaderGroupBaseAlignment:TVkUInt32;
maxGeometryCount:TVkUInt64;
maxInstanceCount:TVkUInt64;
maxTriangleCount:TVkUInt64;
maxDescriptorSetAccelerationStructures:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderGroupHandleSize:TVkUInt32;
const aMaxRecursionDepth:TVkUInt32;
const aMaxShaderGroupStride:TVkUInt32;
const aShaderGroupBaseAlignment:TVkUInt32;
const aMaxGeometryCount:TVkUInt64;
const aMaxInstanceCount:TVkUInt64;
const aMaxTriangleCount:TVkUInt64;
const aMaxDescriptorSetAccelerationStructures:TVkUInt32);
{$endif}
end;
PPVkStridedDeviceAddressRegionKHR=^PVkStridedDeviceAddressRegionKHR;
PVkStridedDeviceAddressRegionKHR=^TVkStridedDeviceAddressRegionKHR;
TVkStridedDeviceAddressRegionKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
deviceAddress:TVkDeviceAddress;
stride:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceAddress:TVkDeviceAddress;
const aStride:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkTraceRaysIndirectCommandKHR=^PVkTraceRaysIndirectCommandKHR;
PVkTraceRaysIndirectCommandKHR=^TVkTraceRaysIndirectCommandKHR;
TVkTraceRaysIndirectCommandKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
width:TVkUInt32;
height:TVkUInt32;
depth:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aDepth:TVkUInt32);
{$endif}
end;
PPVkDrmFormatModifierPropertiesEXT=^PVkDrmFormatModifierPropertiesEXT;
PVkDrmFormatModifierPropertiesEXT=^TVkDrmFormatModifierPropertiesEXT;
TVkDrmFormatModifierPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
drmFormatModifier:TVkUInt64;
drmFormatModifierPlaneCount:TVkUInt32;
drmFormatModifierTilingFeatures:TVkFormatFeatureFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifier:TVkUInt64;
const aDrmFormatModifierPlaneCount:TVkUInt32;
const aDrmFormatModifierTilingFeatures:TVkFormatFeatureFlags);
{$endif}
end;
PPVkDrmFormatModifierPropertiesListEXT=^PVkDrmFormatModifierPropertiesListEXT;
PVkDrmFormatModifierPropertiesListEXT=^TVkDrmFormatModifierPropertiesListEXT;
TVkDrmFormatModifierPropertiesListEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
pNext:PVkVoid;
drmFormatModifierCount:TVkUInt32;
pDrmFormatModifierProperties:PVkDrmFormatModifierPropertiesEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifierCount:TVkUInt32;
const aPDrmFormatModifierProperties:PVkDrmFormatModifierPropertiesEXT);
{$endif}
end;
PPVkPhysicalDeviceImageDrmFormatModifierInfoEXT=^PVkPhysicalDeviceImageDrmFormatModifierInfoEXT;
PVkPhysicalDeviceImageDrmFormatModifierInfoEXT=^TVkPhysicalDeviceImageDrmFormatModifierInfoEXT;
TVkPhysicalDeviceImageDrmFormatModifierInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
pNext:PVkVoid;
drmFormatModifier:TVkUInt64;
sharingMode:TVkSharingMode;
queueFamilyIndexCount:TVkUInt32;
pQueueFamilyIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifier:TVkUInt64;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32);
{$endif}
end;
PPVkImageDrmFormatModifierListCreateInfoEXT=^PVkImageDrmFormatModifierListCreateInfoEXT;
PVkImageDrmFormatModifierListCreateInfoEXT=^TVkImageDrmFormatModifierListCreateInfoEXT;
TVkImageDrmFormatModifierListCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
pNext:PVkVoid;
drmFormatModifierCount:TVkUInt32;
pDrmFormatModifiers:PVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifierCount:TVkUInt32;
const aPDrmFormatModifiers:PVkUInt64);
{$endif}
end;
PPVkImageDrmFormatModifierExplicitCreateInfoEXT=^PVkImageDrmFormatModifierExplicitCreateInfoEXT;
PVkImageDrmFormatModifierExplicitCreateInfoEXT=^TVkImageDrmFormatModifierExplicitCreateInfoEXT;
TVkImageDrmFormatModifierExplicitCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
pNext:PVkVoid;
drmFormatModifier:TVkUInt64;
drmFormatModifierPlaneCount:TVkUInt32;
pPlaneLayouts:PVkSubresourceLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifier:TVkUInt64;
const aDrmFormatModifierPlaneCount:TVkUInt32;
const aPPlaneLayouts:PVkSubresourceLayout);
{$endif}
end;
PPVkImageDrmFormatModifierPropertiesEXT=^PVkImageDrmFormatModifierPropertiesEXT;
PVkImageDrmFormatModifierPropertiesEXT=^TVkImageDrmFormatModifierPropertiesEXT;
TVkImageDrmFormatModifierPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
pNext:PVkVoid;
drmFormatModifier:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDrmFormatModifier:TVkUInt64);
{$endif}
end;
PPVkImageStencilUsageCreateInfo=^PVkImageStencilUsageCreateInfo;
PVkImageStencilUsageCreateInfo=^TVkImageStencilUsageCreateInfo;
TVkImageStencilUsageCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
pNext:PVkVoid;
stencilUsage:TVkImageUsageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStencilUsage:TVkImageUsageFlags);
{$endif}
end;
PPVkImageStencilUsageCreateInfoEXT=^PVkImageStencilUsageCreateInfoEXT;
PVkImageStencilUsageCreateInfoEXT=^TVkImageStencilUsageCreateInfoEXT;
TVkImageStencilUsageCreateInfoEXT=TVkImageStencilUsageCreateInfo;
PPVkDeviceMemoryOverallocationCreateInfoAMD=^PVkDeviceMemoryOverallocationCreateInfoAMD;
PVkDeviceMemoryOverallocationCreateInfoAMD=^TVkDeviceMemoryOverallocationCreateInfoAMD;
TVkDeviceMemoryOverallocationCreateInfoAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
pNext:PVkVoid;
overallocationBehavior:TVkMemoryOverallocationBehaviorAMD;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOverallocationBehavior:TVkMemoryOverallocationBehaviorAMD);
{$endif}
end;
PPVkPhysicalDeviceFragmentDensityMapFeaturesEXT=^PVkPhysicalDeviceFragmentDensityMapFeaturesEXT;
PVkPhysicalDeviceFragmentDensityMapFeaturesEXT=^TVkPhysicalDeviceFragmentDensityMapFeaturesEXT;
TVkPhysicalDeviceFragmentDensityMapFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
pNext:PVkVoid;
fragmentDensityMap:TVkBool32;
fragmentDensityMapDynamic:TVkBool32;
fragmentDensityMapNonSubsampledImages:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentDensityMap:TVkBool32;
const aFragmentDensityMapDynamic:TVkBool32;
const aFragmentDensityMapNonSubsampledImages:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentDensityMap2FeaturesEXT=^PVkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
PVkPhysicalDeviceFragmentDensityMap2FeaturesEXT=^TVkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
TVkPhysicalDeviceFragmentDensityMap2FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
pNext:PVkVoid;
fragmentDensityMapDeferred:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentDensityMapDeferred:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentDensityMapPropertiesEXT=^PVkPhysicalDeviceFragmentDensityMapPropertiesEXT;
PVkPhysicalDeviceFragmentDensityMapPropertiesEXT=^TVkPhysicalDeviceFragmentDensityMapPropertiesEXT;
TVkPhysicalDeviceFragmentDensityMapPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
pNext:PVkVoid;
minFragmentDensityTexelSize:TVkExtent2D;
maxFragmentDensityTexelSize:TVkExtent2D;
fragmentDensityInvocations:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinFragmentDensityTexelSize:TVkExtent2D;
const aMaxFragmentDensityTexelSize:TVkExtent2D;
const aFragmentDensityInvocations:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentDensityMap2PropertiesEXT=^PVkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
PVkPhysicalDeviceFragmentDensityMap2PropertiesEXT=^TVkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
TVkPhysicalDeviceFragmentDensityMap2PropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
pNext:PVkVoid;
subsampledLoads:TVkBool32;
subsampledCoarseReconstructionEarlyAccess:TVkBool32;
maxSubsampledArrayLayers:TVkUInt32;
maxDescriptorSetSubsampledSamplers:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubsampledLoads:TVkBool32;
const aSubsampledCoarseReconstructionEarlyAccess:TVkBool32;
const aMaxSubsampledArrayLayers:TVkUInt32;
const aMaxDescriptorSetSubsampledSamplers:TVkUInt32);
{$endif}
end;
PPVkRenderPassFragmentDensityMapCreateInfoEXT=^PVkRenderPassFragmentDensityMapCreateInfoEXT;
PVkRenderPassFragmentDensityMapCreateInfoEXT=^TVkRenderPassFragmentDensityMapCreateInfoEXT;
TVkRenderPassFragmentDensityMapCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
pNext:PVkVoid;
fragmentDensityMapAttachment:TVkAttachmentReference;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentDensityMapAttachment:TVkAttachmentReference);
{$endif}
end;
PPVkPhysicalDeviceScalarBlockLayoutFeatures=^PVkPhysicalDeviceScalarBlockLayoutFeatures;
PVkPhysicalDeviceScalarBlockLayoutFeatures=^TVkPhysicalDeviceScalarBlockLayoutFeatures;
TVkPhysicalDeviceScalarBlockLayoutFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
pNext:PVkVoid;
scalarBlockLayout:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aScalarBlockLayout:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceScalarBlockLayoutFeaturesEXT=^PVkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
PVkPhysicalDeviceScalarBlockLayoutFeaturesEXT=^TVkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
TVkPhysicalDeviceScalarBlockLayoutFeaturesEXT=TVkPhysicalDeviceScalarBlockLayoutFeatures;
PPVkSurfaceProtectedCapabilitiesKHR=^PVkSurfaceProtectedCapabilitiesKHR;
PVkSurfaceProtectedCapabilitiesKHR=^TVkSurfaceProtectedCapabilitiesKHR;
TVkSurfaceProtectedCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
pNext:PVkVoid;
supportsProtected:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSupportsProtected:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceUniformBufferStandardLayoutFeatures=^PVkPhysicalDeviceUniformBufferStandardLayoutFeatures;
PVkPhysicalDeviceUniformBufferStandardLayoutFeatures=^TVkPhysicalDeviceUniformBufferStandardLayoutFeatures;
TVkPhysicalDeviceUniformBufferStandardLayoutFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
pNext:PVkVoid;
uniformBufferStandardLayout:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aUniformBufferStandardLayout:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR=^PVkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
PVkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR=^TVkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
TVkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR=TVkPhysicalDeviceUniformBufferStandardLayoutFeatures;
PPVkPhysicalDeviceDepthClipEnableFeaturesEXT=^PVkPhysicalDeviceDepthClipEnableFeaturesEXT;
PVkPhysicalDeviceDepthClipEnableFeaturesEXT=^TVkPhysicalDeviceDepthClipEnableFeaturesEXT;
TVkPhysicalDeviceDepthClipEnableFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
pNext:PVkVoid;
depthClipEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDepthClipEnable:TVkBool32);
{$endif}
end;
PPVkPipelineRasterizationDepthClipStateCreateInfoEXT=^PVkPipelineRasterizationDepthClipStateCreateInfoEXT;
PVkPipelineRasterizationDepthClipStateCreateInfoEXT=^TVkPipelineRasterizationDepthClipStateCreateInfoEXT;
TVkPipelineRasterizationDepthClipStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkPipelineRasterizationDepthClipStateCreateFlagsEXT;
depthClipEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineRasterizationDepthClipStateCreateFlagsEXT;
const aDepthClipEnable:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceMemoryBudgetPropertiesEXT=^PVkPhysicalDeviceMemoryBudgetPropertiesEXT;
PVkPhysicalDeviceMemoryBudgetPropertiesEXT=^TVkPhysicalDeviceMemoryBudgetPropertiesEXT;
TVkPhysicalDeviceMemoryBudgetPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
pNext:PVkVoid;
heapBudget:array[0..VK_MAX_MEMORY_HEAPS-1] of TVkDeviceSize;
heapUsage:array[0..VK_MAX_MEMORY_HEAPS-1] of TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHeapBudget:array of TVkDeviceSize;
const aHeapUsage:array of TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceMemoryPriorityFeaturesEXT=^PVkPhysicalDeviceMemoryPriorityFeaturesEXT;
PVkPhysicalDeviceMemoryPriorityFeaturesEXT=^TVkPhysicalDeviceMemoryPriorityFeaturesEXT;
TVkPhysicalDeviceMemoryPriorityFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
pNext:PVkVoid;
memoryPriority:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryPriority:TVkBool32);
{$endif}
end;
PPVkMemoryPriorityAllocateInfoEXT=^PVkMemoryPriorityAllocateInfoEXT;
PVkMemoryPriorityAllocateInfoEXT=^TVkMemoryPriorityAllocateInfoEXT;
TVkMemoryPriorityAllocateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
pNext:PVkVoid;
priority:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPriority:TVkFloat);
{$endif}
end;
PPVkPhysicalDeviceBufferDeviceAddressFeatures=^PVkPhysicalDeviceBufferDeviceAddressFeatures;
PVkPhysicalDeviceBufferDeviceAddressFeatures=^TVkPhysicalDeviceBufferDeviceAddressFeatures;
TVkPhysicalDeviceBufferDeviceAddressFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
pNext:PVkVoid;
bufferDeviceAddress:TVkBool32;
bufferDeviceAddressCaptureReplay:TVkBool32;
bufferDeviceAddressMultiDevice:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceBufferDeviceAddressFeaturesKHR=^PVkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
PVkPhysicalDeviceBufferDeviceAddressFeaturesKHR=^TVkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
TVkPhysicalDeviceBufferDeviceAddressFeaturesKHR=TVkPhysicalDeviceBufferDeviceAddressFeatures;
PPVkPhysicalDeviceBufferDeviceAddressFeaturesEXT=^PVkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
PVkPhysicalDeviceBufferDeviceAddressFeaturesEXT=^TVkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
TVkPhysicalDeviceBufferDeviceAddressFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
pNext:PVkVoid;
bufferDeviceAddress:TVkBool32;
bufferDeviceAddressCaptureReplay:TVkBool32;
bufferDeviceAddressMultiDevice:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceBufferAddressFeaturesEXT=^PVkPhysicalDeviceBufferAddressFeaturesEXT;
PVkPhysicalDeviceBufferAddressFeaturesEXT=^TVkPhysicalDeviceBufferAddressFeaturesEXT;
TVkPhysicalDeviceBufferAddressFeaturesEXT=TVkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
PPVkBufferDeviceAddressInfo=^PVkBufferDeviceAddressInfo;
PVkBufferDeviceAddressInfo=^TVkBufferDeviceAddressInfo;
TVkBufferDeviceAddressInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
pNext:PVkVoid;
buffer:TVkBuffer;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBuffer:TVkBuffer);
{$endif}
end;
PPVkBufferDeviceAddressInfoKHR=^PVkBufferDeviceAddressInfoKHR;
PVkBufferDeviceAddressInfoKHR=^TVkBufferDeviceAddressInfoKHR;
TVkBufferDeviceAddressInfoKHR=TVkBufferDeviceAddressInfo;
PPVkBufferDeviceAddressInfoEXT=^PVkBufferDeviceAddressInfoEXT;
PVkBufferDeviceAddressInfoEXT=^TVkBufferDeviceAddressInfoEXT;
TVkBufferDeviceAddressInfoEXT=TVkBufferDeviceAddressInfo;
PPVkBufferOpaqueCaptureAddressCreateInfo=^PVkBufferOpaqueCaptureAddressCreateInfo;
PVkBufferOpaqueCaptureAddressCreateInfo=^TVkBufferOpaqueCaptureAddressCreateInfo;
TVkBufferOpaqueCaptureAddressCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
pNext:PVkVoid;
opaqueCaptureAddress:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOpaqueCaptureAddress:TVkUInt64);
{$endif}
end;
PPVkBufferOpaqueCaptureAddressCreateInfoKHR=^PVkBufferOpaqueCaptureAddressCreateInfoKHR;
PVkBufferOpaqueCaptureAddressCreateInfoKHR=^TVkBufferOpaqueCaptureAddressCreateInfoKHR;
TVkBufferOpaqueCaptureAddressCreateInfoKHR=TVkBufferOpaqueCaptureAddressCreateInfo;
PPVkBufferDeviceAddressCreateInfoEXT=^PVkBufferDeviceAddressCreateInfoEXT;
PVkBufferDeviceAddressCreateInfoEXT=^TVkBufferDeviceAddressCreateInfoEXT;
TVkBufferDeviceAddressCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
pNext:PVkVoid;
deviceAddress:TVkDeviceAddress;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceAddress:TVkDeviceAddress);
{$endif}
end;
PPVkPhysicalDeviceImageViewImageFormatInfoEXT=^PVkPhysicalDeviceImageViewImageFormatInfoEXT;
PVkPhysicalDeviceImageViewImageFormatInfoEXT=^TVkPhysicalDeviceImageViewImageFormatInfoEXT;
TVkPhysicalDeviceImageViewImageFormatInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
pNext:PVkVoid;
imageViewType:TVkImageViewType;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageViewType:TVkImageViewType);
{$endif}
end;
PPVkFilterCubicImageViewImageFormatPropertiesEXT=^PVkFilterCubicImageViewImageFormatPropertiesEXT;
PVkFilterCubicImageViewImageFormatPropertiesEXT=^TVkFilterCubicImageViewImageFormatPropertiesEXT;
TVkFilterCubicImageViewImageFormatPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
pNext:PVkVoid;
filterCubic:TVkBool32;
filterCubicMinmax:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFilterCubic:TVkBool32;
const aFilterCubicMinmax:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceImagelessFramebufferFeatures=^PVkPhysicalDeviceImagelessFramebufferFeatures;
PVkPhysicalDeviceImagelessFramebufferFeatures=^TVkPhysicalDeviceImagelessFramebufferFeatures;
TVkPhysicalDeviceImagelessFramebufferFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
pNext:PVkVoid;
imagelessFramebuffer:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImagelessFramebuffer:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceImagelessFramebufferFeaturesKHR=^PVkPhysicalDeviceImagelessFramebufferFeaturesKHR;
PVkPhysicalDeviceImagelessFramebufferFeaturesKHR=^TVkPhysicalDeviceImagelessFramebufferFeaturesKHR;
TVkPhysicalDeviceImagelessFramebufferFeaturesKHR=TVkPhysicalDeviceImagelessFramebufferFeatures;
PPVkFramebufferAttachmentImageInfo=^PVkFramebufferAttachmentImageInfo;
PVkFramebufferAttachmentImageInfo=^TVkFramebufferAttachmentImageInfo;
TVkFramebufferAttachmentImageInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
pNext:PVkVoid;
flags:TVkImageCreateFlags;
usage:TVkImageUsageFlags;
width:TVkUInt32;
height:TVkUInt32;
layerCount:TVkUInt32;
viewFormatCount:TVkUInt32;
pViewFormats:PVkFormat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkImageCreateFlags;
const aUsage:TVkImageUsageFlags;
const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aLayerCount:TVkUInt32;
const aViewFormatCount:TVkUInt32;
const aPViewFormats:PVkFormat);
{$endif}
end;
PPVkFramebufferAttachmentsCreateInfo=^PVkFramebufferAttachmentsCreateInfo;
PVkFramebufferAttachmentsCreateInfo=^TVkFramebufferAttachmentsCreateInfo;
TVkFramebufferAttachmentsCreateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
pNext:PVkVoid;
attachmentImageInfoCount:TVkUInt32;
pAttachmentImageInfos:PVkFramebufferAttachmentImageInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachmentImageInfoCount:TVkUInt32;
const aPAttachmentImageInfos:PVkFramebufferAttachmentImageInfo);
{$endif}
end;
PPVkFramebufferAttachmentsCreateInfoKHR=^PVkFramebufferAttachmentsCreateInfoKHR;
PVkFramebufferAttachmentsCreateInfoKHR=^TVkFramebufferAttachmentsCreateInfoKHR;
TVkFramebufferAttachmentsCreateInfoKHR=TVkFramebufferAttachmentsCreateInfo;
PPVkFramebufferAttachmentImageInfoKHR=^PVkFramebufferAttachmentImageInfoKHR;
PVkFramebufferAttachmentImageInfoKHR=^TVkFramebufferAttachmentImageInfoKHR;
TVkFramebufferAttachmentImageInfoKHR=TVkFramebufferAttachmentImageInfo;
PPVkRenderPassAttachmentBeginInfo=^PVkRenderPassAttachmentBeginInfo;
PVkRenderPassAttachmentBeginInfo=^TVkRenderPassAttachmentBeginInfo;
TVkRenderPassAttachmentBeginInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
pNext:PVkVoid;
attachmentCount:TVkUInt32;
pAttachments:PVkImageView;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkImageView);
{$endif}
end;
PPVkRenderPassAttachmentBeginInfoKHR=^PVkRenderPassAttachmentBeginInfoKHR;
PVkRenderPassAttachmentBeginInfoKHR=^TVkRenderPassAttachmentBeginInfoKHR;
TVkRenderPassAttachmentBeginInfoKHR=TVkRenderPassAttachmentBeginInfo;
PPVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT=^PVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
PVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT=^TVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
TVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT
pNext:PVkVoid;
textureCompressionASTC_HDR:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTextureCompressionASTC_HDR:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceCooperativeMatrixFeaturesNV=^PVkPhysicalDeviceCooperativeMatrixFeaturesNV;
PVkPhysicalDeviceCooperativeMatrixFeaturesNV=^TVkPhysicalDeviceCooperativeMatrixFeaturesNV;
TVkPhysicalDeviceCooperativeMatrixFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
pNext:PVkVoid;
cooperativeMatrix:TVkBool32;
cooperativeMatrixRobustBufferAccess:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCooperativeMatrix:TVkBool32;
const aCooperativeMatrixRobustBufferAccess:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceCooperativeMatrixPropertiesNV=^PVkPhysicalDeviceCooperativeMatrixPropertiesNV;
PVkPhysicalDeviceCooperativeMatrixPropertiesNV=^TVkPhysicalDeviceCooperativeMatrixPropertiesNV;
TVkPhysicalDeviceCooperativeMatrixPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
pNext:PVkVoid;
cooperativeMatrixSupportedStages:TVkShaderStageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCooperativeMatrixSupportedStages:TVkShaderStageFlags);
{$endif}
end;
PPVkCooperativeMatrixPropertiesNV=^PVkCooperativeMatrixPropertiesNV;
PVkCooperativeMatrixPropertiesNV=^TVkCooperativeMatrixPropertiesNV;
TVkCooperativeMatrixPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
pNext:PVkVoid;
MSize:TVkUInt32;
NSize:TVkUInt32;
KSize:TVkUInt32;
AType:TVkComponentTypeNV;
BType:TVkComponentTypeNV;
CType:TVkComponentTypeNV;
DType:TVkComponentTypeNV;
scope:TVkScopeNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMSize:TVkUInt32;
const aNSize:TVkUInt32;
const aKSize:TVkUInt32;
const aAType:TVkComponentTypeNV;
const aBType:TVkComponentTypeNV;
const aCType:TVkComponentTypeNV;
const aDType:TVkComponentTypeNV;
const aScope:TVkScopeNV);
{$endif}
end;
PPVkPhysicalDeviceYcbcrImageArraysFeaturesEXT=^PVkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
PVkPhysicalDeviceYcbcrImageArraysFeaturesEXT=^TVkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
TVkPhysicalDeviceYcbcrImageArraysFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
pNext:PVkVoid;
ycbcrImageArrays:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aYcbcrImageArrays:TVkBool32);
{$endif}
end;
PPVkImageViewHandleInfoNVX=^PVkImageViewHandleInfoNVX;
PVkImageViewHandleInfoNVX=^TVkImageViewHandleInfoNVX;
TVkImageViewHandleInfoNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
pNext:PVkVoid;
imageView:TVkImageView;
descriptorType:TVkDescriptorType;
sampler:TVkSampler;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageView:TVkImageView;
const aDescriptorType:TVkDescriptorType;
const aSampler:TVkSampler);
{$endif}
end;
PPVkImageViewAddressPropertiesNVX=^PVkImageViewAddressPropertiesNVX;
PVkImageViewAddressPropertiesNVX=^TVkImageViewAddressPropertiesNVX;
TVkImageViewAddressPropertiesNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
pNext:PVkVoid;
deviceAddress:TVkDeviceAddress;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceAddress:TVkDeviceAddress;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkPresentFrameTokenGGP=^PVkPresentFrameTokenGGP;
PVkPresentFrameTokenGGP=^TVkPresentFrameTokenGGP;
TVkPresentFrameTokenGGP=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
pNext:PVkVoid;
frameToken:TVkGgpFrameToken;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFrameToken:TVkGgpFrameToken);
{$endif}
end;
PPVkPipelineCreationFeedbackEXT=^PVkPipelineCreationFeedbackEXT;
PVkPipelineCreationFeedbackEXT=^TVkPipelineCreationFeedbackEXT;
TVkPipelineCreationFeedbackEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
flags:TVkPipelineCreationFeedbackFlagsEXT;
duration:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCreationFeedbackFlagsEXT;
const aDuration:TVkUInt64);
{$endif}
end;
PPVkPipelineCreationFeedbackCreateInfoEXT=^PVkPipelineCreationFeedbackCreateInfoEXT;
PVkPipelineCreationFeedbackCreateInfoEXT=^TVkPipelineCreationFeedbackCreateInfoEXT;
TVkPipelineCreationFeedbackCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT
pNext:PVkVoid;
pPipelineCreationFeedback:PVkPipelineCreationFeedbackEXT;
pipelineStageCreationFeedbackCount:TVkUInt32;
pPipelineStageCreationFeedbacks:PPVkPipelineCreationFeedbackEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPPipelineCreationFeedback:PVkPipelineCreationFeedbackEXT;
const aPipelineStageCreationFeedbackCount:TVkUInt32;
const aPPipelineStageCreationFeedbacks:PPVkPipelineCreationFeedbackEXT);
{$endif}
end;
PPVkSurfaceFullScreenExclusiveInfoEXT=^PVkSurfaceFullScreenExclusiveInfoEXT;
PVkSurfaceFullScreenExclusiveInfoEXT=^TVkSurfaceFullScreenExclusiveInfoEXT;
TVkSurfaceFullScreenExclusiveInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
pNext:PVkVoid;
fullScreenExclusive:TVkFullScreenExclusiveEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFullScreenExclusive:TVkFullScreenExclusiveEXT);
{$endif}
end;
{$ifdef Windows}
PPVkSurfaceFullScreenExclusiveWin32InfoEXT=^PVkSurfaceFullScreenExclusiveWin32InfoEXT;
PVkSurfaceFullScreenExclusiveWin32InfoEXT=^TVkSurfaceFullScreenExclusiveWin32InfoEXT;
TVkSurfaceFullScreenExclusiveWin32InfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
pNext:PVkVoid;
hmonitor_:TVkHMONITOR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHmonitor_:TVkHMONITOR);
{$endif}
end;
{$endif}
PPVkSurfaceCapabilitiesFullScreenExclusiveEXT=^PVkSurfaceCapabilitiesFullScreenExclusiveEXT;
PVkSurfaceCapabilitiesFullScreenExclusiveEXT=^TVkSurfaceCapabilitiesFullScreenExclusiveEXT;
TVkSurfaceCapabilitiesFullScreenExclusiveEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
pNext:PVkVoid;
fullScreenExclusiveSupported:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFullScreenExclusiveSupported:TVkBool32);
{$endif}
end;
PPVkPhysicalDevicePerformanceQueryFeaturesKHR=^PVkPhysicalDevicePerformanceQueryFeaturesKHR;
PVkPhysicalDevicePerformanceQueryFeaturesKHR=^TVkPhysicalDevicePerformanceQueryFeaturesKHR;
TVkPhysicalDevicePerformanceQueryFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
pNext:PVkVoid;
performanceCounterQueryPools:TVkBool32;
performanceCounterMultipleQueryPools:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPerformanceCounterQueryPools:TVkBool32;
const aPerformanceCounterMultipleQueryPools:TVkBool32);
{$endif}
end;
PPVkPhysicalDevicePerformanceQueryPropertiesKHR=^PVkPhysicalDevicePerformanceQueryPropertiesKHR;
PVkPhysicalDevicePerformanceQueryPropertiesKHR=^TVkPhysicalDevicePerformanceQueryPropertiesKHR;
TVkPhysicalDevicePerformanceQueryPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
pNext:PVkVoid;
allowCommandBufferQueryCopies:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAllowCommandBufferQueryCopies:TVkBool32);
{$endif}
end;
PPVkPerformanceCounterKHR=^PVkPerformanceCounterKHR;
PVkPerformanceCounterKHR=^TVkPerformanceCounterKHR;
TVkPerformanceCounterKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
pNext:PVkVoid;
unit_:TVkPerformanceCounterUnitKHR;
scope:TVkPerformanceCounterScopeKHR;
storage:TVkPerformanceCounterStorageKHR;
uuid:array[0..VK_UUID_SIZE-1] of TVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aUnit_:TVkPerformanceCounterUnitKHR;
const aScope:TVkPerformanceCounterScopeKHR;
const aStorage:TVkPerformanceCounterStorageKHR;
const aUuid:array of TVkUInt8);
{$endif}
end;
PPVkPerformanceCounterDescriptionKHR=^PVkPerformanceCounterDescriptionKHR;
PVkPerformanceCounterDescriptionKHR=^TVkPerformanceCounterDescriptionKHR;
TVkPerformanceCounterDescriptionKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
pNext:PVkVoid;
flags:TVkPerformanceCounterDescriptionFlagsKHR;
name:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
category:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPerformanceCounterDescriptionFlagsKHR;
const aName:TVkCharString;
const aCategory:TVkCharString;
const aDescription:TVkCharString);
{$endif}
end;
PPVkQueryPoolPerformanceCreateInfoKHR=^PVkQueryPoolPerformanceCreateInfoKHR;
PVkQueryPoolPerformanceCreateInfoKHR=^TVkQueryPoolPerformanceCreateInfoKHR;
TVkQueryPoolPerformanceCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
pNext:PVkVoid;
queueFamilyIndex:TVkUInt32;
counterIndexCount:TVkUInt32;
pCounterIndices:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aQueueFamilyIndex:TVkUInt32;
const aCounterIndexCount:TVkUInt32;
const aPCounterIndices:PVkUInt32);
{$endif}
end;
PPVkPerformanceCounterResultKHR=^PVkPerformanceCounterResultKHR;
PVkPerformanceCounterResultKHR=^TVkPerformanceCounterResultKHR;
TVkPerformanceCounterResultKHR=record
case longint of
0:(
int32:TVkInt32;
);
1:(
int64:TVkInt64;
);
2:(
uint32:TVkUInt32;
);
3:(
uint64:TVkUInt64;
);
4:(
float32:TVkFloat;
);
5:(
float64:TVkDouble;
);
end;
PPVkAcquireProfilingLockInfoKHR=^PVkAcquireProfilingLockInfoKHR;
PVkAcquireProfilingLockInfoKHR=^TVkAcquireProfilingLockInfoKHR;
TVkAcquireProfilingLockInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
pNext:PVkVoid;
flags:TVkAcquireProfilingLockFlagsKHR;
timeout:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkAcquireProfilingLockFlagsKHR;
const aTimeout:TVkUInt64);
{$endif}
end;
PPVkPerformanceQuerySubmitInfoKHR=^PVkPerformanceQuerySubmitInfoKHR;
PVkPerformanceQuerySubmitInfoKHR=^TVkPerformanceQuerySubmitInfoKHR;
TVkPerformanceQuerySubmitInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
pNext:PVkVoid;
counterPassIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCounterPassIndex:TVkUInt32);
{$endif}
end;
PPVkHeadlessSurfaceCreateInfoEXT=^PVkHeadlessSurfaceCreateInfoEXT;
PVkHeadlessSurfaceCreateInfoEXT=^TVkHeadlessSurfaceCreateInfoEXT;
TVkHeadlessSurfaceCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkHeadlessSurfaceCreateFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkHeadlessSurfaceCreateFlagsEXT);
{$endif}
end;
PPVkPhysicalDeviceCoverageReductionModeFeaturesNV=^PVkPhysicalDeviceCoverageReductionModeFeaturesNV;
PVkPhysicalDeviceCoverageReductionModeFeaturesNV=^TVkPhysicalDeviceCoverageReductionModeFeaturesNV;
TVkPhysicalDeviceCoverageReductionModeFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
pNext:PVkVoid;
coverageReductionMode:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCoverageReductionMode:TVkBool32);
{$endif}
end;
PPVkPipelineCoverageReductionStateCreateInfoNV=^PVkPipelineCoverageReductionStateCreateInfoNV;
PVkPipelineCoverageReductionStateCreateInfoNV=^TVkPipelineCoverageReductionStateCreateInfoNV;
TVkPipelineCoverageReductionStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkPipelineCoverageReductionStateCreateFlagsNV;
coverageReductionMode:TVkCoverageReductionModeNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCoverageReductionStateCreateFlagsNV;
const aCoverageReductionMode:TVkCoverageReductionModeNV);
{$endif}
end;
PPVkFramebufferMixedSamplesCombinationNV=^PVkFramebufferMixedSamplesCombinationNV;
PVkFramebufferMixedSamplesCombinationNV=^TVkFramebufferMixedSamplesCombinationNV;
TVkFramebufferMixedSamplesCombinationNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
pNext:PVkVoid;
coverageReductionMode:TVkCoverageReductionModeNV;
rasterizationSamples:TVkSampleCountFlagBits;
depthStencilSamples:TVkSampleCountFlags;
colorSamples:TVkSampleCountFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCoverageReductionMode:TVkCoverageReductionModeNV;
const aRasterizationSamples:TVkSampleCountFlagBits;
const aDepthStencilSamples:TVkSampleCountFlags;
const aColorSamples:TVkSampleCountFlags);
{$endif}
end;
PPVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL=^PVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
PVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL=^TVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
TVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
pNext:PVkVoid;
shaderIntegerFunctions2:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderIntegerFunctions2:TVkBool32);
{$endif}
end;
PPVkPerformanceValueDataINTEL=^PVkPerformanceValueDataINTEL;
PVkPerformanceValueDataINTEL=^TVkPerformanceValueDataINTEL;
TVkPerformanceValueDataINTEL=record
case longint of
0:(
value32:TVkUInt32;
);
1:(
value64:TVkUInt64;
);
2:(
valueFloat:TVkFloat;
);
3:(
valueBool:TVkBool32;
);
4:(
valueString:PVkChar;
);
end;
PPVkPerformanceValueINTEL=^PVkPerformanceValueINTEL;
PVkPerformanceValueINTEL=^TVkPerformanceValueINTEL;
TVkPerformanceValueINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
type_:TVkPerformanceValueTypeINTEL;
data:TVkPerformanceValueDataINTEL;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkPerformanceValueTypeINTEL;
const aData:TVkPerformanceValueDataINTEL);
{$endif}
end;
PPVkInitializePerformanceApiInfoINTEL=^PVkInitializePerformanceApiInfoINTEL;
PVkInitializePerformanceApiInfoINTEL=^TVkInitializePerformanceApiInfoINTEL;
TVkInitializePerformanceApiInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
pNext:PVkVoid;
pUserData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPUserData:PVkVoid);
{$endif}
end;
PPVkQueryPoolPerformanceQueryCreateInfoINTEL=^PVkQueryPoolPerformanceQueryCreateInfoINTEL;
PVkQueryPoolPerformanceQueryCreateInfoINTEL=^TVkQueryPoolPerformanceQueryCreateInfoINTEL;
TVkQueryPoolPerformanceQueryCreateInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
pNext:PVkVoid;
performanceCountersSampling:TVkQueryPoolSamplingModeINTEL;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPerformanceCountersSampling:TVkQueryPoolSamplingModeINTEL);
{$endif}
end;
PPVkQueryPoolCreateInfoINTEL=^PVkQueryPoolCreateInfoINTEL;
PVkQueryPoolCreateInfoINTEL=^TVkQueryPoolCreateInfoINTEL;
TVkQueryPoolCreateInfoINTEL=TVkQueryPoolPerformanceQueryCreateInfoINTEL;
PPVkPerformanceMarkerInfoINTEL=^PVkPerformanceMarkerInfoINTEL;
PVkPerformanceMarkerInfoINTEL=^TVkPerformanceMarkerInfoINTEL;
TVkPerformanceMarkerInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
pNext:PVkVoid;
marker:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMarker:TVkUInt64);
{$endif}
end;
PPVkPerformanceStreamMarkerInfoINTEL=^PVkPerformanceStreamMarkerInfoINTEL;
PVkPerformanceStreamMarkerInfoINTEL=^TVkPerformanceStreamMarkerInfoINTEL;
TVkPerformanceStreamMarkerInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
pNext:PVkVoid;
marker:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMarker:TVkUInt32);
{$endif}
end;
PPVkPerformanceOverrideInfoINTEL=^PVkPerformanceOverrideInfoINTEL;
PVkPerformanceOverrideInfoINTEL=^TVkPerformanceOverrideInfoINTEL;
TVkPerformanceOverrideInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
pNext:PVkVoid;
type_:TVkPerformanceOverrideTypeINTEL;
enable:TVkBool32;
parameter:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkPerformanceOverrideTypeINTEL;
const aEnable:TVkBool32;
const aParameter:TVkUInt64);
{$endif}
end;
PPVkPerformanceConfigurationAcquireInfoINTEL=^PVkPerformanceConfigurationAcquireInfoINTEL;
PVkPerformanceConfigurationAcquireInfoINTEL=^TVkPerformanceConfigurationAcquireInfoINTEL;
TVkPerformanceConfigurationAcquireInfoINTEL=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
pNext:PVkVoid;
type_:TVkPerformanceConfigurationTypeINTEL;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkPerformanceConfigurationTypeINTEL);
{$endif}
end;
PPVkPhysicalDeviceShaderClockFeaturesKHR=^PVkPhysicalDeviceShaderClockFeaturesKHR;
PVkPhysicalDeviceShaderClockFeaturesKHR=^TVkPhysicalDeviceShaderClockFeaturesKHR;
TVkPhysicalDeviceShaderClockFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
pNext:PVkVoid;
shaderSubgroupClock:TVkBool32;
shaderDeviceClock:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderSubgroupClock:TVkBool32;
const aShaderDeviceClock:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceIndexTypeUint8FeaturesEXT=^PVkPhysicalDeviceIndexTypeUint8FeaturesEXT;
PVkPhysicalDeviceIndexTypeUint8FeaturesEXT=^TVkPhysicalDeviceIndexTypeUint8FeaturesEXT;
TVkPhysicalDeviceIndexTypeUint8FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
pNext:PVkVoid;
indexTypeUint8:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aIndexTypeUint8:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderSMBuiltinsPropertiesNV=^PVkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
PVkPhysicalDeviceShaderSMBuiltinsPropertiesNV=^TVkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
TVkPhysicalDeviceShaderSMBuiltinsPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
pNext:PVkVoid;
shaderSMCount:TVkUInt32;
shaderWarpsPerSM:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderSMCount:TVkUInt32;
const aShaderWarpsPerSM:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceShaderSMBuiltinsFeaturesNV=^PVkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
PVkPhysicalDeviceShaderSMBuiltinsFeaturesNV=^TVkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
TVkPhysicalDeviceShaderSMBuiltinsFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
pNext:PVkVoid;
shaderSMBuiltins:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderSMBuiltins:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT=^PVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
PVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT=^TVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
TVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
pNext:PVkVoid;
fragmentShaderSampleInterlock:TVkBool32;
fragmentShaderPixelInterlock:TVkBool32;
fragmentShaderShadingRateInterlock:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentShaderSampleInterlock:TVkBool32;
const aFragmentShaderPixelInterlock:TVkBool32;
const aFragmentShaderShadingRateInterlock:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures=^PVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
PVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures=^TVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
TVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
pNext:PVkVoid;
separateDepthStencilLayouts:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSeparateDepthStencilLayouts:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR=^PVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
PVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR=^TVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
TVkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR=TVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
PPVkAttachmentReferenceStencilLayout=^PVkAttachmentReferenceStencilLayout;
PVkAttachmentReferenceStencilLayout=^TVkAttachmentReferenceStencilLayout;
TVkAttachmentReferenceStencilLayout=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
pNext:PVkVoid;
stencilLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStencilLayout:TVkImageLayout);
{$endif}
end;
PPVkAttachmentReferenceStencilLayoutKHR=^PVkAttachmentReferenceStencilLayoutKHR;
PVkAttachmentReferenceStencilLayoutKHR=^TVkAttachmentReferenceStencilLayoutKHR;
TVkAttachmentReferenceStencilLayoutKHR=TVkAttachmentReferenceStencilLayout;
PPVkAttachmentDescriptionStencilLayout=^PVkAttachmentDescriptionStencilLayout;
PVkAttachmentDescriptionStencilLayout=^TVkAttachmentDescriptionStencilLayout;
TVkAttachmentDescriptionStencilLayout=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
pNext:PVkVoid;
stencilInitialLayout:TVkImageLayout;
stencilFinalLayout:TVkImageLayout;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStencilInitialLayout:TVkImageLayout;
const aStencilFinalLayout:TVkImageLayout);
{$endif}
end;
PPVkAttachmentDescriptionStencilLayoutKHR=^PVkAttachmentDescriptionStencilLayoutKHR;
PVkAttachmentDescriptionStencilLayoutKHR=^TVkAttachmentDescriptionStencilLayoutKHR;
TVkAttachmentDescriptionStencilLayoutKHR=TVkAttachmentDescriptionStencilLayout;
PPVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR=^PVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
PVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR=^TVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
TVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
pNext:PVkVoid;
pipelineExecutableInfo:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipelineExecutableInfo:TVkBool32);
{$endif}
end;
PPVkPipelineInfoKHR=^PVkPipelineInfoKHR;
PVkPipelineInfoKHR=^TVkPipelineInfoKHR;
TVkPipelineInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
pNext:PVkVoid;
pipeline:TVkPipeline;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipeline:TVkPipeline);
{$endif}
end;
PPVkPipelineExecutablePropertiesKHR=^PVkPipelineExecutablePropertiesKHR;
PVkPipelineExecutablePropertiesKHR=^TVkPipelineExecutablePropertiesKHR;
TVkPipelineExecutablePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
pNext:PVkVoid;
stages:TVkShaderStageFlags;
name:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
subgroupSize:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStages:TVkShaderStageFlags;
const aName:TVkCharString;
const aDescription:TVkCharString;
const aSubgroupSize:TVkUInt32);
{$endif}
end;
PPVkPipelineExecutableInfoKHR=^PVkPipelineExecutableInfoKHR;
PVkPipelineExecutableInfoKHR=^TVkPipelineExecutableInfoKHR;
TVkPipelineExecutableInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
pNext:PVkVoid;
pipeline:TVkPipeline;
executableIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipeline:TVkPipeline;
const aExecutableIndex:TVkUInt32);
{$endif}
end;
PPVkPipelineExecutableStatisticValueKHR=^PVkPipelineExecutableStatisticValueKHR;
PVkPipelineExecutableStatisticValueKHR=^TVkPipelineExecutableStatisticValueKHR;
TVkPipelineExecutableStatisticValueKHR=record
case longint of
0:(
b32:TVkBool32;
);
1:(
i64:TVkInt64;
);
2:(
u64:TVkUInt64;
);
3:(
f64:TVkDouble;
);
end;
PPVkPipelineExecutableStatisticKHR=^PVkPipelineExecutableStatisticKHR;
PVkPipelineExecutableStatisticKHR=^TVkPipelineExecutableStatisticKHR;
TVkPipelineExecutableStatisticKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
pNext:PVkVoid;
name:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
format:TVkPipelineExecutableStatisticFormatKHR;
value:TVkPipelineExecutableStatisticValueKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aName:TVkCharString;
const aDescription:TVkCharString;
const aFormat:TVkPipelineExecutableStatisticFormatKHR;
const aValue:TVkPipelineExecutableStatisticValueKHR);
{$endif}
end;
PPVkPipelineExecutableInternalRepresentationKHR=^PVkPipelineExecutableInternalRepresentationKHR;
PVkPipelineExecutableInternalRepresentationKHR=^TVkPipelineExecutableInternalRepresentationKHR;
TVkPipelineExecutableInternalRepresentationKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
pNext:PVkVoid;
name:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
isText:TVkBool32;
dataSize:TVkSize;
pData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aName:TVkCharString;
const aDescription:TVkCharString;
const aIsText:TVkBool32;
const aDataSize:TVkSize;
const aPData:PVkVoid);
{$endif}
end;
PPVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT=^PVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
PVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT=^TVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
TVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT
pNext:PVkVoid;
shaderDemoteToHelperInvocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderDemoteToHelperInvocation:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT=^PVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
PVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT=^TVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
TVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
pNext:PVkVoid;
texelBufferAlignment:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTexelBufferAlignment:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT=^PVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
PVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT=^TVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
TVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT
pNext:PVkVoid;
storageTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
storageTexelBufferOffsetSingleTexelAlignment:TVkBool32;
uniformTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
uniformTexelBufferOffsetSingleTexelAlignment:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStorageTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
const aStorageTexelBufferOffsetSingleTexelAlignment:TVkBool32;
const aUniformTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
const aUniformTexelBufferOffsetSingleTexelAlignment:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSubgroupSizeControlFeaturesEXT=^PVkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
PVkPhysicalDeviceSubgroupSizeControlFeaturesEXT=^TVkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
TVkPhysicalDeviceSubgroupSizeControlFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT
pNext:PVkVoid;
subgroupSizeControl:TVkBool32;
computeFullSubgroups:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubgroupSizeControl:TVkBool32;
const aComputeFullSubgroups:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSubgroupSizeControlPropertiesEXT=^PVkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
PVkPhysicalDeviceSubgroupSizeControlPropertiesEXT=^TVkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
TVkPhysicalDeviceSubgroupSizeControlPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT
pNext:PVkVoid;
minSubgroupSize:TVkUInt32;
maxSubgroupSize:TVkUInt32;
maxComputeWorkgroupSubgroups:TVkUInt32;
requiredSubgroupSizeStages:TVkShaderStageFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinSubgroupSize:TVkUInt32;
const aMaxSubgroupSize:TVkUInt32;
const aMaxComputeWorkgroupSubgroups:TVkUInt32;
const aRequiredSubgroupSizeStages:TVkShaderStageFlags);
{$endif}
end;
PPVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT=^PVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
PVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT=^TVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
TVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT
pNext:PVkVoid;
requiredSubgroupSize:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRequiredSubgroupSize:TVkUInt32);
{$endif}
end;
PPVkSubpassShadingPipelineCreateInfoHUAWEI=^PVkSubpassShadingPipelineCreateInfoHUAWEI;
PVkSubpassShadingPipelineCreateInfoHUAWEI=^TVkSubpassShadingPipelineCreateInfoHUAWEI;
TVkSubpassShadingPipelineCreateInfoHUAWEI=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
pNext:PVkVoid;
renderPass:TVkRenderPass;
subpass:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceSubpassShadingPropertiesHUAWEI=^PVkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
PVkPhysicalDeviceSubpassShadingPropertiesHUAWEI=^TVkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
TVkPhysicalDeviceSubpassShadingPropertiesHUAWEI=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
pNext:PVkVoid;
maxSubpassShadingWorkgroupSizeAspectRatio:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxSubpassShadingWorkgroupSizeAspectRatio:TVkUInt32);
{$endif}
end;
PPVkMemoryOpaqueCaptureAddressAllocateInfo=^PVkMemoryOpaqueCaptureAddressAllocateInfo;
PVkMemoryOpaqueCaptureAddressAllocateInfo=^TVkMemoryOpaqueCaptureAddressAllocateInfo;
TVkMemoryOpaqueCaptureAddressAllocateInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
pNext:PVkVoid;
opaqueCaptureAddress:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aOpaqueCaptureAddress:TVkUInt64);
{$endif}
end;
PPVkMemoryOpaqueCaptureAddressAllocateInfoKHR=^PVkMemoryOpaqueCaptureAddressAllocateInfoKHR;
PVkMemoryOpaqueCaptureAddressAllocateInfoKHR=^TVkMemoryOpaqueCaptureAddressAllocateInfoKHR;
TVkMemoryOpaqueCaptureAddressAllocateInfoKHR=TVkMemoryOpaqueCaptureAddressAllocateInfo;
PPVkDeviceMemoryOpaqueCaptureAddressInfo=^PVkDeviceMemoryOpaqueCaptureAddressInfo;
PVkDeviceMemoryOpaqueCaptureAddressInfo=^TVkDeviceMemoryOpaqueCaptureAddressInfo;
TVkDeviceMemoryOpaqueCaptureAddressInfo=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
pNext:PVkVoid;
memory:TVkDeviceMemory;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory);
{$endif}
end;
PPVkDeviceMemoryOpaqueCaptureAddressInfoKHR=^PVkDeviceMemoryOpaqueCaptureAddressInfoKHR;
PVkDeviceMemoryOpaqueCaptureAddressInfoKHR=^TVkDeviceMemoryOpaqueCaptureAddressInfoKHR;
TVkDeviceMemoryOpaqueCaptureAddressInfoKHR=TVkDeviceMemoryOpaqueCaptureAddressInfo;
PPVkPhysicalDeviceLineRasterizationFeaturesEXT=^PVkPhysicalDeviceLineRasterizationFeaturesEXT;
PVkPhysicalDeviceLineRasterizationFeaturesEXT=^TVkPhysicalDeviceLineRasterizationFeaturesEXT;
TVkPhysicalDeviceLineRasterizationFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
pNext:PVkVoid;
rectangularLines:TVkBool32;
bresenhamLines:TVkBool32;
smoothLines:TVkBool32;
stippledRectangularLines:TVkBool32;
stippledBresenhamLines:TVkBool32;
stippledSmoothLines:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRectangularLines:TVkBool32;
const aBresenhamLines:TVkBool32;
const aSmoothLines:TVkBool32;
const aStippledRectangularLines:TVkBool32;
const aStippledBresenhamLines:TVkBool32;
const aStippledSmoothLines:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceLineRasterizationPropertiesEXT=^PVkPhysicalDeviceLineRasterizationPropertiesEXT;
PVkPhysicalDeviceLineRasterizationPropertiesEXT=^TVkPhysicalDeviceLineRasterizationPropertiesEXT;
TVkPhysicalDeviceLineRasterizationPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
pNext:PVkVoid;
lineSubPixelPrecisionBits:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLineSubPixelPrecisionBits:TVkUInt32);
{$endif}
end;
PPVkPipelineRasterizationLineStateCreateInfoEXT=^PVkPipelineRasterizationLineStateCreateInfoEXT;
PVkPipelineRasterizationLineStateCreateInfoEXT=^TVkPipelineRasterizationLineStateCreateInfoEXT;
TVkPipelineRasterizationLineStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
lineRasterizationMode:TVkLineRasterizationModeEXT;
stippledLineEnable:TVkBool32;
lineStippleFactor:TVkUInt32;
lineStipplePattern:TVkUInt16;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLineRasterizationMode:TVkLineRasterizationModeEXT;
const aStippledLineEnable:TVkBool32;
const aLineStippleFactor:TVkUInt32;
const aLineStipplePattern:TVkUInt16);
{$endif}
end;
PPVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT=^PVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
PVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT=^TVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
TVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT
pNext:PVkVoid;
pipelineCreationCacheControl:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipelineCreationCacheControl:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVulkan11Features=^PVkPhysicalDeviceVulkan11Features;
PVkPhysicalDeviceVulkan11Features=^TVkPhysicalDeviceVulkan11Features;
TVkPhysicalDeviceVulkan11Features=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
pNext:PVkVoid;
storageBuffer16BitAccess:TVkBool32;
uniformAndStorageBuffer16BitAccess:TVkBool32;
storagePushConstant16:TVkBool32;
storageInputOutput16:TVkBool32;
multiview:TVkBool32;
multiviewGeometryShader:TVkBool32;
multiviewTessellationShader:TVkBool32;
variablePointersStorageBuffer:TVkBool32;
variablePointers:TVkBool32;
protectedMemory:TVkBool32;
samplerYcbcrConversion:TVkBool32;
shaderDrawParameters:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStorageBuffer16BitAccess:TVkBool32;
const aUniformAndStorageBuffer16BitAccess:TVkBool32;
const aStoragePushConstant16:TVkBool32;
const aStorageInputOutput16:TVkBool32;
const aMultiview:TVkBool32;
const aMultiviewGeometryShader:TVkBool32;
const aMultiviewTessellationShader:TVkBool32;
const aVariablePointersStorageBuffer:TVkBool32;
const aVariablePointers:TVkBool32;
const aProtectedMemory:TVkBool32;
const aSamplerYcbcrConversion:TVkBool32;
const aShaderDrawParameters:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVulkan11Properties=^PVkPhysicalDeviceVulkan11Properties;
PVkPhysicalDeviceVulkan11Properties=^TVkPhysicalDeviceVulkan11Properties;
TVkPhysicalDeviceVulkan11Properties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
pNext:PVkVoid;
deviceUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
driverUUID:array[0..VK_UUID_SIZE-1] of TVkUInt8;
deviceLUID:array[0..VK_LUID_SIZE-1] of TVkUInt8;
deviceNodeMask:TVkUInt32;
deviceLUIDValid:TVkBool32;
subgroupSize:TVkUInt32;
subgroupSupportedStages:TVkShaderStageFlags;
subgroupSupportedOperations:TVkSubgroupFeatureFlags;
subgroupQuadOperationsInAllStages:TVkBool32;
pointClippingBehavior:TVkPointClippingBehavior;
maxMultiviewViewCount:TVkUInt32;
maxMultiviewInstanceIndex:TVkUInt32;
protectedNoFault:TVkBool32;
maxPerSetDescriptors:TVkUInt32;
maxMemoryAllocationSize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceUUID:array of TVkUInt8;
const aDriverUUID:array of TVkUInt8;
const aDeviceLUID:array of TVkUInt8;
const aDeviceNodeMask:TVkUInt32;
const aDeviceLUIDValid:TVkBool32;
const aSubgroupSize:TVkUInt32;
const aSubgroupSupportedStages:TVkShaderStageFlags;
const aSubgroupSupportedOperations:TVkSubgroupFeatureFlags;
const aSubgroupQuadOperationsInAllStages:TVkBool32;
const aPointClippingBehavior:TVkPointClippingBehavior;
const aMaxMultiviewViewCount:TVkUInt32;
const aMaxMultiviewInstanceIndex:TVkUInt32;
const aProtectedNoFault:TVkBool32;
const aMaxPerSetDescriptors:TVkUInt32;
const aMaxMemoryAllocationSize:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceVulkan12Features=^PVkPhysicalDeviceVulkan12Features;
PVkPhysicalDeviceVulkan12Features=^TVkPhysicalDeviceVulkan12Features;
TVkPhysicalDeviceVulkan12Features=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
pNext:PVkVoid;
samplerMirrorClampToEdge:TVkBool32;
drawIndirectCount:TVkBool32;
storageBuffer8BitAccess:TVkBool32;
uniformAndStorageBuffer8BitAccess:TVkBool32;
storagePushConstant8:TVkBool32;
shaderBufferInt64Atomics:TVkBool32;
shaderSharedInt64Atomics:TVkBool32;
shaderFloat16:TVkBool32;
shaderInt8:TVkBool32;
descriptorIndexing:TVkBool32;
shaderInputAttachmentArrayDynamicIndexing:TVkBool32;
shaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
shaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
shaderUniformBufferArrayNonUniformIndexing:TVkBool32;
shaderSampledImageArrayNonUniformIndexing:TVkBool32;
shaderStorageBufferArrayNonUniformIndexing:TVkBool32;
shaderStorageImageArrayNonUniformIndexing:TVkBool32;
shaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
shaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
shaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
descriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
descriptorBindingSampledImageUpdateAfterBind:TVkBool32;
descriptorBindingStorageImageUpdateAfterBind:TVkBool32;
descriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
descriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
descriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
descriptorBindingUpdateUnusedWhilePending:TVkBool32;
descriptorBindingPartiallyBound:TVkBool32;
descriptorBindingVariableDescriptorCount:TVkBool32;
runtimeDescriptorArray:TVkBool32;
samplerFilterMinmax:TVkBool32;
scalarBlockLayout:TVkBool32;
imagelessFramebuffer:TVkBool32;
uniformBufferStandardLayout:TVkBool32;
shaderSubgroupExtendedTypes:TVkBool32;
separateDepthStencilLayouts:TVkBool32;
hostQueryReset:TVkBool32;
timelineSemaphore:TVkBool32;
bufferDeviceAddress:TVkBool32;
bufferDeviceAddressCaptureReplay:TVkBool32;
bufferDeviceAddressMultiDevice:TVkBool32;
vulkanMemoryModel:TVkBool32;
vulkanMemoryModelDeviceScope:TVkBool32;
vulkanMemoryModelAvailabilityVisibilityChains:TVkBool32;
shaderOutputViewportIndex:TVkBool32;
shaderOutputLayer:TVkBool32;
subgroupBroadcastDynamicId:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSamplerMirrorClampToEdge:TVkBool32;
const aDrawIndirectCount:TVkBool32;
const aStorageBuffer8BitAccess:TVkBool32;
const aUniformAndStorageBuffer8BitAccess:TVkBool32;
const aStoragePushConstant8:TVkBool32;
const aShaderBufferInt64Atomics:TVkBool32;
const aShaderSharedInt64Atomics:TVkBool32;
const aShaderFloat16:TVkBool32;
const aShaderInt8:TVkBool32;
const aDescriptorIndexing:TVkBool32;
const aShaderInputAttachmentArrayDynamicIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderUniformBufferArrayNonUniformIndexing:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexing:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexing:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
const aDescriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingSampledImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUpdateUnusedWhilePending:TVkBool32;
const aDescriptorBindingPartiallyBound:TVkBool32;
const aDescriptorBindingVariableDescriptorCount:TVkBool32;
const aRuntimeDescriptorArray:TVkBool32;
const aSamplerFilterMinmax:TVkBool32;
const aScalarBlockLayout:TVkBool32;
const aImagelessFramebuffer:TVkBool32;
const aUniformBufferStandardLayout:TVkBool32;
const aShaderSubgroupExtendedTypes:TVkBool32;
const aSeparateDepthStencilLayouts:TVkBool32;
const aHostQueryReset:TVkBool32;
const aTimelineSemaphore:TVkBool32;
const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32;
const aVulkanMemoryModel:TVkBool32;
const aVulkanMemoryModelDeviceScope:TVkBool32;
const aVulkanMemoryModelAvailabilityVisibilityChains:TVkBool32;
const aShaderOutputViewportIndex:TVkBool32;
const aShaderOutputLayer:TVkBool32;
const aSubgroupBroadcastDynamicId:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceVulkan12Properties=^PVkPhysicalDeviceVulkan12Properties;
PVkPhysicalDeviceVulkan12Properties=^TVkPhysicalDeviceVulkan12Properties;
TVkPhysicalDeviceVulkan12Properties=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
pNext:PVkVoid;
driverID:TVkDriverId;
driverName:array[0..VK_MAX_DRIVER_NAME_SIZE-1] of TVkChar;
driverInfo:array[0..VK_MAX_DRIVER_INFO_SIZE-1] of TVkChar;
conformanceVersion:TVkConformanceVersion;
denormBehaviorIndependence:TVkShaderFloatControlsIndependence;
roundingModeIndependence:TVkShaderFloatControlsIndependence;
shaderSignedZeroInfNanPreserveFloat16:TVkBool32;
shaderSignedZeroInfNanPreserveFloat32:TVkBool32;
shaderSignedZeroInfNanPreserveFloat64:TVkBool32;
shaderDenormPreserveFloat16:TVkBool32;
shaderDenormPreserveFloat32:TVkBool32;
shaderDenormPreserveFloat64:TVkBool32;
shaderDenormFlushToZeroFloat16:TVkBool32;
shaderDenormFlushToZeroFloat32:TVkBool32;
shaderDenormFlushToZeroFloat64:TVkBool32;
shaderRoundingModeRTEFloat16:TVkBool32;
shaderRoundingModeRTEFloat32:TVkBool32;
shaderRoundingModeRTEFloat64:TVkBool32;
shaderRoundingModeRTZFloat16:TVkBool32;
shaderRoundingModeRTZFloat32:TVkBool32;
shaderRoundingModeRTZFloat64:TVkBool32;
maxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
shaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
shaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
shaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
shaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
shaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
robustBufferAccessUpdateAfterBind:TVkBool32;
quadDivergentImplicitLod:TVkBool32;
maxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
maxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
maxPerStageUpdateAfterBindResources:TVkUInt32;
maxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
maxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
maxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
maxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
maxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32;
supportedDepthResolveModes:TVkResolveModeFlags;
supportedStencilResolveModes:TVkResolveModeFlags;
independentResolveNone:TVkBool32;
independentResolve:TVkBool32;
filterMinmaxSingleComponentFormats:TVkBool32;
filterMinmaxImageComponentMapping:TVkBool32;
maxTimelineSemaphoreValueDifference:TVkUInt64;
framebufferIntegerColorSampleCounts:TVkSampleCountFlags;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDriverID:TVkDriverId;
const aDriverName:TVkCharString;
const aDriverInfo:TVkCharString;
const aConformanceVersion:TVkConformanceVersion;
const aDenormBehaviorIndependence:TVkShaderFloatControlsIndependence;
const aRoundingModeIndependence:TVkShaderFloatControlsIndependence;
const aShaderSignedZeroInfNanPreserveFloat16:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat32:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat64:TVkBool32;
const aShaderDenormPreserveFloat16:TVkBool32;
const aShaderDenormPreserveFloat32:TVkBool32;
const aShaderDenormPreserveFloat64:TVkBool32;
const aShaderDenormFlushToZeroFloat16:TVkBool32;
const aShaderDenormFlushToZeroFloat32:TVkBool32;
const aShaderDenormFlushToZeroFloat64:TVkBool32;
const aShaderRoundingModeRTEFloat16:TVkBool32;
const aShaderRoundingModeRTEFloat32:TVkBool32;
const aShaderRoundingModeRTEFloat64:TVkBool32;
const aShaderRoundingModeRTZFloat16:TVkBool32;
const aShaderRoundingModeRTZFloat32:TVkBool32;
const aShaderRoundingModeRTZFloat64:TVkBool32;
const aMaxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
const aShaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
const aRobustBufferAccessUpdateAfterBind:TVkBool32;
const aQuadDivergentImplicitLod:TVkBool32;
const aMaxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
const aMaxPerStageUpdateAfterBindResources:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32;
const aSupportedDepthResolveModes:TVkResolveModeFlags;
const aSupportedStencilResolveModes:TVkResolveModeFlags;
const aIndependentResolveNone:TVkBool32;
const aIndependentResolve:TVkBool32;
const aFilterMinmaxSingleComponentFormats:TVkBool32;
const aFilterMinmaxImageComponentMapping:TVkBool32;
const aMaxTimelineSemaphoreValueDifference:TVkUInt64;
const aFramebufferIntegerColorSampleCounts:TVkSampleCountFlags);
{$endif}
end;
PPVkPipelineCompilerControlCreateInfoAMD=^PVkPipelineCompilerControlCreateInfoAMD;
PVkPipelineCompilerControlCreateInfoAMD=^TVkPipelineCompilerControlCreateInfoAMD;
TVkPipelineCompilerControlCreateInfoAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
pNext:PVkVoid;
compilerControlFlags:TVkPipelineCompilerControlFlagsAMD;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCompilerControlFlags:TVkPipelineCompilerControlFlagsAMD);
{$endif}
end;
PPVkPhysicalDeviceCoherentMemoryFeaturesAMD=^PVkPhysicalDeviceCoherentMemoryFeaturesAMD;
PVkPhysicalDeviceCoherentMemoryFeaturesAMD=^TVkPhysicalDeviceCoherentMemoryFeaturesAMD;
TVkPhysicalDeviceCoherentMemoryFeaturesAMD=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
pNext:PVkVoid;
deviceCoherentMemory:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDeviceCoherentMemory:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceToolPropertiesEXT=^PVkPhysicalDeviceToolPropertiesEXT;
PVkPhysicalDeviceToolPropertiesEXT=^TVkPhysicalDeviceToolPropertiesEXT;
TVkPhysicalDeviceToolPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT
pNext:PVkVoid;
name:array[0..VK_MAX_EXTENSION_NAME_SIZE-1] of TVkChar;
version:array[0..VK_MAX_EXTENSION_NAME_SIZE-1] of TVkChar;
purposes:TVkToolPurposeFlagsEXT;
description:array[0..VK_MAX_DESCRIPTION_SIZE-1] of TVkChar;
layer:array[0..VK_MAX_EXTENSION_NAME_SIZE-1] of TVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aName:TVkCharString;
const aVersion:TVkCharString;
const aPurposes:TVkToolPurposeFlagsEXT;
const aDescription:TVkCharString;
const aLayer:TVkCharString);
{$endif}
end;
PPVkSamplerCustomBorderColorCreateInfoEXT=^PVkSamplerCustomBorderColorCreateInfoEXT;
PVkSamplerCustomBorderColorCreateInfoEXT=^TVkSamplerCustomBorderColorCreateInfoEXT;
TVkSamplerCustomBorderColorCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
pNext:PVkVoid;
customBorderColor:TVkClearColorValue;
format:TVkFormat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCustomBorderColor:TVkClearColorValue;
const aFormat:TVkFormat);
{$endif}
end;
PPVkPhysicalDeviceCustomBorderColorPropertiesEXT=^PVkPhysicalDeviceCustomBorderColorPropertiesEXT;
PVkPhysicalDeviceCustomBorderColorPropertiesEXT=^TVkPhysicalDeviceCustomBorderColorPropertiesEXT;
TVkPhysicalDeviceCustomBorderColorPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
pNext:PVkVoid;
maxCustomBorderColorSamplers:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxCustomBorderColorSamplers:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceCustomBorderColorFeaturesEXT=^PVkPhysicalDeviceCustomBorderColorFeaturesEXT;
PVkPhysicalDeviceCustomBorderColorFeaturesEXT=^TVkPhysicalDeviceCustomBorderColorFeaturesEXT;
TVkPhysicalDeviceCustomBorderColorFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
pNext:PVkVoid;
customBorderColors:TVkBool32;
customBorderColorWithoutFormat:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCustomBorderColors:TVkBool32;
const aCustomBorderColorWithoutFormat:TVkBool32);
{$endif}
end;
PPVkDeviceOrHostAddressKHR=^PVkDeviceOrHostAddressKHR;
PVkDeviceOrHostAddressKHR=^TVkDeviceOrHostAddressKHR;
TVkDeviceOrHostAddressKHR=record
case longint of
0:(
deviceAddress:TVkDeviceAddress;
);
1:(
hostAddress:PVkVoid;
);
end;
PPVkDeviceOrHostAddressConstKHR=^PVkDeviceOrHostAddressConstKHR;
PVkDeviceOrHostAddressConstKHR=^TVkDeviceOrHostAddressConstKHR;
TVkDeviceOrHostAddressConstKHR=record
case longint of
0:(
deviceAddress:TVkDeviceAddress;
);
1:(
hostAddress:PVkVoid;
);
end;
PPVkAccelerationStructureGeometryTrianglesDataKHR=^PVkAccelerationStructureGeometryTrianglesDataKHR;
PVkAccelerationStructureGeometryTrianglesDataKHR=^TVkAccelerationStructureGeometryTrianglesDataKHR;
TVkAccelerationStructureGeometryTrianglesDataKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
pNext:PVkVoid;
vertexFormat:TVkFormat;
vertexData:TVkDeviceOrHostAddressConstKHR;
vertexStride:TVkDeviceSize;
maxVertex:TVkUInt32;
indexType:TVkIndexType;
indexData:TVkDeviceOrHostAddressConstKHR;
transformData:TVkDeviceOrHostAddressConstKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexFormat:TVkFormat;
const aVertexData:TVkDeviceOrHostAddressConstKHR;
const aVertexStride:TVkDeviceSize;
const aMaxVertex:TVkUInt32;
const aIndexType:TVkIndexType;
const aIndexData:TVkDeviceOrHostAddressConstKHR;
const aTransformData:TVkDeviceOrHostAddressConstKHR);
{$endif}
end;
PPVkAccelerationStructureGeometryAabbsDataKHR=^PVkAccelerationStructureGeometryAabbsDataKHR;
PVkAccelerationStructureGeometryAabbsDataKHR=^TVkAccelerationStructureGeometryAabbsDataKHR;
TVkAccelerationStructureGeometryAabbsDataKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
pNext:PVkVoid;
data:TVkDeviceOrHostAddressConstKHR;
stride:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aData:TVkDeviceOrHostAddressConstKHR;
const aStride:TVkDeviceSize);
{$endif}
end;
PPVkAccelerationStructureGeometryInstancesDataKHR=^PVkAccelerationStructureGeometryInstancesDataKHR;
PVkAccelerationStructureGeometryInstancesDataKHR=^TVkAccelerationStructureGeometryInstancesDataKHR;
TVkAccelerationStructureGeometryInstancesDataKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
pNext:PVkVoid;
arrayOfPointers:TVkBool32;
data:TVkDeviceOrHostAddressConstKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aArrayOfPointers:TVkBool32;
const aData:TVkDeviceOrHostAddressConstKHR);
{$endif}
end;
PPVkAccelerationStructureGeometryDataKHR=^PVkAccelerationStructureGeometryDataKHR;
PVkAccelerationStructureGeometryDataKHR=^TVkAccelerationStructureGeometryDataKHR;
TVkAccelerationStructureGeometryDataKHR=record
case longint of
0:(
triangles:TVkAccelerationStructureGeometryTrianglesDataKHR;
);
1:(
aabbs:TVkAccelerationStructureGeometryAabbsDataKHR;
);
2:(
instances:TVkAccelerationStructureGeometryInstancesDataKHR;
);
end;
PPVkAccelerationStructureGeometryKHR=^PVkAccelerationStructureGeometryKHR;
PVkAccelerationStructureGeometryKHR=^TVkAccelerationStructureGeometryKHR;
TVkAccelerationStructureGeometryKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
pNext:PVkVoid;
geometryType:TVkGeometryTypeKHR;
geometry:TVkAccelerationStructureGeometryDataKHR;
flags:TVkGeometryFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aGeometryType:TVkGeometryTypeKHR;
const aGeometry:TVkAccelerationStructureGeometryDataKHR;
const aFlags:TVkGeometryFlagsKHR);
{$endif}
end;
PPVkAccelerationStructureBuildGeometryInfoKHR=^PVkAccelerationStructureBuildGeometryInfoKHR;
PVkAccelerationStructureBuildGeometryInfoKHR=^TVkAccelerationStructureBuildGeometryInfoKHR;
TVkAccelerationStructureBuildGeometryInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
pNext:PVkVoid;
type_:TVkAccelerationStructureTypeKHR;
flags:TVkBuildAccelerationStructureFlagsKHR;
mode:TVkBuildAccelerationStructureModeKHR;
srcAccelerationStructure:TVkAccelerationStructureKHR;
dstAccelerationStructure:TVkAccelerationStructureKHR;
geometryCount:TVkUInt32;
pGeometries:PVkAccelerationStructureGeometryKHR;
ppGeometries:PPVkAccelerationStructureGeometryKHR;
scratchData:TVkDeviceOrHostAddressKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkAccelerationStructureTypeKHR;
const aFlags:TVkBuildAccelerationStructureFlagsKHR;
const aMode:TVkBuildAccelerationStructureModeKHR;
const aSrcAccelerationStructure:TVkAccelerationStructureKHR;
const aDstAccelerationStructure:TVkAccelerationStructureKHR;
const aGeometryCount:TVkUInt32;
const aPGeometries:PVkAccelerationStructureGeometryKHR;
const aPpGeometries:PPVkAccelerationStructureGeometryKHR;
const aScratchData:TVkDeviceOrHostAddressKHR);
{$endif}
end;
PPVkAccelerationStructureBuildRangeInfoKHR=^PVkAccelerationStructureBuildRangeInfoKHR;
PVkAccelerationStructureBuildRangeInfoKHR=^TVkAccelerationStructureBuildRangeInfoKHR;
TVkAccelerationStructureBuildRangeInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
primitiveCount:TVkUInt32;
primitiveOffset:TVkUInt32;
firstVertex:TVkUInt32;
transformOffset:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPrimitiveCount:TVkUInt32;
const aPrimitiveOffset:TVkUInt32;
const aFirstVertex:TVkUInt32;
const aTransformOffset:TVkUInt32);
{$endif}
end;
PPVkAccelerationStructureCreateInfoKHR=^PVkAccelerationStructureCreateInfoKHR;
PVkAccelerationStructureCreateInfoKHR=^TVkAccelerationStructureCreateInfoKHR;
TVkAccelerationStructureCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
pNext:PVkVoid;
createFlags:TVkAccelerationStructureCreateFlagsKHR;
buffer:TVkBuffer;
offset:TVkDeviceSize;
size:TVkDeviceSize;
type_:TVkAccelerationStructureTypeKHR;
deviceAddress:TVkDeviceAddress;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCreateFlags:TVkAccelerationStructureCreateFlagsKHR;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aType_:TVkAccelerationStructureTypeKHR;
const aDeviceAddress:TVkDeviceAddress);
{$endif}
end;
PPVkAabbPositionsKHR=^PVkAabbPositionsKHR;
PVkAabbPositionsKHR=^TVkAabbPositionsKHR;
TVkAabbPositionsKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
minX:TVkFloat;
minY:TVkFloat;
minZ:TVkFloat;
maxX:TVkFloat;
maxY:TVkFloat;
maxZ:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinX:TVkFloat;
const aMinY:TVkFloat;
const aMinZ:TVkFloat;
const aMaxX:TVkFloat;
const aMaxY:TVkFloat;
const aMaxZ:TVkFloat);
{$endif}
end;
PPVkAabbPositionsNV=^PVkAabbPositionsNV;
PVkAabbPositionsNV=^TVkAabbPositionsNV;
TVkAabbPositionsNV=TVkAabbPositionsKHR;
PPVkTransformMatrixKHR=^PVkTransformMatrixKHR;
PVkTransformMatrixKHR=^TVkTransformMatrixKHR;
TVkTransformMatrixKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
matrix:array[0..2] of TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMatrix:array of TVkFloat);
{$endif}
end;
PPVkTransformMatrixNV=^PVkTransformMatrixNV;
PVkTransformMatrixNV=^TVkTransformMatrixNV;
TVkTransformMatrixNV=TVkTransformMatrixKHR;
PPVkAccelerationStructureInstanceKHR=^PVkAccelerationStructureInstanceKHR;
PVkAccelerationStructureInstanceKHR=^TVkAccelerationStructureInstanceKHR;
TVkAccelerationStructureInstanceKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
transform:TVkTransformMatrixKHR;
instanceCustomIndex:TVkUInt32;
mask:TVkUInt32;
instanceShaderBindingTableRecordOffset:TVkUInt32;
flags:TVkGeometryInstanceFlagsKHR;
accelerationStructureReference:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransform:TVkTransformMatrixKHR;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
{$endif}
end;
PPVkAccelerationStructureInstanceNV=^PVkAccelerationStructureInstanceNV;
PVkAccelerationStructureInstanceNV=^TVkAccelerationStructureInstanceNV;
TVkAccelerationStructureInstanceNV=TVkAccelerationStructureInstanceKHR;
PPVkAccelerationStructureDeviceAddressInfoKHR=^PVkAccelerationStructureDeviceAddressInfoKHR;
PVkAccelerationStructureDeviceAddressInfoKHR=^TVkAccelerationStructureDeviceAddressInfoKHR;
TVkAccelerationStructureDeviceAddressInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
pNext:PVkVoid;
accelerationStructure:TVkAccelerationStructureKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructure:TVkAccelerationStructureKHR);
{$endif}
end;
PPVkAccelerationStructureVersionInfoKHR=^PVkAccelerationStructureVersionInfoKHR;
PVkAccelerationStructureVersionInfoKHR=^TVkAccelerationStructureVersionInfoKHR;
TVkAccelerationStructureVersionInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
pNext:PVkVoid;
pVersionData:PVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPVersionData:PVkUInt8);
{$endif}
end;
PPVkCopyAccelerationStructureInfoKHR=^PVkCopyAccelerationStructureInfoKHR;
PVkCopyAccelerationStructureInfoKHR=^TVkCopyAccelerationStructureInfoKHR;
TVkCopyAccelerationStructureInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
pNext:PVkVoid;
src:TVkAccelerationStructureKHR;
dst:TVkAccelerationStructureKHR;
mode:TVkCopyAccelerationStructureModeKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrc:TVkAccelerationStructureKHR;
const aDst:TVkAccelerationStructureKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
{$endif}
end;
PPVkCopyAccelerationStructureToMemoryInfoKHR=^PVkCopyAccelerationStructureToMemoryInfoKHR;
PVkCopyAccelerationStructureToMemoryInfoKHR=^TVkCopyAccelerationStructureToMemoryInfoKHR;
TVkCopyAccelerationStructureToMemoryInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
pNext:PVkVoid;
src:TVkAccelerationStructureKHR;
dst:TVkDeviceOrHostAddressKHR;
mode:TVkCopyAccelerationStructureModeKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrc:TVkAccelerationStructureKHR;
const aDst:TVkDeviceOrHostAddressKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
{$endif}
end;
PPVkCopyMemoryToAccelerationStructureInfoKHR=^PVkCopyMemoryToAccelerationStructureInfoKHR;
PVkCopyMemoryToAccelerationStructureInfoKHR=^TVkCopyMemoryToAccelerationStructureInfoKHR;
TVkCopyMemoryToAccelerationStructureInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
pNext:PVkVoid;
src:TVkDeviceOrHostAddressConstKHR;
dst:TVkAccelerationStructureKHR;
mode:TVkCopyAccelerationStructureModeKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrc:TVkDeviceOrHostAddressConstKHR;
const aDst:TVkAccelerationStructureKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
{$endif}
end;
PPVkPipelineLibraryCreateInfoKHR=^PVkPipelineLibraryCreateInfoKHR;
PVkPipelineLibraryCreateInfoKHR=^TVkPipelineLibraryCreateInfoKHR;
TVkPipelineLibraryCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
pNext:PVkVoid;
libraryCount:TVkUInt32;
pLibraries:PVkPipeline;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLibraryCount:TVkUInt32;
const aPLibraries:PVkPipeline);
{$endif}
end;
PPVkRayTracingPipelineCreateInfoKHR=^PVkRayTracingPipelineCreateInfoKHR;
PVkRayTracingPipelineCreateInfoKHR=^TVkRayTracingPipelineCreateInfoKHR;
TVkRayTracingPipelineCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
pNext:PVkVoid;
flags:TVkPipelineCreateFlags;
stageCount:TVkUInt32;
pStages:PVkPipelineShaderStageCreateInfo;
groupCount:TVkUInt32;
pGroups:PVkRayTracingShaderGroupCreateInfoKHR;
maxPipelineRayRecursionDepth:TVkUInt32;
pLibraryInfo:PVkPipelineLibraryCreateInfoKHR;
pLibraryInterface:PVkRayTracingPipelineInterfaceCreateInfoKHR;
pDynamicState:PVkPipelineDynamicStateCreateInfo;
layout:TVkPipelineLayout;
basePipelineHandle:TVkPipeline;
basePipelineIndex:TVkInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aGroupCount:TVkUInt32;
const aPGroups:PVkRayTracingShaderGroupCreateInfoKHR;
const aMaxPipelineRayRecursionDepth:TVkUInt32;
const aPLibraryInfo:PVkPipelineLibraryCreateInfoKHR;
const aPLibraryInterface:PVkRayTracingPipelineInterfaceCreateInfoKHR;
const aPDynamicState:PVkPipelineDynamicStateCreateInfo;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
{$endif}
end;
PPVkPhysicalDeviceExtendedDynamicStateFeaturesEXT=^PVkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
PVkPhysicalDeviceExtendedDynamicStateFeaturesEXT=^TVkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
TVkPhysicalDeviceExtendedDynamicStateFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
pNext:PVkVoid;
extendedDynamicState:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExtendedDynamicState:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceExtendedDynamicState2FeaturesEXT=^PVkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
PVkPhysicalDeviceExtendedDynamicState2FeaturesEXT=^TVkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
TVkPhysicalDeviceExtendedDynamicState2FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
pNext:PVkVoid;
extendedDynamicState2:TVkBool32;
extendedDynamicState2LogicOp:TVkBool32;
extendedDynamicState2PatchControlPoints:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExtendedDynamicState2:TVkBool32;
const aExtendedDynamicState2LogicOp:TVkBool32;
const aExtendedDynamicState2PatchControlPoints:TVkBool32);
{$endif}
end;
PPVkRenderPassTransformBeginInfoQCOM=^PVkRenderPassTransformBeginInfoQCOM;
PVkRenderPassTransformBeginInfoQCOM=^TVkRenderPassTransformBeginInfoQCOM;
TVkRenderPassTransformBeginInfoQCOM=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
pNext:PVkVoid;
transform:TVkSurfaceTransformFlagBitsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransform:TVkSurfaceTransformFlagBitsKHR);
{$endif}
end;
PPVkCopyCommandTransformInfoQCOM=^PVkCopyCommandTransformInfoQCOM;
PVkCopyCommandTransformInfoQCOM=^TVkCopyCommandTransformInfoQCOM;
TVkCopyCommandTransformInfoQCOM=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
pNext:PVkVoid;
transform:TVkSurfaceTransformFlagBitsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransform:TVkSurfaceTransformFlagBitsKHR);
{$endif}
end;
PPVkCommandBufferInheritanceRenderPassTransformInfoQCOM=^PVkCommandBufferInheritanceRenderPassTransformInfoQCOM;
PVkCommandBufferInheritanceRenderPassTransformInfoQCOM=^TVkCommandBufferInheritanceRenderPassTransformInfoQCOM;
TVkCommandBufferInheritanceRenderPassTransformInfoQCOM=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
pNext:PVkVoid;
transform:TVkSurfaceTransformFlagBitsKHR;
renderArea:TVkRect2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransform:TVkSurfaceTransformFlagBitsKHR;
const aRenderArea:TVkRect2D);
{$endif}
end;
PPVkPhysicalDeviceDiagnosticsConfigFeaturesNV=^PVkPhysicalDeviceDiagnosticsConfigFeaturesNV;
PVkPhysicalDeviceDiagnosticsConfigFeaturesNV=^TVkPhysicalDeviceDiagnosticsConfigFeaturesNV;
TVkPhysicalDeviceDiagnosticsConfigFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
pNext:PVkVoid;
diagnosticsConfig:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDiagnosticsConfig:TVkBool32);
{$endif}
end;
PPVkDeviceDiagnosticsConfigCreateInfoNV=^PVkDeviceDiagnosticsConfigCreateInfoNV;
PVkDeviceDiagnosticsConfigCreateInfoNV=^TVkDeviceDiagnosticsConfigCreateInfoNV;
TVkDeviceDiagnosticsConfigCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
pNext:PVkVoid;
flags:TVkDeviceDiagnosticsConfigFlagsNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkDeviceDiagnosticsConfigFlagsNV);
{$endif}
end;
PPVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR=^PVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
PVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR=^TVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
TVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR
pNext:PVkVoid;
shaderZeroInitializeWorkgroupMemory:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderZeroInitializeWorkgroupMemory:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR=^PVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
PVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR=^TVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
TVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
pNext:PVkVoid;
shaderSubgroupUniformControlFlow:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderSubgroupUniformControlFlow:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceRobustness2FeaturesEXT=^PVkPhysicalDeviceRobustness2FeaturesEXT;
PVkPhysicalDeviceRobustness2FeaturesEXT=^TVkPhysicalDeviceRobustness2FeaturesEXT;
TVkPhysicalDeviceRobustness2FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
pNext:PVkVoid;
robustBufferAccess2:TVkBool32;
robustImageAccess2:TVkBool32;
nullDescriptor:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRobustBufferAccess2:TVkBool32;
const aRobustImageAccess2:TVkBool32;
const aNullDescriptor:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceRobustness2PropertiesEXT=^PVkPhysicalDeviceRobustness2PropertiesEXT;
PVkPhysicalDeviceRobustness2PropertiesEXT=^TVkPhysicalDeviceRobustness2PropertiesEXT;
TVkPhysicalDeviceRobustness2PropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
pNext:PVkVoid;
robustStorageBufferAccessSizeAlignment:TVkDeviceSize;
robustUniformBufferAccessSizeAlignment:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRobustStorageBufferAccessSizeAlignment:TVkDeviceSize;
const aRobustUniformBufferAccessSizeAlignment:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceImageRobustnessFeaturesEXT=^PVkPhysicalDeviceImageRobustnessFeaturesEXT;
PVkPhysicalDeviceImageRobustnessFeaturesEXT=^TVkPhysicalDeviceImageRobustnessFeaturesEXT;
TVkPhysicalDeviceImageRobustnessFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT
pNext:PVkVoid;
robustImageAccess:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRobustImageAccess:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR=^PVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
PVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR=^TVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
TVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
pNext:PVkVoid;
workgroupMemoryExplicitLayout:TVkBool32;
workgroupMemoryExplicitLayoutScalarBlockLayout:TVkBool32;
workgroupMemoryExplicitLayout8BitAccess:TVkBool32;
workgroupMemoryExplicitLayout16BitAccess:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aWorkgroupMemoryExplicitLayout:TVkBool32;
const aWorkgroupMemoryExplicitLayoutScalarBlockLayout:TVkBool32;
const aWorkgroupMemoryExplicitLayout8BitAccess:TVkBool32;
const aWorkgroupMemoryExplicitLayout16BitAccess:TVkBool32);
{$endif}
end;
PPVkPhysicalDevicePortabilitySubsetFeaturesKHR=^PVkPhysicalDevicePortabilitySubsetFeaturesKHR;
PVkPhysicalDevicePortabilitySubsetFeaturesKHR=^TVkPhysicalDevicePortabilitySubsetFeaturesKHR;
TVkPhysicalDevicePortabilitySubsetFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
pNext:PVkVoid;
constantAlphaColorBlendFactors:TVkBool32;
events:TVkBool32;
imageViewFormatReinterpretation:TVkBool32;
imageViewFormatSwizzle:TVkBool32;
imageView2DOn3DImage:TVkBool32;
multisampleArrayImage:TVkBool32;
mutableComparisonSamplers:TVkBool32;
pointPolygons:TVkBool32;
samplerMipLodBias:TVkBool32;
separateStencilMaskRef:TVkBool32;
shaderSampleRateInterpolationFunctions:TVkBool32;
tessellationIsolines:TVkBool32;
tessellationPointMode:TVkBool32;
triangleFans:TVkBool32;
vertexAttributeAccessBeyondStride:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aConstantAlphaColorBlendFactors:TVkBool32;
const aEvents:TVkBool32;
const aImageViewFormatReinterpretation:TVkBool32;
const aImageViewFormatSwizzle:TVkBool32;
const aImageView2DOn3DImage:TVkBool32;
const aMultisampleArrayImage:TVkBool32;
const aMutableComparisonSamplers:TVkBool32;
const aPointPolygons:TVkBool32;
const aSamplerMipLodBias:TVkBool32;
const aSeparateStencilMaskRef:TVkBool32;
const aShaderSampleRateInterpolationFunctions:TVkBool32;
const aTessellationIsolines:TVkBool32;
const aTessellationPointMode:TVkBool32;
const aTriangleFans:TVkBool32;
const aVertexAttributeAccessBeyondStride:TVkBool32);
{$endif}
end;
PPVkPhysicalDevicePortabilitySubsetPropertiesKHR=^PVkPhysicalDevicePortabilitySubsetPropertiesKHR;
PVkPhysicalDevicePortabilitySubsetPropertiesKHR=^TVkPhysicalDevicePortabilitySubsetPropertiesKHR;
TVkPhysicalDevicePortabilitySubsetPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
pNext:PVkVoid;
minVertexInputBindingStrideAlignment:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinVertexInputBindingStrideAlignment:TVkUInt32);
{$endif}
end;
PPVkPhysicalDevice4444FormatsFeaturesEXT=^PVkPhysicalDevice4444FormatsFeaturesEXT;
PVkPhysicalDevice4444FormatsFeaturesEXT=^TVkPhysicalDevice4444FormatsFeaturesEXT;
TVkPhysicalDevice4444FormatsFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
pNext:PVkVoid;
formatA4R4G4B4:TVkBool32;
formatA4B4G4R4:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormatA4R4G4B4:TVkBool32;
const aFormatA4B4G4R4:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceSubpassShadingFeaturesHUAWEI=^PVkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
PVkPhysicalDeviceSubpassShadingFeaturesHUAWEI=^TVkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
TVkPhysicalDeviceSubpassShadingFeaturesHUAWEI=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
pNext:PVkVoid;
subpassShading:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSubpassShading:TVkBool32);
{$endif}
end;
PPVkBufferCopy2KHR=^PVkBufferCopy2KHR;
PVkBufferCopy2KHR=^TVkBufferCopy2KHR;
TVkBufferCopy2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR
pNext:PVkVoid;
srcOffset:TVkDeviceSize;
dstOffset:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcOffset:TVkDeviceSize;
const aDstOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkImageCopy2KHR=^PVkImageCopy2KHR;
PVkImageCopy2KHR=^TVkImageCopy2KHR;
TVkImageCopy2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR
pNext:PVkVoid;
srcSubresource:TVkImageSubresourceLayers;
srcOffset:TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffset:TVkOffset3D;
extent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
{$endif}
end;
PPVkImageBlit2KHR=^PVkImageBlit2KHR;
PVkImageBlit2KHR=^TVkImageBlit2KHR;
TVkImageBlit2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
pNext:PVkVoid;
srcSubresource:TVkImageSubresourceLayers;
srcOffsets:array[0..1] of TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffsets:array[0..1] of TVkOffset3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffsets:array of TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffsets:array of TVkOffset3D);
{$endif}
end;
PPVkBufferImageCopy2KHR=^PVkBufferImageCopy2KHR;
PVkBufferImageCopy2KHR=^TVkBufferImageCopy2KHR;
TVkBufferImageCopy2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
pNext:PVkVoid;
bufferOffset:TVkDeviceSize;
bufferRowLength:TVkUInt32;
bufferImageHeight:TVkUInt32;
imageSubresource:TVkImageSubresourceLayers;
imageOffset:TVkOffset3D;
imageExtent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBufferOffset:TVkDeviceSize;
const aBufferRowLength:TVkUInt32;
const aBufferImageHeight:TVkUInt32;
const aImageSubresource:TVkImageSubresourceLayers;
const aImageOffset:TVkOffset3D;
const aImageExtent:TVkExtent3D);
{$endif}
end;
PPVkImageResolve2KHR=^PVkImageResolve2KHR;
PVkImageResolve2KHR=^TVkImageResolve2KHR;
TVkImageResolve2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
pNext:PVkVoid;
srcSubresource:TVkImageSubresourceLayers;
srcOffset:TVkOffset3D;
dstSubresource:TVkImageSubresourceLayers;
dstOffset:TVkOffset3D;
extent:TVkExtent3D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
{$endif}
end;
PPVkCopyBufferInfo2KHR=^PVkCopyBufferInfo2KHR;
PVkCopyBufferInfo2KHR=^TVkCopyBufferInfo2KHR;
TVkCopyBufferInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
pNext:PVkVoid;
srcBuffer:TVkBuffer;
dstBuffer:TVkBuffer;
regionCount:TVkUInt32;
pRegions:PVkBufferCopy2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcBuffer:TVkBuffer;
const aDstBuffer:TVkBuffer;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferCopy2KHR);
{$endif}
end;
PPVkCopyImageInfo2KHR=^PVkCopyImageInfo2KHR;
PVkCopyImageInfo2KHR=^TVkCopyImageInfo2KHR;
TVkCopyImageInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
pNext:PVkVoid;
srcImage:TVkImage;
srcImageLayout:TVkImageLayout;
dstImage:TVkImage;
dstImageLayout:TVkImageLayout;
regionCount:TVkUInt32;
pRegions:PVkImageCopy2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageCopy2KHR);
{$endif}
end;
PPVkBlitImageInfo2KHR=^PVkBlitImageInfo2KHR;
PVkBlitImageInfo2KHR=^TVkBlitImageInfo2KHR;
TVkBlitImageInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
pNext:PVkVoid;
srcImage:TVkImage;
srcImageLayout:TVkImageLayout;
dstImage:TVkImage;
dstImageLayout:TVkImageLayout;
regionCount:TVkUInt32;
pRegions:PVkImageBlit2KHR;
filter:TVkFilter;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageBlit2KHR;
const aFilter:TVkFilter);
{$endif}
end;
PPVkCopyBufferToImageInfo2KHR=^PVkCopyBufferToImageInfo2KHR;
PVkCopyBufferToImageInfo2KHR=^TVkCopyBufferToImageInfo2KHR;
TVkCopyBufferToImageInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
pNext:PVkVoid;
srcBuffer:TVkBuffer;
dstImage:TVkImage;
dstImageLayout:TVkImageLayout;
regionCount:TVkUInt32;
pRegions:PVkBufferImageCopy2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcBuffer:TVkBuffer;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferImageCopy2KHR);
{$endif}
end;
PPVkCopyImageToBufferInfo2KHR=^PVkCopyImageToBufferInfo2KHR;
PVkCopyImageToBufferInfo2KHR=^TVkCopyImageToBufferInfo2KHR;
TVkCopyImageToBufferInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
pNext:PVkVoid;
srcImage:TVkImage;
srcImageLayout:TVkImageLayout;
dstBuffer:TVkBuffer;
regionCount:TVkUInt32;
pRegions:PVkBufferImageCopy2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstBuffer:TVkBuffer;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferImageCopy2KHR);
{$endif}
end;
PPVkResolveImageInfo2KHR=^PVkResolveImageInfo2KHR;
PVkResolveImageInfo2KHR=^TVkResolveImageInfo2KHR;
TVkResolveImageInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR
pNext:PVkVoid;
srcImage:TVkImage;
srcImageLayout:TVkImageLayout;
dstImage:TVkImage;
dstImageLayout:TVkImageLayout;
regionCount:TVkUInt32;
pRegions:PVkImageResolve2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageResolve2KHR);
{$endif}
end;
PPVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT=^PVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
PVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT=^TVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
TVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
pNext:PVkVoid;
shaderImageInt64Atomics:TVkBool32;
sparseImageInt64Atomics:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderImageInt64Atomics:TVkBool32;
const aSparseImageInt64Atomics:TVkBool32);
{$endif}
end;
PPVkFragmentShadingRateAttachmentInfoKHR=^PVkFragmentShadingRateAttachmentInfoKHR;
PVkFragmentShadingRateAttachmentInfoKHR=^TVkFragmentShadingRateAttachmentInfoKHR;
TVkFragmentShadingRateAttachmentInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
pNext:PVkVoid;
pFragmentShadingRateAttachment:PVkAttachmentReference2;
shadingRateAttachmentTexelSize:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPFragmentShadingRateAttachment:PVkAttachmentReference2;
const aShadingRateAttachmentTexelSize:TVkExtent2D);
{$endif}
end;
PPVkPipelineFragmentShadingRateStateCreateInfoKHR=^PVkPipelineFragmentShadingRateStateCreateInfoKHR;
PVkPipelineFragmentShadingRateStateCreateInfoKHR=^TVkPipelineFragmentShadingRateStateCreateInfoKHR;
TVkPipelineFragmentShadingRateStateCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
pNext:PVkVoid;
fragmentSize:TVkExtent2D;
combinerOps:array[0..1] of TVkFragmentShadingRateCombinerOpKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentSize:TVkExtent2D;
const aCombinerOps:array of TVkFragmentShadingRateCombinerOpKHR);
{$endif}
end;
PPVkPhysicalDeviceFragmentShadingRateFeaturesKHR=^PVkPhysicalDeviceFragmentShadingRateFeaturesKHR;
PVkPhysicalDeviceFragmentShadingRateFeaturesKHR=^TVkPhysicalDeviceFragmentShadingRateFeaturesKHR;
TVkPhysicalDeviceFragmentShadingRateFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
pNext:PVkVoid;
pipelineFragmentShadingRate:TVkBool32;
primitiveFragmentShadingRate:TVkBool32;
attachmentFragmentShadingRate:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPipelineFragmentShadingRate:TVkBool32;
const aPrimitiveFragmentShadingRate:TVkBool32;
const aAttachmentFragmentShadingRate:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShadingRatePropertiesKHR=^PVkPhysicalDeviceFragmentShadingRatePropertiesKHR;
PVkPhysicalDeviceFragmentShadingRatePropertiesKHR=^TVkPhysicalDeviceFragmentShadingRatePropertiesKHR;
TVkPhysicalDeviceFragmentShadingRatePropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
pNext:PVkVoid;
minFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
maxFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
maxFragmentShadingRateAttachmentTexelSizeAspectRatio:TVkUInt32;
primitiveFragmentShadingRateWithMultipleViewports:TVkBool32;
layeredShadingRateAttachments:TVkBool32;
fragmentShadingRateNonTrivialCombinerOps:TVkBool32;
maxFragmentSize:TVkExtent2D;
maxFragmentSizeAspectRatio:TVkUInt32;
maxFragmentShadingRateCoverageSamples:TVkUInt32;
maxFragmentShadingRateRasterizationSamples:TVkSampleCountFlagBits;
fragmentShadingRateWithShaderDepthStencilWrites:TVkBool32;
fragmentShadingRateWithSampleMask:TVkBool32;
fragmentShadingRateWithShaderSampleMask:TVkBool32;
fragmentShadingRateWithConservativeRasterization:TVkBool32;
fragmentShadingRateWithFragmentShaderInterlock:TVkBool32;
fragmentShadingRateWithCustomSampleLocations:TVkBool32;
fragmentShadingRateStrictMultiplyCombiner:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMinFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
const aMaxFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
const aMaxFragmentShadingRateAttachmentTexelSizeAspectRatio:TVkUInt32;
const aPrimitiveFragmentShadingRateWithMultipleViewports:TVkBool32;
const aLayeredShadingRateAttachments:TVkBool32;
const aFragmentShadingRateNonTrivialCombinerOps:TVkBool32;
const aMaxFragmentSize:TVkExtent2D;
const aMaxFragmentSizeAspectRatio:TVkUInt32;
const aMaxFragmentShadingRateCoverageSamples:TVkUInt32;
const aMaxFragmentShadingRateRasterizationSamples:TVkSampleCountFlagBits;
const aFragmentShadingRateWithShaderDepthStencilWrites:TVkBool32;
const aFragmentShadingRateWithSampleMask:TVkBool32;
const aFragmentShadingRateWithShaderSampleMask:TVkBool32;
const aFragmentShadingRateWithConservativeRasterization:TVkBool32;
const aFragmentShadingRateWithFragmentShaderInterlock:TVkBool32;
const aFragmentShadingRateWithCustomSampleLocations:TVkBool32;
const aFragmentShadingRateStrictMultiplyCombiner:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShadingRateKHR=^PVkPhysicalDeviceFragmentShadingRateKHR;
PVkPhysicalDeviceFragmentShadingRateKHR=^TVkPhysicalDeviceFragmentShadingRateKHR;
TVkPhysicalDeviceFragmentShadingRateKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
pNext:PVkVoid;
sampleCounts:TVkSampleCountFlags;
fragmentSize:TVkExtent2D;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSampleCounts:TVkSampleCountFlags;
const aFragmentSize:TVkExtent2D);
{$endif}
end;
PPVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR=^PVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
PVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR=^TVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
TVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR
pNext:PVkVoid;
shaderTerminateInvocation:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShaderTerminateInvocation:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV=^PVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
PVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV=^TVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
TVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
pNext:PVkVoid;
fragmentShadingRateEnums:TVkBool32;
supersampleFragmentShadingRates:TVkBool32;
noInvocationFragmentShadingRates:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFragmentShadingRateEnums:TVkBool32;
const aSupersampleFragmentShadingRates:TVkBool32;
const aNoInvocationFragmentShadingRates:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV=^PVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
PVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV=^TVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
TVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
pNext:PVkVoid;
maxFragmentShadingRateInvocationCount:TVkSampleCountFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxFragmentShadingRateInvocationCount:TVkSampleCountFlagBits);
{$endif}
end;
PPVkPipelineFragmentShadingRateEnumStateCreateInfoNV=^PVkPipelineFragmentShadingRateEnumStateCreateInfoNV;
PVkPipelineFragmentShadingRateEnumStateCreateInfoNV=^TVkPipelineFragmentShadingRateEnumStateCreateInfoNV;
TVkPipelineFragmentShadingRateEnumStateCreateInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
pNext:PVkVoid;
shadingRateType:TVkFragmentShadingRateTypeNV;
shadingRate:TVkFragmentShadingRateNV;
combinerOps:array[0..1] of TVkFragmentShadingRateCombinerOpKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aShadingRateType:TVkFragmentShadingRateTypeNV;
const aShadingRate:TVkFragmentShadingRateNV;
const aCombinerOps:array of TVkFragmentShadingRateCombinerOpKHR);
{$endif}
end;
PPVkAccelerationStructureBuildSizesInfoKHR=^PVkAccelerationStructureBuildSizesInfoKHR;
PVkAccelerationStructureBuildSizesInfoKHR=^TVkAccelerationStructureBuildSizesInfoKHR;
TVkAccelerationStructureBuildSizesInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
pNext:PVkVoid;
accelerationStructureSize:TVkDeviceSize;
updateScratchSize:TVkDeviceSize;
buildScratchSize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAccelerationStructureSize:TVkDeviceSize;
const aUpdateScratchSize:TVkDeviceSize;
const aBuildScratchSize:TVkDeviceSize);
{$endif}
end;
PPVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE=^PVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
PVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE=^TVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
TVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE
pNext:PVkVoid;
mutableDescriptorType:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMutableDescriptorType:TVkBool32);
{$endif}
end;
PPVkMutableDescriptorTypeListVALVE=^PVkMutableDescriptorTypeListVALVE;
PVkMutableDescriptorTypeListVALVE=^TVkMutableDescriptorTypeListVALVE;
TVkMutableDescriptorTypeListVALVE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
descriptorTypeCount:TVkUInt32;
pDescriptorTypes:PVkDescriptorType;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDescriptorTypeCount:TVkUInt32;
const aPDescriptorTypes:PVkDescriptorType);
{$endif}
end;
PPVkMutableDescriptorTypeCreateInfoVALVE=^PVkMutableDescriptorTypeCreateInfoVALVE;
PVkMutableDescriptorTypeCreateInfoVALVE=^TVkMutableDescriptorTypeCreateInfoVALVE;
TVkMutableDescriptorTypeCreateInfoVALVE=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE
pNext:PVkVoid;
mutableDescriptorTypeListCount:TVkUInt32;
pMutableDescriptorTypeLists:PVkMutableDescriptorTypeListVALVE;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMutableDescriptorTypeListCount:TVkUInt32;
const aPMutableDescriptorTypeLists:PVkMutableDescriptorTypeListVALVE);
{$endif}
end;
PPVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT=^PVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
PVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT=^TVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
TVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
pNext:PVkVoid;
vertexInputDynamicState:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexInputDynamicState:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceExternalMemoryRDMAFeaturesNV=^PVkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
PVkPhysicalDeviceExternalMemoryRDMAFeaturesNV=^TVkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
TVkPhysicalDeviceExternalMemoryRDMAFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
pNext:PVkVoid;
externalMemoryRDMA:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aExternalMemoryRDMA:TVkBool32);
{$endif}
end;
PPVkVertexInputBindingDescription2EXT=^PVkVertexInputBindingDescription2EXT;
PVkVertexInputBindingDescription2EXT=^TVkVertexInputBindingDescription2EXT;
TVkVertexInputBindingDescription2EXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
pNext:PVkVoid;
binding:TVkUInt32;
stride:TVkUInt32;
inputRate:TVkVertexInputRate;
divisor:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aBinding:TVkUInt32;
const aStride:TVkUInt32;
const aInputRate:TVkVertexInputRate;
const aDivisor:TVkUInt32);
{$endif}
end;
PPVkVertexInputAttributeDescription2EXT=^PVkVertexInputAttributeDescription2EXT;
PVkVertexInputAttributeDescription2EXT=^TVkVertexInputAttributeDescription2EXT;
TVkVertexInputAttributeDescription2EXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
pNext:PVkVoid;
location:TVkUInt32;
binding:TVkUInt32;
format:TVkFormat;
offset:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aLocation:TVkUInt32;
const aBinding:TVkUInt32;
const aFormat:TVkFormat;
const aOffset:TVkUInt32);
{$endif}
end;
PPVkPhysicalDeviceColorWriteEnableFeaturesEXT=^PVkPhysicalDeviceColorWriteEnableFeaturesEXT;
PVkPhysicalDeviceColorWriteEnableFeaturesEXT=^TVkPhysicalDeviceColorWriteEnableFeaturesEXT;
TVkPhysicalDeviceColorWriteEnableFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
pNext:PVkVoid;
colorWriteEnable:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aColorWriteEnable:TVkBool32);
{$endif}
end;
PPVkPipelineColorWriteCreateInfoEXT=^PVkPipelineColorWriteCreateInfoEXT;
PVkPipelineColorWriteCreateInfoEXT=^TVkPipelineColorWriteCreateInfoEXT;
TVkPipelineColorWriteCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
pNext:PVkVoid;
attachmentCount:TVkUInt32;
pColorWriteEnables:PVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aAttachmentCount:TVkUInt32;
const aPColorWriteEnables:PVkBool32);
{$endif}
end;
PPVkMemoryBarrier2KHR=^PVkMemoryBarrier2KHR;
PVkMemoryBarrier2KHR=^TVkMemoryBarrier2KHR;
TVkMemoryBarrier2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR
pNext:PVkVoid;
srcStageMask:TVkPipelineStageFlags2KHR;
srcAccessMask:TVkAccessFlags2KHR;
dstStageMask:TVkPipelineStageFlags2KHR;
dstAccessMask:TVkAccessFlags2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR);
{$endif}
end;
PPVkImageMemoryBarrier2KHR=^PVkImageMemoryBarrier2KHR;
PVkImageMemoryBarrier2KHR=^TVkImageMemoryBarrier2KHR;
TVkImageMemoryBarrier2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
pNext:PVkVoid;
srcStageMask:TVkPipelineStageFlags2KHR;
srcAccessMask:TVkAccessFlags2KHR;
dstStageMask:TVkPipelineStageFlags2KHR;
dstAccessMask:TVkAccessFlags2KHR;
oldLayout:TVkImageLayout;
newLayout:TVkImageLayout;
srcQueueFamilyIndex:TVkUInt32;
dstQueueFamilyIndex:TVkUInt32;
image:TVkImage;
subresourceRange:TVkImageSubresourceRange;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR;
const aOldLayout:TVkImageLayout;
const aNewLayout:TVkImageLayout;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aImage:TVkImage;
const aSubresourceRange:TVkImageSubresourceRange);
{$endif}
end;
PPVkBufferMemoryBarrier2KHR=^PVkBufferMemoryBarrier2KHR;
PVkBufferMemoryBarrier2KHR=^TVkBufferMemoryBarrier2KHR;
TVkBufferMemoryBarrier2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR
pNext:PVkVoid;
srcStageMask:TVkPipelineStageFlags2KHR;
srcAccessMask:TVkAccessFlags2KHR;
dstStageMask:TVkPipelineStageFlags2KHR;
dstAccessMask:TVkAccessFlags2KHR;
srcQueueFamilyIndex:TVkUInt32;
dstQueueFamilyIndex:TVkUInt32;
buffer:TVkBuffer;
offset:TVkDeviceSize;
size:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
{$endif}
end;
PPVkDependencyInfoKHR=^PVkDependencyInfoKHR;
PVkDependencyInfoKHR=^TVkDependencyInfoKHR;
TVkDependencyInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR
pNext:PVkVoid;
dependencyFlags:TVkDependencyFlags;
memoryBarrierCount:TVkUInt32;
pMemoryBarriers:PVkMemoryBarrier2KHR;
bufferMemoryBarrierCount:TVkUInt32;
pBufferMemoryBarriers:PVkBufferMemoryBarrier2KHR;
imageMemoryBarrierCount:TVkUInt32;
pImageMemoryBarriers:PVkImageMemoryBarrier2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDependencyFlags:TVkDependencyFlags;
const aMemoryBarrierCount:TVkUInt32;
const aPMemoryBarriers:PVkMemoryBarrier2KHR;
const aBufferMemoryBarrierCount:TVkUInt32;
const aPBufferMemoryBarriers:PVkBufferMemoryBarrier2KHR;
const aImageMemoryBarrierCount:TVkUInt32;
const aPImageMemoryBarriers:PVkImageMemoryBarrier2KHR);
{$endif}
end;
PPVkSemaphoreSubmitInfoKHR=^PVkSemaphoreSubmitInfoKHR;
PVkSemaphoreSubmitInfoKHR=^TVkSemaphoreSubmitInfoKHR;
TVkSemaphoreSubmitInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR
pNext:PVkVoid;
semaphore:TVkSemaphore;
value:TVkUInt64;
stageMask:TVkPipelineStageFlags2KHR;
deviceIndex:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSemaphore:TVkSemaphore;
const aValue:TVkUInt64;
const aStageMask:TVkPipelineStageFlags2KHR;
const aDeviceIndex:TVkUInt32);
{$endif}
end;
PPVkCommandBufferSubmitInfoKHR=^PVkCommandBufferSubmitInfoKHR;
PVkCommandBufferSubmitInfoKHR=^TVkCommandBufferSubmitInfoKHR;
TVkCommandBufferSubmitInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR
pNext:PVkVoid;
commandBuffer:TVkCommandBuffer;
deviceMask:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCommandBuffer:TVkCommandBuffer;
const aDeviceMask:TVkUInt32);
{$endif}
end;
PPVkSubmitInfo2KHR=^PVkSubmitInfo2KHR;
PVkSubmitInfo2KHR=^TVkSubmitInfo2KHR;
TVkSubmitInfo2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR
pNext:PVkVoid;
flags:TVkSubmitFlagsKHR;
waitSemaphoreInfoCount:TVkUInt32;
pWaitSemaphoreInfos:PVkSemaphoreSubmitInfoKHR;
commandBufferInfoCount:TVkUInt32;
pCommandBufferInfos:PVkCommandBufferSubmitInfoKHR;
signalSemaphoreInfoCount:TVkUInt32;
pSignalSemaphoreInfos:PVkSemaphoreSubmitInfoKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkSubmitFlagsKHR;
const aWaitSemaphoreInfoCount:TVkUInt32;
const aPWaitSemaphoreInfos:PVkSemaphoreSubmitInfoKHR;
const aCommandBufferInfoCount:TVkUInt32;
const aPCommandBufferInfos:PVkCommandBufferSubmitInfoKHR;
const aSignalSemaphoreInfoCount:TVkUInt32;
const aPSignalSemaphoreInfos:PVkSemaphoreSubmitInfoKHR);
{$endif}
end;
PPVkQueueFamilyCheckpointProperties2NV=^PVkQueueFamilyCheckpointProperties2NV;
PVkQueueFamilyCheckpointProperties2NV=^TVkQueueFamilyCheckpointProperties2NV;
TVkQueueFamilyCheckpointProperties2NV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
pNext:PVkVoid;
checkpointExecutionStageMask:TVkPipelineStageFlags2KHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCheckpointExecutionStageMask:TVkPipelineStageFlags2KHR);
{$endif}
end;
PPVkCheckpointData2NV=^PVkCheckpointData2NV;
PVkCheckpointData2NV=^TVkCheckpointData2NV;
TVkCheckpointData2NV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
pNext:PVkVoid;
stage:TVkPipelineStageFlags2KHR;
pCheckpointMarker:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStage:TVkPipelineStageFlags2KHR;
const aPCheckpointMarker:PVkVoid);
{$endif}
end;
PPVkPhysicalDeviceSynchronization2FeaturesKHR=^PVkPhysicalDeviceSynchronization2FeaturesKHR;
PVkPhysicalDeviceSynchronization2FeaturesKHR=^TVkPhysicalDeviceSynchronization2FeaturesKHR;
TVkPhysicalDeviceSynchronization2FeaturesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR
pNext:PVkVoid;
synchronization2:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSynchronization2:TVkBool32);
{$endif}
end;
{$ifdef VkVideo}
PPVkVideoQueueFamilyProperties2KHR=^PVkVideoQueueFamilyProperties2KHR;
PVkVideoQueueFamilyProperties2KHR=^TVkVideoQueueFamilyProperties2KHR;
TVkVideoQueueFamilyProperties2KHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR
pNext:PVkVoid;
videoCodecOperations:TVkVideoCodecOperationFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVideoCodecOperations:TVkVideoCodecOperationFlagsKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoProfileKHR=^PVkVideoProfileKHR;
PVkVideoProfileKHR=^TVkVideoProfileKHR;
TVkVideoProfileKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR
pNext:PVkVoid;
videoCodecOperation:TVkVideoCodecOperationFlagBitsKHR;
chromaSubsampling:TVkVideoChromaSubsamplingFlagsKHR;
lumaBitDepth:TVkVideoComponentBitDepthFlagsKHR;
chromaBitDepth:TVkVideoComponentBitDepthFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVideoCodecOperation:TVkVideoCodecOperationFlagBitsKHR;
const aChromaSubsampling:TVkVideoChromaSubsamplingFlagsKHR;
const aLumaBitDepth:TVkVideoComponentBitDepthFlagsKHR;
const aChromaBitDepth:TVkVideoComponentBitDepthFlagsKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoProfilesKHR=^PVkVideoProfilesKHR;
PVkVideoProfilesKHR=^TVkVideoProfilesKHR;
TVkVideoProfilesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR
pNext:PVkVoid;
profileCount:TVkUInt32;
pProfiles:PVkVideoProfileKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProfileCount:TVkUInt32;
const aPProfiles:PVkVideoProfileKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoFormatPropertiesKHR=^PVkVideoFormatPropertiesKHR;
PVkVideoFormatPropertiesKHR=^TVkVideoFormatPropertiesKHR;
TVkVideoFormatPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
pNext:PVkVoid;
format:TVkFormat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFormat:TVkFormat);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkPhysicalDeviceVideoFormatInfoKHR=^PVkPhysicalDeviceVideoFormatInfoKHR;
PVkPhysicalDeviceVideoFormatInfoKHR=^TVkPhysicalDeviceVideoFormatInfoKHR;
TVkPhysicalDeviceVideoFormatInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
pNext:PVkVoid;
imageUsage:TVkImageUsageFlags;
pVideoProfiles:PVkVideoProfilesKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aImageUsage:TVkImageUsageFlags;
const aPVideoProfiles:PVkVideoProfilesKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoCapabilitiesKHR=^PVkVideoCapabilitiesKHR;
PVkVideoCapabilitiesKHR=^TVkVideoCapabilitiesKHR;
TVkVideoCapabilitiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
pNext:PVkVoid;
capabilityFlags:TVkVideoCapabilitiesFlagsKHR;
minBitstreamBufferOffsetAlignment:TVkDeviceSize;
minBitstreamBufferSizeAlignment:TVkDeviceSize;
videoPictureExtentGranularity:TVkExtent2D;
minExtent:TVkExtent2D;
maxExtent:TVkExtent2D;
maxReferencePicturesSlotsCount:TVkUInt32;
maxReferencePicturesActiveCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCapabilityFlags:TVkVideoCapabilitiesFlagsKHR;
const aMinBitstreamBufferOffsetAlignment:TVkDeviceSize;
const aMinBitstreamBufferSizeAlignment:TVkDeviceSize;
const aVideoPictureExtentGranularity:TVkExtent2D;
const aMinExtent:TVkExtent2D;
const aMaxExtent:TVkExtent2D;
const aMaxReferencePicturesSlotsCount:TVkUInt32;
const aMaxReferencePicturesActiveCount:TVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoGetMemoryPropertiesKHR=^PVkVideoGetMemoryPropertiesKHR;
PVkVideoGetMemoryPropertiesKHR=^TVkVideoGetMemoryPropertiesKHR;
TVkVideoGetMemoryPropertiesKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR
pNext:PVkVoid;
memoryBindIndex:TVkUInt32;
pMemoryRequirements:PVkMemoryRequirements2;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryBindIndex:TVkUInt32;
const aPMemoryRequirements:PVkMemoryRequirements2);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoBindMemoryKHR=^PVkVideoBindMemoryKHR;
PVkVideoBindMemoryKHR=^TVkVideoBindMemoryKHR;
TVkVideoBindMemoryKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR
pNext:PVkVoid;
memoryBindIndex:TVkUInt32;
memory:TVkDeviceMemory;
memoryOffset:TVkDeviceSize;
memorySize:TVkDeviceSize;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemoryBindIndex:TVkUInt32;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aMemorySize:TVkDeviceSize);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoPictureResourceKHR=^PVkVideoPictureResourceKHR;
PVkVideoPictureResourceKHR=^TVkVideoPictureResourceKHR;
TVkVideoPictureResourceKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR
pNext:PVkVoid;
codedOffset:TVkOffset2D;
codedExtent:TVkExtent2D;
baseArrayLayer:TVkUInt32;
imageViewBinding:TVkImageView;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aCodedOffset:TVkOffset2D;
const aCodedExtent:TVkExtent2D;
const aBaseArrayLayer:TVkUInt32;
const aImageViewBinding:TVkImageView);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoReferenceSlotKHR=^PVkVideoReferenceSlotKHR;
PVkVideoReferenceSlotKHR=^TVkVideoReferenceSlotKHR;
TVkVideoReferenceSlotKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR
pNext:PVkVoid;
slotIndex:TVkInt8;
pPictureResource:PVkVideoPictureResourceKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSlotIndex:TVkInt8;
const aPPictureResource:PVkVideoPictureResourceKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeInfoKHR=^PVkVideoDecodeInfoKHR;
PVkVideoDecodeInfoKHR=^TVkVideoDecodeInfoKHR;
TVkVideoDecodeInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoDecodeFlagsKHR;
codedOffset:TVkOffset2D;
codedExtent:TVkExtent2D;
srcBuffer:TVkBuffer;
srcBufferOffset:TVkDeviceSize;
srcBufferRange:TVkDeviceSize;
dstPictureResource:TVkVideoPictureResourceKHR;
pSetupReferenceSlot:PVkVideoReferenceSlotKHR;
referenceSlotCount:TVkUInt32;
pReferenceSlots:PVkVideoReferenceSlotKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoDecodeFlagsKHR;
const aCodedOffset:TVkOffset2D;
const aCodedExtent:TVkExtent2D;
const aSrcBuffer:TVkBuffer;
const aSrcBufferOffset:TVkDeviceSize;
const aSrcBufferRange:TVkDeviceSize;
const aDstPictureResource:TVkVideoPictureResourceKHR;
const aPSetupReferenceSlot:PVkVideoReferenceSlotKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH264ProfileEXT=^PVkVideoDecodeH264ProfileEXT;
PVkVideoDecodeH264ProfileEXT=^TVkVideoDecodeH264ProfileEXT;
TVkVideoDecodeH264ProfileEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT
pNext:PVkVoid;
stdProfileIdc:TStdVideoH264ProfileIdc;
fieldLayout:TVkVideoDecodeH264FieldLayoutFlagsEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStdProfileIdc:TStdVideoH264ProfileIdc;
const aFieldLayout:TVkVideoDecodeH264FieldLayoutFlagsEXT);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH264CapabilitiesEXT=^PVkVideoDecodeH264CapabilitiesEXT;
PVkVideoDecodeH264CapabilitiesEXT=^TVkVideoDecodeH264CapabilitiesEXT;
TVkVideoDecodeH264CapabilitiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT
pNext:PVkVoid;
maxLevel:TVkUInt32;
fieldOffsetGranularity:TVkOffset2D;
stdExtensionVersion:TVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxLevel:TVkUInt32;
const aFieldOffsetGranularity:TVkOffset2D;
const aStdExtensionVersion:TVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH264SessionCreateInfoEXT=^PVkVideoDecodeH264SessionCreateInfoEXT;
PVkVideoDecodeH264SessionCreateInfoEXT=^TVkVideoDecodeH264SessionCreateInfoEXT;
TVkVideoDecodeH264SessionCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkVideoDecodeH264CreateFlagsEXT;
pStdExtensionVersion:PVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoDecodeH264CreateFlagsEXT;
const aPStdExtensionVersion:PVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH264SessionParametersAddInfoEXT=^PVkVideoDecodeH264SessionParametersAddInfoEXT;
PVkVideoDecodeH264SessionParametersAddInfoEXT=^TVkVideoDecodeH264SessionParametersAddInfoEXT;
TVkVideoDecodeH264SessionParametersAddInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT
pNext:PVkVoid;
spsStdCount:TVkUInt32;
pSpsStd:PStdVideoH264SequenceParameterSet;
ppsStdCount:TVkUInt32;
pPpsStd:PStdVideoH264PictureParameterSet;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH264SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH264PictureParameterSet);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH264SessionParametersCreateInfoEXT=^PVkVideoDecodeH264SessionParametersCreateInfoEXT;
PVkVideoDecodeH264SessionParametersCreateInfoEXT=^TVkVideoDecodeH264SessionParametersCreateInfoEXT;
TVkVideoDecodeH264SessionParametersCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT
pNext:PVkVoid;
maxSpsStdCount:TVkUInt32;
maxPpsStdCount:TVkUInt32;
pParametersAddInfo:PVkVideoDecodeH264SessionParametersAddInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoDecodeH264SessionParametersAddInfoEXT);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH264PictureInfoEXT=^PVkVideoDecodeH264PictureInfoEXT;
PVkVideoDecodeH264PictureInfoEXT=^TVkVideoDecodeH264PictureInfoEXT;
TVkVideoDecodeH264PictureInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT
pNext:PVkVoid;
pStdPictureInfo:PStdVideoDecodeH264PictureInfo;
slicesCount:TVkUInt32;
pSlicesDataOffsets:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPStdPictureInfo:PStdVideoDecodeH264PictureInfo;
const aSlicesCount:TVkUInt32;
const aPSlicesDataOffsets:PVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH264DpbSlotInfoEXT=^PVkVideoDecodeH264DpbSlotInfoEXT;
PVkVideoDecodeH264DpbSlotInfoEXT=^TVkVideoDecodeH264DpbSlotInfoEXT;
TVkVideoDecodeH264DpbSlotInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT
pNext:PVkVoid;
pStdReferenceInfo:PStdVideoDecodeH264ReferenceInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPStdReferenceInfo:PStdVideoDecodeH264ReferenceInfo);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH264MvcEXT=^PVkVideoDecodeH264MvcEXT;
PVkVideoDecodeH264MvcEXT=^TVkVideoDecodeH264MvcEXT;
TVkVideoDecodeH264MvcEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT
pNext:PVkVoid;
pStdMvc:PStdVideoDecodeH264Mvc;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPStdMvc:PStdVideoDecodeH264Mvc);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH265ProfileEXT=^PVkVideoDecodeH265ProfileEXT;
PVkVideoDecodeH265ProfileEXT=^TVkVideoDecodeH265ProfileEXT;
TVkVideoDecodeH265ProfileEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT
pNext:PVkVoid;
stdProfileIdc:TStdVideoH265ProfileIdc;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStdProfileIdc:TStdVideoH265ProfileIdc);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH265CapabilitiesEXT=^PVkVideoDecodeH265CapabilitiesEXT;
PVkVideoDecodeH265CapabilitiesEXT=^TVkVideoDecodeH265CapabilitiesEXT;
TVkVideoDecodeH265CapabilitiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT
pNext:PVkVoid;
maxLevel:TVkUInt32;
stdExtensionVersion:TVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxLevel:TVkUInt32;
const aStdExtensionVersion:TVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH265SessionCreateInfoEXT=^PVkVideoDecodeH265SessionCreateInfoEXT;
PVkVideoDecodeH265SessionCreateInfoEXT=^TVkVideoDecodeH265SessionCreateInfoEXT;
TVkVideoDecodeH265SessionCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkVideoDecodeH265CreateFlagsEXT;
pStdExtensionVersion:PVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoDecodeH265CreateFlagsEXT;
const aPStdExtensionVersion:PVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH265SessionParametersAddInfoEXT=^PVkVideoDecodeH265SessionParametersAddInfoEXT;
PVkVideoDecodeH265SessionParametersAddInfoEXT=^TVkVideoDecodeH265SessionParametersAddInfoEXT;
TVkVideoDecodeH265SessionParametersAddInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT
pNext:PVkVoid;
spsStdCount:TVkUInt32;
pSpsStd:PStdVideoH265SequenceParameterSet;
ppsStdCount:TVkUInt32;
pPpsStd:PStdVideoH265PictureParameterSet;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH265SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH265PictureParameterSet);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoDecodeH265SessionParametersCreateInfoEXT=^PVkVideoDecodeH265SessionParametersCreateInfoEXT;
PVkVideoDecodeH265SessionParametersCreateInfoEXT=^TVkVideoDecodeH265SessionParametersCreateInfoEXT;
TVkVideoDecodeH265SessionParametersCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT
pNext:PVkVoid;
maxSpsStdCount:TVkUInt32;
maxPpsStdCount:TVkUInt32;
pParametersAddInfo:PVkVideoDecodeH265SessionParametersAddInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoDecodeH265SessionParametersAddInfoEXT);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH265PictureInfoEXT=^PVkVideoDecodeH265PictureInfoEXT;
PVkVideoDecodeH265PictureInfoEXT=^TVkVideoDecodeH265PictureInfoEXT;
TVkVideoDecodeH265PictureInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT
pNext:PVkVoid;
pStdPictureInfo:PStdVideoDecodeH265PictureInfo;
slicesCount:TVkUInt32;
pSlicesDataOffsets:PVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPStdPictureInfo:PStdVideoDecodeH265PictureInfo;
const aSlicesCount:TVkUInt32;
const aPSlicesDataOffsets:PVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoDecodeH265DpbSlotInfoEXT=^PVkVideoDecodeH265DpbSlotInfoEXT;
PVkVideoDecodeH265DpbSlotInfoEXT=^TVkVideoDecodeH265DpbSlotInfoEXT;
TVkVideoDecodeH265DpbSlotInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT
pNext:PVkVoid;
pStdReferenceInfo:PStdVideoDecodeH265ReferenceInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPStdReferenceInfo:PStdVideoDecodeH265ReferenceInfo);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoSessionCreateInfoKHR=^PVkVideoSessionCreateInfoKHR;
PVkVideoSessionCreateInfoKHR=^TVkVideoSessionCreateInfoKHR;
TVkVideoSessionCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
pNext:PVkVoid;
queueFamilyIndex:TVkUInt32;
flags:TVkVideoSessionCreateFlagsKHR;
pVideoProfile:PVkVideoProfileKHR;
pictureFormat:TVkFormat;
maxCodedExtent:TVkExtent2D;
referencePicturesFormat:TVkFormat;
maxReferencePicturesSlotsCount:TVkUInt32;
maxReferencePicturesActiveCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aQueueFamilyIndex:TVkUInt32;
const aFlags:TVkVideoSessionCreateFlagsKHR;
const aPVideoProfile:PVkVideoProfileKHR;
const aPictureFormat:TVkFormat;
const aMaxCodedExtent:TVkExtent2D;
const aReferencePicturesFormat:TVkFormat;
const aMaxReferencePicturesSlotsCount:TVkUInt32;
const aMaxReferencePicturesActiveCount:TVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoSessionParametersCreateInfoKHR=^PVkVideoSessionParametersCreateInfoKHR;
PVkVideoSessionParametersCreateInfoKHR=^TVkVideoSessionParametersCreateInfoKHR;
TVkVideoSessionParametersCreateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
pNext:PVkVoid;
videoSessionParametersTemplate:TVkVideoSessionParametersKHR;
videoSession:TVkVideoSessionKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVideoSessionParametersTemplate:TVkVideoSessionParametersKHR;
const aVideoSession:TVkVideoSessionKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoSessionParametersUpdateInfoKHR=^PVkVideoSessionParametersUpdateInfoKHR;
PVkVideoSessionParametersUpdateInfoKHR=^TVkVideoSessionParametersUpdateInfoKHR;
TVkVideoSessionParametersUpdateInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
pNext:PVkVoid;
updateSequenceCount:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aUpdateSequenceCount:TVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoBeginCodingInfoKHR=^PVkVideoBeginCodingInfoKHR;
PVkVideoBeginCodingInfoKHR=^TVkVideoBeginCodingInfoKHR;
TVkVideoBeginCodingInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoBeginCodingFlagsKHR;
codecQualityPreset:TVkVideoCodingQualityPresetFlagsKHR;
videoSession:TVkVideoSessionKHR;
videoSessionParameters:TVkVideoSessionParametersKHR;
referenceSlotCount:TVkUInt32;
pReferenceSlots:PVkVideoReferenceSlotKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoBeginCodingFlagsKHR;
const aCodecQualityPreset:TVkVideoCodingQualityPresetFlagsKHR;
const aVideoSession:TVkVideoSessionKHR;
const aVideoSessionParameters:TVkVideoSessionParametersKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEndCodingInfoKHR=^PVkVideoEndCodingInfoKHR;
PVkVideoEndCodingInfoKHR=^TVkVideoEndCodingInfoKHR;
TVkVideoEndCodingInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoEndCodingFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoEndCodingFlagsKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoCodingControlInfoKHR=^PVkVideoCodingControlInfoKHR;
PVkVideoCodingControlInfoKHR=^TVkVideoCodingControlInfoKHR;
TVkVideoCodingControlInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoCodingControlFlagsKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoCodingControlFlagsKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeInfoKHR=^PVkVideoEncodeInfoKHR;
PVkVideoEncodeInfoKHR=^TVkVideoEncodeInfoKHR;
TVkVideoEncodeInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoEncodeFlagsKHR;
qualityLevel:TVkUInt32;
codedExtent:TVkExtent2D;
dstBitstreamBuffer:TVkBuffer;
dstBitstreamBufferOffset:TVkDeviceSize;
dstBitstreamBufferMaxRange:TVkDeviceSize;
srcPictureResource:TVkVideoPictureResourceKHR;
pSetupReferenceSlot:PVkVideoReferenceSlotKHR;
referenceSlotCount:TVkUInt32;
pReferenceSlots:PVkVideoReferenceSlotKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoEncodeFlagsKHR;
const aQualityLevel:TVkUInt32;
const aCodedExtent:TVkExtent2D;
const aDstBitstreamBuffer:TVkBuffer;
const aDstBitstreamBufferOffset:TVkDeviceSize;
const aDstBitstreamBufferMaxRange:TVkDeviceSize;
const aSrcPictureResource:TVkVideoPictureResourceKHR;
const aPSetupReferenceSlot:PVkVideoReferenceSlotKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeRateControlInfoKHR=^PVkVideoEncodeRateControlInfoKHR;
PVkVideoEncodeRateControlInfoKHR=^TVkVideoEncodeRateControlInfoKHR;
TVkVideoEncodeRateControlInfoKHR=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR
pNext:PVkVoid;
flags:TVkVideoEncodeRateControlFlagsKHR;
rateControlMode:TVkVideoEncodeRateControlModeFlagBitsKHR;
averageBitrate:TVkUInt32;
peakToAverageBitrateRatio:TVkUInt16;
frameRateNumerator:TVkUInt16;
frameRateDenominator:TVkUInt16;
virtualBufferSizeInMs:TVkUInt32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoEncodeRateControlFlagsKHR;
const aRateControlMode:TVkVideoEncodeRateControlModeFlagBitsKHR;
const aAverageBitrate:TVkUInt32;
const aPeakToAverageBitrateRatio:TVkUInt16;
const aFrameRateNumerator:TVkUInt16;
const aFrameRateDenominator:TVkUInt16;
const aVirtualBufferSizeInMs:TVkUInt32);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264CapabilitiesEXT=^PVkVideoEncodeH264CapabilitiesEXT;
PVkVideoEncodeH264CapabilitiesEXT=^TVkVideoEncodeH264CapabilitiesEXT;
TVkVideoEncodeH264CapabilitiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT
pNext:PVkVoid;
flags:TVkVideoEncodeH264CapabilitiesFlagsEXT;
inputModeFlags:TVkVideoEncodeH264InputModeFlagsEXT;
outputModeFlags:TVkVideoEncodeH264OutputModeFlagsEXT;
minPictureSizeInMbs:TVkExtent2D;
maxPictureSizeInMbs:TVkExtent2D;
inputImageDataAlignment:TVkExtent2D;
maxNumL0ReferenceForP:TVkUInt8;
maxNumL0ReferenceForB:TVkUInt8;
maxNumL1Reference:TVkUInt8;
qualityLevelCount:TVkUInt8;
stdExtensionVersion:TVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoEncodeH264CapabilitiesFlagsEXT;
const aInputModeFlags:TVkVideoEncodeH264InputModeFlagsEXT;
const aOutputModeFlags:TVkVideoEncodeH264OutputModeFlagsEXT;
const aMinPictureSizeInMbs:TVkExtent2D;
const aMaxPictureSizeInMbs:TVkExtent2D;
const aInputImageDataAlignment:TVkExtent2D;
const aMaxNumL0ReferenceForP:TVkUInt8;
const aMaxNumL0ReferenceForB:TVkUInt8;
const aMaxNumL1Reference:TVkUInt8;
const aQualityLevelCount:TVkUInt8;
const aStdExtensionVersion:TVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264SessionCreateInfoEXT=^PVkVideoEncodeH264SessionCreateInfoEXT;
PVkVideoEncodeH264SessionCreateInfoEXT=^TVkVideoEncodeH264SessionCreateInfoEXT;
TVkVideoEncodeH264SessionCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT
pNext:PVkVoid;
flags:TVkVideoEncodeH264CreateFlagsEXT;
maxPictureSizeInMbs:TVkExtent2D;
pStdExtensionVersion:PVkExtensionProperties;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFlags:TVkVideoEncodeH264CreateFlagsEXT;
const aMaxPictureSizeInMbs:TVkExtent2D;
const aPStdExtensionVersion:PVkExtensionProperties);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoEncodeH264SessionParametersAddInfoEXT=^PVkVideoEncodeH264SessionParametersAddInfoEXT;
PVkVideoEncodeH264SessionParametersAddInfoEXT=^TVkVideoEncodeH264SessionParametersAddInfoEXT;
TVkVideoEncodeH264SessionParametersAddInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT
pNext:PVkVoid;
spsStdCount:TVkUInt32;
pSpsStd:PStdVideoH264SequenceParameterSet;
ppsStdCount:TVkUInt32;
pPpsStd:PStdVideoH264PictureParameterSet;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH264SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH264PictureParameterSet);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264SessionParametersCreateInfoEXT=^PVkVideoEncodeH264SessionParametersCreateInfoEXT;
PVkVideoEncodeH264SessionParametersCreateInfoEXT=^TVkVideoEncodeH264SessionParametersCreateInfoEXT;
TVkVideoEncodeH264SessionParametersCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT
pNext:PVkVoid;
maxSpsStdCount:TVkUInt32;
maxPpsStdCount:TVkUInt32;
pParametersAddInfo:PVkVideoEncodeH264SessionParametersAddInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoEncodeH264SessionParametersAddInfoEXT);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoEncodeH264DpbSlotInfoEXT=^PVkVideoEncodeH264DpbSlotInfoEXT;
PVkVideoEncodeH264DpbSlotInfoEXT=^TVkVideoEncodeH264DpbSlotInfoEXT;
TVkVideoEncodeH264DpbSlotInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT
pNext:PVkVoid;
slotIndex:TVkInt8;
pStdPictureInfo:PStdVideoEncodeH264PictureInfo;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSlotIndex:TVkInt8;
const aPStdPictureInfo:PStdVideoEncodeH264PictureInfo);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264NaluSliceEXT=^PVkVideoEncodeH264NaluSliceEXT;
PVkVideoEncodeH264NaluSliceEXT=^TVkVideoEncodeH264NaluSliceEXT;
TVkVideoEncodeH264NaluSliceEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT
pNext:PVkVoid;
pSliceHeaderStd:PStdVideoEncodeH264SliceHeader;
mbCount:TVkUInt32;
refFinalList0EntryCount:TVkUInt8;
pRefFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
refFinalList1EntryCount:TVkUInt8;
pRefFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
precedingNaluBytes:TVkUInt32;
minQp:TVkUInt8;
maxQp:TVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aPSliceHeaderStd:PStdVideoEncodeH264SliceHeader;
const aMbCount:TVkUInt32;
const aRefFinalList0EntryCount:TVkUInt8;
const aPRefFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aRefFinalList1EntryCount:TVkUInt8;
const aPRefFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aPrecedingNaluBytes:TVkUInt32;
const aMinQp:TVkUInt8;
const aMaxQp:TVkUInt8);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264EmitPictureParametersEXT=^PVkVideoEncodeH264EmitPictureParametersEXT;
PVkVideoEncodeH264EmitPictureParametersEXT=^TVkVideoEncodeH264EmitPictureParametersEXT;
TVkVideoEncodeH264EmitPictureParametersEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT
pNext:PVkVoid;
spsId:TVkUInt8;
emitSpsEnable:TVkBool32;
ppsIdEntryCount:TVkUInt32;
ppsIdEntries:PVkUInt8;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSpsId:TVkUInt8;
const aEmitSpsEnable:TVkBool32;
const aPpsIdEntryCount:TVkUInt32;
const aPpsIdEntries:PVkUInt8);
{$endif}
end;
{$endif}
{$ifdef VkStdVideo}
PPVkVideoEncodeH264ProfileEXT=^PVkVideoEncodeH264ProfileEXT;
PVkVideoEncodeH264ProfileEXT=^TVkVideoEncodeH264ProfileEXT;
TVkVideoEncodeH264ProfileEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT
pNext:PVkVoid;
stdProfileIdc:TStdVideoH264ProfileIdc;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aStdProfileIdc:TStdVideoH264ProfileIdc);
{$endif}
end;
{$endif}
{$ifdef VkVideo}
PPVkVideoEncodeH264VclFrameInfoEXT=^PVkVideoEncodeH264VclFrameInfoEXT;
PVkVideoEncodeH264VclFrameInfoEXT=^TVkVideoEncodeH264VclFrameInfoEXT;
TVkVideoEncodeH264VclFrameInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT
pNext:PVkVoid;
refDefaultFinalList0EntryCount:TVkUInt8;
pRefDefaultFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
refDefaultFinalList1EntryCount:TVkUInt8;
pRefDefaultFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
naluSliceEntryCount:TVkUInt32;
pNaluSliceEntries:PVkVideoEncodeH264NaluSliceEXT;
pCurrentPictureInfo:PVkVideoEncodeH264DpbSlotInfoEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRefDefaultFinalList0EntryCount:TVkUInt8;
const aPRefDefaultFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aRefDefaultFinalList1EntryCount:TVkUInt8;
const aPRefDefaultFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aNaluSliceEntryCount:TVkUInt32;
const aPNaluSliceEntries:PVkVideoEncodeH264NaluSliceEXT;
const aPCurrentPictureInfo:PVkVideoEncodeH264DpbSlotInfoEXT);
{$endif}
end;
{$endif}
PPVkPhysicalDeviceInheritedViewportScissorFeaturesNV=^PVkPhysicalDeviceInheritedViewportScissorFeaturesNV;
PVkPhysicalDeviceInheritedViewportScissorFeaturesNV=^TVkPhysicalDeviceInheritedViewportScissorFeaturesNV;
TVkPhysicalDeviceInheritedViewportScissorFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
pNext:PVkVoid;
inheritedViewportScissor2D:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aInheritedViewportScissor2D:TVkBool32);
{$endif}
end;
PPVkCommandBufferInheritanceViewportScissorInfoNV=^PVkCommandBufferInheritanceViewportScissorInfoNV;
PVkCommandBufferInheritanceViewportScissorInfoNV=^TVkCommandBufferInheritanceViewportScissorInfoNV;
TVkCommandBufferInheritanceViewportScissorInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
pNext:PVkVoid;
viewportScissor2D:TVkBool32;
viewportDepthCount:TVkUInt32;
pViewportDepths:PVkViewport;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aViewportScissor2D:TVkBool32;
const aViewportDepthCount:TVkUInt32;
const aPViewportDepths:PVkViewport);
{$endif}
end;
PPVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT=^PVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
PVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT=^TVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
TVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
pNext:PVkVoid;
ycbcr2plane444Formats:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aYcbcr2plane444Formats:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceProvokingVertexFeaturesEXT=^PVkPhysicalDeviceProvokingVertexFeaturesEXT;
PVkPhysicalDeviceProvokingVertexFeaturesEXT=^TVkPhysicalDeviceProvokingVertexFeaturesEXT;
TVkPhysicalDeviceProvokingVertexFeaturesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
pNext:PVkVoid;
provokingVertexLast:TVkBool32;
transformFeedbackPreservesProvokingVertex:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProvokingVertexLast:TVkBool32;
const aTransformFeedbackPreservesProvokingVertex:TVkBool32);
{$endif}
end;
PPVkPhysicalDeviceProvokingVertexPropertiesEXT=^PVkPhysicalDeviceProvokingVertexPropertiesEXT;
PVkPhysicalDeviceProvokingVertexPropertiesEXT=^TVkPhysicalDeviceProvokingVertexPropertiesEXT;
TVkPhysicalDeviceProvokingVertexPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
pNext:PVkVoid;
provokingVertexModePerPipeline:TVkBool32;
transformFeedbackPreservesTriangleFanProvokingVertex:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProvokingVertexModePerPipeline:TVkBool32;
const aTransformFeedbackPreservesTriangleFanProvokingVertex:TVkBool32);
{$endif}
end;
PPVkPipelineRasterizationProvokingVertexStateCreateInfoEXT=^PVkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
PVkPipelineRasterizationProvokingVertexStateCreateInfoEXT=^TVkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
TVkPipelineRasterizationProvokingVertexStateCreateInfoEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
pNext:PVkVoid;
provokingVertexMode:TVkProvokingVertexModeEXT;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aProvokingVertexMode:TVkProvokingVertexModeEXT);
{$endif}
end;
PPVkCuModuleCreateInfoNVX=^PVkCuModuleCreateInfoNVX;
PVkCuModuleCreateInfoNVX=^TVkCuModuleCreateInfoNVX;
TVkCuModuleCreateInfoNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
pNext:PVkVoid;
dataSize:TVkSize;
pData:PVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aDataSize:TVkSize;
const aPData:PVkVoid);
{$endif}
end;
PPVkCuFunctionCreateInfoNVX=^PVkCuFunctionCreateInfoNVX;
PVkCuFunctionCreateInfoNVX=^TVkCuFunctionCreateInfoNVX;
TVkCuFunctionCreateInfoNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
pNext:PVkVoid;
module:TVkCuModuleNVX;
pName:PVkChar;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aModule:TVkCuModuleNVX;
const aPName:PVkChar);
{$endif}
end;
PPVkCuLaunchInfoNVX=^PVkCuLaunchInfoNVX;
PVkCuLaunchInfoNVX=^TVkCuLaunchInfoNVX;
TVkCuLaunchInfoNVX=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
pNext:PVkVoid;
function_:TVkCuFunctionNVX;
gridDimX:TVkUInt32;
gridDimY:TVkUInt32;
gridDimZ:TVkUInt32;
blockDimX:TVkUInt32;
blockDimY:TVkUInt32;
blockDimZ:TVkUInt32;
sharedMemBytes:TVkUInt32;
paramCount:TVkSize;
pParams:PPVkVoid;
extraCount:TVkSize;
pExtras:PPVkVoid;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aFunction_:TVkCuFunctionNVX;
const aGridDimX:TVkUInt32;
const aGridDimY:TVkUInt32;
const aGridDimZ:TVkUInt32;
const aBlockDimX:TVkUInt32;
const aBlockDimY:TVkUInt32;
const aBlockDimZ:TVkUInt32;
const aSharedMemBytes:TVkUInt32;
const aParamCount:TVkSize;
const aPParams:PPVkVoid;
const aExtraCount:TVkSize;
const aPExtras:PPVkVoid);
{$endif}
end;
PPVkPhysicalDeviceDrmPropertiesEXT=^PVkPhysicalDeviceDrmPropertiesEXT;
PVkPhysicalDeviceDrmPropertiesEXT=^TVkPhysicalDeviceDrmPropertiesEXT;
TVkPhysicalDeviceDrmPropertiesEXT=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
pNext:PVkVoid;
hasPrimary:TVkBool32;
hasRender:TVkBool32;
primaryMajor:TVkInt64;
primaryMinor:TVkInt64;
renderMajor:TVkInt64;
renderMinor:TVkInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aHasPrimary:TVkBool32;
const aHasRender:TVkBool32;
const aPrimaryMajor:TVkInt64;
const aPrimaryMinor:TVkInt64;
const aRenderMajor:TVkInt64;
const aRenderMinor:TVkInt64);
{$endif}
end;
PPVkPhysicalDeviceRayTracingMotionBlurFeaturesNV=^PVkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
PVkPhysicalDeviceRayTracingMotionBlurFeaturesNV=^TVkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
TVkPhysicalDeviceRayTracingMotionBlurFeaturesNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
pNext:PVkVoid;
rayTracingMotionBlur:TVkBool32;
rayTracingMotionBlurPipelineTraceRaysIndirect:TVkBool32;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aRayTracingMotionBlur:TVkBool32;
const aRayTracingMotionBlurPipelineTraceRaysIndirect:TVkBool32);
{$endif}
end;
PPVkAccelerationStructureGeometryMotionTrianglesDataNV=^PVkAccelerationStructureGeometryMotionTrianglesDataNV;
PVkAccelerationStructureGeometryMotionTrianglesDataNV=^TVkAccelerationStructureGeometryMotionTrianglesDataNV;
TVkAccelerationStructureGeometryMotionTrianglesDataNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
pNext:PVkVoid;
vertexData:TVkDeviceOrHostAddressConstKHR;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aVertexData:TVkDeviceOrHostAddressConstKHR);
{$endif}
end;
PPVkAccelerationStructureMotionInfoNV=^PVkAccelerationStructureMotionInfoNV;
PVkAccelerationStructureMotionInfoNV=^TVkAccelerationStructureMotionInfoNV;
TVkAccelerationStructureMotionInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
pNext:PVkVoid;
maxInstances:TVkUInt32;
flags:TVkAccelerationStructureMotionInfoFlagsNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMaxInstances:TVkUInt32;
const aFlags:TVkAccelerationStructureMotionInfoFlagsNV);
{$endif}
end;
PPVkSRTDataNV=^PVkSRTDataNV;
PVkSRTDataNV=^TVkSRTDataNV;
TVkSRTDataNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sx:TVkFloat;
a:TVkFloat;
b:TVkFloat;
pvx:TVkFloat;
sy:TVkFloat;
c:TVkFloat;
pvy:TVkFloat;
sz:TVkFloat;
pvz:TVkFloat;
qx:TVkFloat;
qy:TVkFloat;
qz:TVkFloat;
qw:TVkFloat;
tx:TVkFloat;
ty:TVkFloat;
tz:TVkFloat;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aSx:TVkFloat;
const aA:TVkFloat;
const aB:TVkFloat;
const aPvx:TVkFloat;
const aSy:TVkFloat;
const aC:TVkFloat;
const aPvy:TVkFloat;
const aSz:TVkFloat;
const aPvz:TVkFloat;
const aQx:TVkFloat;
const aQy:TVkFloat;
const aQz:TVkFloat;
const aQw:TVkFloat;
const aTx:TVkFloat;
const aTy:TVkFloat;
const aTz:TVkFloat);
{$endif}
end;
PPVkAccelerationStructureSRTMotionInstanceNV=^PVkAccelerationStructureSRTMotionInstanceNV;
PVkAccelerationStructureSRTMotionInstanceNV=^TVkAccelerationStructureSRTMotionInstanceNV;
TVkAccelerationStructureSRTMotionInstanceNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
transformT0:TVkSRTDataNV;
transformT1:TVkSRTDataNV;
instanceCustomIndex:TVkUInt32;
mask:TVkUInt32;
instanceShaderBindingTableRecordOffset:TVkUInt32;
flags:TVkGeometryInstanceFlagsKHR;
accelerationStructureReference:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransformT0:TVkSRTDataNV;
const aTransformT1:TVkSRTDataNV;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
{$endif}
end;
PPVkAccelerationStructureMatrixMotionInstanceNV=^PVkAccelerationStructureMatrixMotionInstanceNV;
PVkAccelerationStructureMatrixMotionInstanceNV=^TVkAccelerationStructureMatrixMotionInstanceNV;
TVkAccelerationStructureMatrixMotionInstanceNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
transformT0:TVkTransformMatrixKHR;
transformT1:TVkTransformMatrixKHR;
instanceCustomIndex:TVkUInt32;
mask:TVkUInt32;
instanceShaderBindingTableRecordOffset:TVkUInt32;
flags:TVkGeometryInstanceFlagsKHR;
accelerationStructureReference:TVkUInt64;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aTransformT0:TVkTransformMatrixKHR;
const aTransformT1:TVkTransformMatrixKHR;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
{$endif}
end;
PPVkAccelerationStructureMotionInstanceDataNV=^PVkAccelerationStructureMotionInstanceDataNV;
PVkAccelerationStructureMotionInstanceDataNV=^TVkAccelerationStructureMotionInstanceDataNV;
TVkAccelerationStructureMotionInstanceDataNV=record
case longint of
0:(
staticInstance:TVkAccelerationStructureInstanceKHR;
);
1:(
matrixMotionInstance:TVkAccelerationStructureMatrixMotionInstanceNV;
);
2:(
srtMotionInstance:TVkAccelerationStructureSRTMotionInstanceNV;
);
end;
PPVkAccelerationStructureMotionInstanceNV=^PVkAccelerationStructureMotionInstanceNV;
PVkAccelerationStructureMotionInstanceNV=^TVkAccelerationStructureMotionInstanceNV;
TVkAccelerationStructureMotionInstanceNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
type_:TVkAccelerationStructureMotionInstanceTypeNV;
flags:TVkAccelerationStructureMotionInstanceFlagsNV;
data:TVkAccelerationStructureMotionInstanceDataNV;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aType_:TVkAccelerationStructureMotionInstanceTypeNV;
const aFlags:TVkAccelerationStructureMotionInstanceFlagsNV;
const aData:TVkAccelerationStructureMotionInstanceDataNV);
{$endif}
end;
PPVkMemoryGetRemoteAddressInfoNV=^PVkMemoryGetRemoteAddressInfoNV;
PVkMemoryGetRemoteAddressInfoNV=^TVkMemoryGetRemoteAddressInfoNV;
TVkMemoryGetRemoteAddressInfoNV=record
{$ifdef HAS_ADVANCED_RECORDS}
public
{$endif}
sType:TVkStructureType; //< Must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
pNext:PVkVoid;
memory:TVkDeviceMemory;
handleType:TVkExternalMemoryHandleTypeFlagBits;
{$ifdef HAS_ADVANCED_RECORDS}
constructor Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
{$endif}
end;
TvkCreateInstance=function(const pCreateInfo:PVkInstanceCreateInfo;const pAllocator:PVkAllocationCallbacks;pInstance:PVkInstance):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyInstance=procedure(instance:TVkInstance;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumeratePhysicalDevices=function(instance:TVkInstance;pPhysicalDeviceCount:PVkUInt32;pPhysicalDevices:PVkPhysicalDevice):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceProcAddr=function(device:TVkDevice;const pName:PVkChar):TPFN_vkVoidFunction; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetInstanceProcAddr=function(instance:TVkInstance;const pName:PVkChar):TPFN_vkVoidFunction; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceProperties=procedure(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceQueueFamilyProperties=procedure(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceMemoryProperties=procedure(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFeatures=procedure(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFormatProperties=procedure(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceImageFormatProperties=function(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;pImageFormatProperties:PVkImageFormatProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDevice=function(physicalDevice:TVkPhysicalDevice;const pCreateInfo:PVkDeviceCreateInfo;const pAllocator:PVkAllocationCallbacks;pDevice:PVkDevice):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDevice=procedure(device:TVkDevice;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumerateInstanceVersion=function(pApiVersion:PVkUInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumerateInstanceLayerProperties=function(pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumerateInstanceExtensionProperties=function(const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumerateDeviceLayerProperties=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumerateDeviceExtensionProperties=function(physicalDevice:TVkPhysicalDevice;const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceQueue=procedure(device:TVkDevice;queueFamilyIndex:TVkUInt32;queueIndex:TVkUInt32;pQueue:PVkQueue); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueSubmit=function(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo;fence:TVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueWaitIdle=function(queue:TVkQueue):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDeviceWaitIdle=function(device:TVkDevice):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAllocateMemory=function(device:TVkDevice;const pAllocateInfo:PVkMemoryAllocateInfo;const pAllocator:PVkAllocationCallbacks;pMemory:PVkDeviceMemory):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkFreeMemory=procedure(device:TVkDevice;memory:TVkDeviceMemory;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkMapMemory=function(device:TVkDevice;memory:TVkDeviceMemory;offset:TVkDeviceSize;size:TVkDeviceSize;flags:TVkMemoryMapFlags;ppData:PPVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkUnmapMemory=procedure(device:TVkDevice;memory:TVkDeviceMemory); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkFlushMappedMemoryRanges=function(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkInvalidateMappedMemoryRanges=function(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceMemoryCommitment=procedure(device:TVkDevice;memory:TVkDeviceMemory;pCommittedMemoryInBytes:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferMemoryRequirements=procedure(device:TVkDevice;buffer:TVkBuffer;pMemoryRequirements:PVkMemoryRequirements); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindBufferMemory=function(device:TVkDevice;buffer:TVkBuffer;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageMemoryRequirements=procedure(device:TVkDevice;image:TVkImage;pMemoryRequirements:PVkMemoryRequirements); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindImageMemory=function(device:TVkDevice;image:TVkImage;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageSparseMemoryRequirements=procedure(device:TVkDevice;image:TVkImage;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSparseImageFormatProperties=procedure(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;samples:TVkSampleCountFlagBits;usage:TVkImageUsageFlags;tiling:TVkImageTiling;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueBindSparse=function(queue:TVkQueue;bindInfoCount:TVkUInt32;const pBindInfo:PVkBindSparseInfo;fence:TVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateFence=function(device:TVkDevice;const pCreateInfo:PVkFenceCreateInfo;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyFence=procedure(device:TVkDevice;fence:TVkFence;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetFences=function(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetFenceStatus=function(device:TVkDevice;fence:TVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkWaitForFences=function(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence;waitAll:TVkBool32;timeout:TVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSemaphore=function(device:TVkDevice;const pCreateInfo:PVkSemaphoreCreateInfo;const pAllocator:PVkAllocationCallbacks;pSemaphore:PVkSemaphore):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySemaphore=procedure(device:TVkDevice;semaphore:TVkSemaphore;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateEvent=function(device:TVkDevice;const pCreateInfo:PVkEventCreateInfo;const pAllocator:PVkAllocationCallbacks;pEvent:PVkEvent):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyEvent=procedure(device:TVkDevice;event:TVkEvent;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetEventStatus=function(device:TVkDevice;event:TVkEvent):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetEvent=function(device:TVkDevice;event:TVkEvent):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetEvent=function(device:TVkDevice;event:TVkEvent):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateQueryPool=function(device:TVkDevice;const pCreateInfo:PVkQueryPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pQueryPool:PVkQueryPool):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyQueryPool=procedure(device:TVkDevice;queryPool:TVkQueryPool;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetQueryPoolResults=function(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid;stride:TVkDeviceSize;flags:TVkQueryResultFlags):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetQueryPool=procedure(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetQueryPoolEXT=procedure(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateBuffer=function(device:TVkDevice;const pCreateInfo:PVkBufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pBuffer:PVkBuffer):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyBuffer=procedure(device:TVkDevice;buffer:TVkBuffer;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateBufferView=function(device:TVkDevice;const pCreateInfo:PVkBufferViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkBufferView):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyBufferView=procedure(device:TVkDevice;bufferView:TVkBufferView;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateImage=function(device:TVkDevice;const pCreateInfo:PVkImageCreateInfo;const pAllocator:PVkAllocationCallbacks;pImage:PVkImage):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyImage=procedure(device:TVkDevice;image:TVkImage;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageSubresourceLayout=procedure(device:TVkDevice;image:TVkImage;const pSubresource:PVkImageSubresource;pLayout:PVkSubresourceLayout); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateImageView=function(device:TVkDevice;const pCreateInfo:PVkImageViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkImageView):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyImageView=procedure(device:TVkDevice;imageView:TVkImageView;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateShaderModule=function(device:TVkDevice;const pCreateInfo:PVkShaderModuleCreateInfo;const pAllocator:PVkAllocationCallbacks;pShaderModule:PVkShaderModule):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyShaderModule=procedure(device:TVkDevice;shaderModule:TVkShaderModule;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreatePipelineCache=function(device:TVkDevice;const pCreateInfo:PVkPipelineCacheCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineCache:PVkPipelineCache):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyPipelineCache=procedure(device:TVkDevice;pipelineCache:TVkPipelineCache;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPipelineCacheData=function(device:TVkDevice;pipelineCache:TVkPipelineCache;pDataSize:PVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkMergePipelineCaches=function(device:TVkDevice;dstCache:TVkPipelineCache;srcCacheCount:TVkUInt32;const pSrcCaches:PVkPipelineCache):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateGraphicsPipelines=function(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkGraphicsPipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateComputePipelines=function(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkComputePipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI=function(device:TVkDevice;renderpass:TVkRenderPass;pMaxWorkgroupSize:PVkExtent2D):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyPipeline=procedure(device:TVkDevice;pipeline:TVkPipeline;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreatePipelineLayout=function(device:TVkDevice;const pCreateInfo:PVkPipelineLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineLayout:PVkPipelineLayout):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyPipelineLayout=procedure(device:TVkDevice;pipelineLayout:TVkPipelineLayout;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSampler=function(device:TVkDevice;const pCreateInfo:PVkSamplerCreateInfo;const pAllocator:PVkAllocationCallbacks;pSampler:PVkSampler):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySampler=procedure(device:TVkDevice;sampler:TVkSampler;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDescriptorSetLayout=function(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pSetLayout:PVkDescriptorSetLayout):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDescriptorSetLayout=procedure(device:TVkDevice;descriptorSetLayout:TVkDescriptorSetLayout;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDescriptorPool=function(device:TVkDevice;const pCreateInfo:PVkDescriptorPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorPool:PVkDescriptorPool):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDescriptorPool=procedure(device:TVkDevice;descriptorPool:TVkDescriptorPool;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetDescriptorPool=function(device:TVkDevice;descriptorPool:TVkDescriptorPool;flags:TVkDescriptorPoolResetFlags):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAllocateDescriptorSets=function(device:TVkDevice;const pAllocateInfo:PVkDescriptorSetAllocateInfo;pDescriptorSets:PVkDescriptorSet):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkFreeDescriptorSets=function(device:TVkDevice;descriptorPool:TVkDescriptorPool;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkUpdateDescriptorSets=procedure(device:TVkDevice;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet;descriptorCopyCount:TVkUInt32;const pDescriptorCopies:PVkCopyDescriptorSet); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateFramebuffer=function(device:TVkDevice;const pCreateInfo:PVkFramebufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pFramebuffer:PVkFramebuffer):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyFramebuffer=procedure(device:TVkDevice;framebuffer:TVkFramebuffer;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateRenderPass=function(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyRenderPass=procedure(device:TVkDevice;renderPass:TVkRenderPass;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRenderAreaGranularity=procedure(device:TVkDevice;renderPass:TVkRenderPass;pGranularity:PVkExtent2D); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateCommandPool=function(device:TVkDevice;const pCreateInfo:PVkCommandPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pCommandPool:PVkCommandPool):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyCommandPool=procedure(device:TVkDevice;commandPool:TVkCommandPool;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetCommandPool=function(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolResetFlags):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAllocateCommandBuffers=function(device:TVkDevice;const pAllocateInfo:PVkCommandBufferAllocateInfo;pCommandBuffers:PVkCommandBuffer):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkFreeCommandBuffers=procedure(device:TVkDevice;commandPool:TVkCommandPool;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBeginCommandBuffer=function(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkCommandBufferBeginInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEndCommandBuffer=function(commandBuffer:TVkCommandBuffer):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkResetCommandBuffer=function(commandBuffer:TVkCommandBuffer;flags:TVkCommandBufferResetFlags):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindPipeline=procedure(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetViewport=procedure(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewports:PVkViewport); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetScissor=procedure(commandBuffer:TVkCommandBuffer;firstScissor:TVkUInt32;scissorCount:TVkUInt32;const pScissors:PVkRect2D); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetLineWidth=procedure(commandBuffer:TVkCommandBuffer;lineWidth:TVkFloat); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthBias=procedure(commandBuffer:TVkCommandBuffer;depthBiasConstantFactor:TVkFloat;depthBiasClamp:TVkFloat;depthBiasSlopeFactor:TVkFloat); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetBlendConstants=procedure(commandBuffer:TVkCommandBuffer;const blendConstants:TVkFloat); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthBounds=procedure(commandBuffer:TVkCommandBuffer;minDepthBounds:TVkFloat;maxDepthBounds:TVkFloat); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetStencilCompareMask=procedure(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;compareMask:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetStencilWriteMask=procedure(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;writeMask:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetStencilReference=procedure(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;reference:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindDescriptorSets=procedure(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;firstSet:TVkUInt32;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet;dynamicOffsetCount:TVkUInt32;const pDynamicOffsets:PVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindIndexBuffer=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;indexType:TVkIndexType); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindVertexBuffers=procedure(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDraw=procedure(commandBuffer:TVkCommandBuffer;vertexCount:TVkUInt32;instanceCount:TVkUInt32;firstVertex:TVkUInt32;firstInstance:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndexed=procedure(commandBuffer:TVkCommandBuffer;indexCount:TVkUInt32;instanceCount:TVkUInt32;firstIndex:TVkUInt32;vertexOffset:TVkInt32;firstInstance:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawMultiEXT=procedure(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pVertexInfo:PVkMultiDrawInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawMultiIndexedEXT=procedure(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pIndexInfo:PVkMultiDrawIndexedInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32;const pVertexOffset:PVkInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndirect=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndexedIndirect=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDispatch=procedure(commandBuffer:TVkCommandBuffer;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDispatchIndirect=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSubpassShadingHUAWEI=procedure(commandBuffer:TVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyBuffer=procedure(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferCopy); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyImage=procedure(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageCopy); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBlitImage=procedure(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageBlit;filter:TVkFilter); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyBufferToImage=procedure(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyImageToBuffer=procedure(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdUpdateBuffer=procedure(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;dataSize:TVkDeviceSize;const pData:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdFillBuffer=procedure(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;size:TVkDeviceSize;data:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdClearColorImage=procedure(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pColor:PVkClearColorValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdClearDepthStencilImage=procedure(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pDepthStencil:PVkClearDepthStencilValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdClearAttachments=procedure(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pAttachments:PVkClearAttachment;rectCount:TVkUInt32;const pRects:PVkClearRect); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdResolveImage=procedure(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageResolve); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetEvent=procedure(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdResetEvent=procedure(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWaitEvents=procedure(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPipelineBarrier=procedure(commandBuffer:TVkCommandBuffer;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;dependencyFlags:TVkDependencyFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginQuery=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndQuery=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginConditionalRenderingEXT=procedure(commandBuffer:TVkCommandBuffer;const pConditionalRenderingBegin:PVkConditionalRenderingBeginInfoEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndConditionalRenderingEXT=procedure(commandBuffer:TVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdResetQueryPool=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteTimestamp=procedure(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;queryPool:TVkQueryPool;query:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyQueryPoolResults=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;stride:TVkDeviceSize;flags:TVkQueryResultFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPushConstants=procedure(commandBuffer:TVkCommandBuffer;layout:TVkPipelineLayout;stageFlags:TVkShaderStageFlags;offset:TVkUInt32;size:TVkUInt32;const pValues:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginRenderPass=procedure(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;contents:TVkSubpassContents); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdNextSubpass=procedure(commandBuffer:TVkCommandBuffer;contents:TVkSubpassContents); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndRenderPass=procedure(commandBuffer:TVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdExecuteCommands=procedure(commandBuffer:TVkCommandBuffer;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Android}
TvkCreateAndroidSurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkAndroidSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetPhysicalDeviceDisplayPropertiesKHR=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceDisplayPlanePropertiesKHR=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlanePropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDisplayPlaneSupportedDisplaysKHR=function(physicalDevice:TVkPhysicalDevice;planeIndex:TVkUInt32;pDisplayCount:PVkUInt32;pDisplays:PVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDisplayModePropertiesKHR=function(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModePropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDisplayModeKHR=function(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;const pCreateInfo:PVkDisplayModeCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pMode:PVkDisplayModeKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDisplayPlaneCapabilitiesKHR=function(physicalDevice:TVkPhysicalDevice;mode:TVkDisplayModeKHR;planeIndex:TVkUInt32;pCapabilities:PVkDisplayPlaneCapabilitiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDisplayPlaneSurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkDisplaySurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSharedSwapchainsKHR=function(device:TVkDevice;swapchainCount:TVkUInt32;const pCreateInfos:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchains:PVkSwapchainKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySurfaceKHR=procedure(instance:TVkInstance;surface:TVkSurfaceKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceSupportKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;surface:TVkSurfaceKHR;pSupported:PVkBool32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceCapabilitiesKHR=function(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilitiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceFormatsKHR=function(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormatKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfacePresentModesKHR=function(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSwapchainKHR=function(device:TVkDevice;const pCreateInfo:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchain:PVkSwapchainKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySwapchainKHR=procedure(device:TVkDevice;swapchain:TVkSwapchainKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSwapchainImagesKHR=function(device:TVkDevice;swapchain:TVkSwapchainKHR;pSwapchainImageCount:PVkUInt32;pSwapchainImages:PVkImage):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquireNextImageKHR=function(device:TVkDevice;swapchain:TVkSwapchainKHR;timeout:TVkUInt64;semaphore:TVkSemaphore;fence:TVkFence;pImageIndex:PVkUInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueuePresentKHR=function(queue:TVkQueue;const pPresentInfo:PVkPresentInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateViSurfaceNN=function(instance:TVkInstance;const pCreateInfo:PVkViSurfaceCreateInfoNN;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Wayland}
TvkCreateWaylandSurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkWaylandSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Wayland}
TvkGetPhysicalDeviceWaylandPresentationSupportKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;display:PVkWaylandDisplay):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Windows}
TvkCreateWin32SurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkWin32SurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Windows}
TvkGetPhysicalDeviceWin32PresentationSupportKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef XLIB}
TvkCreateXlibSurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkXlibSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef XLIB}
TvkGetPhysicalDeviceXlibPresentationSupportKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dpy:PVkXLIBDisplay;visualID:TVkXLIBVisualID):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef XCB}
TvkCreateXcbSurfaceKHR=function(instance:TVkInstance;const pCreateInfo:PVkXcbSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef XCB}
TvkGetPhysicalDeviceXcbPresentationSupportKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;connection:PVkXCBConnection;visual_id:TVkXCBVisualID):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef DirectFB}
TvkCreateDirectFBSurfaceEXT=function(instance:TVkInstance;const pCreateInfo:PVkDirectFBSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef DirectFB}
TvkGetPhysicalDeviceDirectFBPresentationSupportEXT=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dfb:PVkDirectFBIDirectFB):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Fuchsia}
TvkCreateImagePipeSurfaceFUCHSIA=function(instance:TVkInstance;const pCreateInfo:PVkImagePipeSurfaceCreateInfoFUCHSIA;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCreateStreamDescriptorSurfaceGGP=function(instance:TVkInstance;const pCreateInfo:PVkStreamDescriptorSurfaceCreateInfoGGP;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef QNX}
TvkCreateScreenSurfaceQNX=function(instance:TVkInstance;const pCreateInfo:PVkScreenSurfaceCreateInfoQNX;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef QNX}
TvkGetPhysicalDeviceScreenPresentationSupportQNX=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;window:PVkQNXScreenWindow):TVkBool32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCreateDebugReportCallbackEXT=function(instance:TVkInstance;const pCreateInfo:PVkDebugReportCallbackCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pCallback:PVkDebugReportCallbackEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDebugReportCallbackEXT=procedure(instance:TVkInstance;callback:TVkDebugReportCallbackEXT;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDebugReportMessageEXT=procedure(instance:TVkInstance;flags:TVkDebugReportFlagsEXT;objectType:TVkDebugReportObjectTypeEXT;object_:TVkUInt64;location:TVkSize;messageCode:TVkInt32;const pLayerPrefix:PVkChar;const pMessage:PVkChar); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDebugMarkerSetObjectNameEXT=function(device:TVkDevice;const pNameInfo:PVkDebugMarkerObjectNameInfoEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDebugMarkerSetObjectTagEXT=function(device:TVkDevice;const pTagInfo:PVkDebugMarkerObjectTagInfoEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDebugMarkerBeginEXT=procedure(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDebugMarkerEndEXT=procedure(commandBuffer:TVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDebugMarkerInsertEXT=procedure(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalImageFormatPropertiesNV=function(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;externalHandleType:TVkExternalMemoryHandleTypeFlagsNV;pExternalImageFormatProperties:PVkExternalImageFormatPropertiesNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Windows}
TvkGetMemoryWin32HandleNV=function(device:TVkDevice;memory:TVkDeviceMemory;handleType:TVkExternalMemoryHandleTypeFlagsNV;pHandle:PHANDLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCmdExecuteGeneratedCommandsNV=procedure(commandBuffer:TVkCommandBuffer;isPreprocessed:TVkBool32;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPreprocessGeneratedCommandsNV=procedure(commandBuffer:TVkCommandBuffer;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindPipelineShaderGroupNV=procedure(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline;groupIndex:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetGeneratedCommandsMemoryRequirementsNV=procedure(device:TVkDevice;const pInfo:PVkGeneratedCommandsMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateIndirectCommandsLayoutNV=function(device:TVkDevice;const pCreateInfo:PVkIndirectCommandsLayoutCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pIndirectCommandsLayout:PVkIndirectCommandsLayoutNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyIndirectCommandsLayoutNV=procedure(device:TVkDevice;indirectCommandsLayout:TVkIndirectCommandsLayoutNV;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFeatures2=procedure(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFeatures2KHR=procedure(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceProperties2=procedure(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceProperties2KHR=procedure(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFormatProperties2=procedure(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFormatProperties2KHR=procedure(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceImageFormatProperties2=function(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceImageFormatProperties2KHR=function(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceQueueFamilyProperties2=procedure(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceQueueFamilyProperties2KHR=procedure(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceMemoryProperties2=procedure(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceMemoryProperties2KHR=procedure(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSparseImageFormatProperties2=procedure(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSparseImageFormatProperties2KHR=procedure(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPushDescriptorSetKHR=procedure(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;set_:TVkUInt32;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkTrimCommandPool=procedure(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkTrimCommandPoolKHR=procedure(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalBufferProperties=procedure(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalBufferPropertiesKHR=procedure(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Windows}
TvkGetMemoryWin32HandleKHR=function(device:TVkDevice;const pGetWin32HandleInfo:PVkMemoryGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Windows}
TvkGetMemoryWin32HandlePropertiesKHR=function(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;handle:THANDLE;pMemoryWin32HandleProperties:PVkMemoryWin32HandlePropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetMemoryFdKHR=function(device:TVkDevice;const pGetFdInfo:PVkMemoryGetFdInfoKHR;pFd:PVkInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetMemoryFdPropertiesKHR=function(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;fd:TVkInt32;pMemoryFdProperties:PVkMemoryFdPropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Fuchsia}
TvkGetMemoryZirconHandleFUCHSIA=function(device:TVkDevice;const pGetZirconHandleInfo:PVkMemoryGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Fuchsia}
TvkGetMemoryZirconHandlePropertiesFUCHSIA=function(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;zirconHandle:TVkFuchsiaZXHandle;pMemoryZirconHandleProperties:PVkMemoryZirconHandlePropertiesFUCHSIA):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetMemoryRemoteAddressNV=function(device:TVkDevice;const pMemoryGetRemoteAddressInfo:PVkMemoryGetRemoteAddressInfoNV;pAddress:PVkRemoteAddressNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalSemaphoreProperties=procedure(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalSemaphorePropertiesKHR=procedure(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Windows}
TvkGetSemaphoreWin32HandleKHR=function(device:TVkDevice;const pGetWin32HandleInfo:PVkSemaphoreGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Windows}
TvkImportSemaphoreWin32HandleKHR=function(device:TVkDevice;const pImportSemaphoreWin32HandleInfo:PVkImportSemaphoreWin32HandleInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetSemaphoreFdKHR=function(device:TVkDevice;const pGetFdInfo:PVkSemaphoreGetFdInfoKHR;pFd:PVkInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkImportSemaphoreFdKHR=function(device:TVkDevice;const pImportSemaphoreFdInfo:PVkImportSemaphoreFdInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Fuchsia}
TvkGetSemaphoreZirconHandleFUCHSIA=function(device:TVkDevice;const pGetZirconHandleInfo:PVkSemaphoreGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Fuchsia}
TvkImportSemaphoreZirconHandleFUCHSIA=function(device:TVkDevice;const pImportSemaphoreZirconHandleInfo:PVkImportSemaphoreZirconHandleInfoFUCHSIA):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetPhysicalDeviceExternalFenceProperties=procedure(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceExternalFencePropertiesKHR=procedure(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Windows}
TvkGetFenceWin32HandleKHR=function(device:TVkDevice;const pGetWin32HandleInfo:PVkFenceGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Windows}
TvkImportFenceWin32HandleKHR=function(device:TVkDevice;const pImportFenceWin32HandleInfo:PVkImportFenceWin32HandleInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkGetFenceFdKHR=function(device:TVkDevice;const pGetFdInfo:PVkFenceGetFdInfoKHR;pFd:PVkInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkImportFenceFdKHR=function(device:TVkDevice;const pImportFenceFdInfo:PVkImportFenceFdInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkReleaseDisplayEXT=function(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef XLIB}
TvkAcquireXlibDisplayEXT=function(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;display:TVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef RandR}
TvkGetRandROutputDisplayEXT=function(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;rrOutput:TRROutput;pDisplay:PVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkAcquireWinrtDisplayNV=function(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetWinrtDisplayNV=function(physicalDevice:TVkPhysicalDevice;deviceRelativeId:TVkUInt32;pDisplay:PVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDisplayPowerControlEXT=function(device:TVkDevice;display:TVkDisplayKHR;const pDisplayPowerInfo:PVkDisplayPowerInfoEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkRegisterDeviceEventEXT=function(device:TVkDevice;const pDeviceEventInfo:PVkDeviceEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkRegisterDisplayEventEXT=function(device:TVkDevice;display:TVkDisplayKHR;const pDisplayEventInfo:PVkDisplayEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSwapchainCounterEXT=function(device:TVkDevice;swapchain:TVkSwapchainKHR;counter:TVkSurfaceCounterFlagBitsEXT;pCounterValue:PVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceCapabilities2EXT=function(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilities2EXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumeratePhysicalDeviceGroups=function(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumeratePhysicalDeviceGroupsKHR=function(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceGroupPeerMemoryFeatures=procedure(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceGroupPeerMemoryFeaturesKHR=procedure(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindBufferMemory2=function(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindBufferMemory2KHR=function(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindImageMemory2=function(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindImageMemory2KHR=function(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDeviceMask=procedure(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDeviceMaskKHR=procedure(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceGroupPresentCapabilitiesKHR=function(device:TVkDevice;pDeviceGroupPresentCapabilities:PVkDeviceGroupPresentCapabilitiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceGroupSurfacePresentModesKHR=function(device:TVkDevice;surface:TVkSurfaceKHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquireNextImage2KHR=function(device:TVkDevice;const pAcquireInfo:PVkAcquireNextImageInfoKHR;pImageIndex:PVkUInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDispatchBase=procedure(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDispatchBaseKHR=procedure(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDevicePresentRectanglesKHR=function(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pRectCount:PVkUInt32;pRects:PVkRect2D):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDescriptorUpdateTemplate=function(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDescriptorUpdateTemplateKHR=function(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDescriptorUpdateTemplate=procedure(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDescriptorUpdateTemplateKHR=procedure(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkUpdateDescriptorSetWithTemplate=procedure(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkUpdateDescriptorSetWithTemplateKHR=procedure(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPushDescriptorSetWithTemplateKHR=procedure(commandBuffer:TVkCommandBuffer;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;layout:TVkPipelineLayout;set_:TVkUInt32;const pData:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetHdrMetadataEXT=procedure(device:TVkDevice;swapchainCount:TVkUInt32;const pSwapchains:PVkSwapchainKHR;const pMetadata:PVkHdrMetadataEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSwapchainStatusKHR=function(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRefreshCycleDurationGOOGLE=function(device:TVkDevice;swapchain:TVkSwapchainKHR;pDisplayTimingProperties:PVkRefreshCycleDurationGOOGLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPastPresentationTimingGOOGLE=function(device:TVkDevice;swapchain:TVkSwapchainKHR;pPresentationTimingCount:PVkUInt32;pPresentationTimings:PVkPastPresentationTimingGOOGLE):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef MoltenVK_IOS}
TvkCreateIOSSurfaceMVK=function(instance:TVkInstance;const pCreateInfo:PVkIOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef MoltenVK_MacOS}
TvkCreateMacOSSurfaceMVK=function(instance:TVkInstance;const pCreateInfo:PVkMacOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCreateMetalSurfaceEXT=function(instance:TVkInstance;const pCreateInfo:PVkMetalSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetViewportWScalingNV=procedure(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewportWScalings:PVkViewportWScalingNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDiscardRectangleEXT=procedure(commandBuffer:TVkCommandBuffer;firstDiscardRectangle:TVkUInt32;discardRectangleCount:TVkUInt32;const pDiscardRectangles:PVkRect2D); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetSampleLocationsEXT=procedure(commandBuffer:TVkCommandBuffer;const pSampleLocationsInfo:PVkSampleLocationsInfoEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceMultisamplePropertiesEXT=procedure(physicalDevice:TVkPhysicalDevice;samples:TVkSampleCountFlagBits;pMultisampleProperties:PVkMultisamplePropertiesEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceCapabilities2KHR=function(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceCapabilities:PVkSurfaceCapabilities2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfaceFormats2KHR=function(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormat2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceDisplayProperties2KHR=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayProperties2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceDisplayPlaneProperties2KHR=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlaneProperties2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDisplayModeProperties2KHR=function(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModeProperties2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDisplayPlaneCapabilities2KHR=function(physicalDevice:TVkPhysicalDevice;const pDisplayPlaneInfo:PVkDisplayPlaneInfo2KHR;pCapabilities:PVkDisplayPlaneCapabilities2KHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferMemoryRequirements2=procedure(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferMemoryRequirements2KHR=procedure(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageMemoryRequirements2=procedure(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageMemoryRequirements2KHR=procedure(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageSparseMemoryRequirements2=procedure(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageSparseMemoryRequirements2KHR=procedure(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSamplerYcbcrConversion=function(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateSamplerYcbcrConversionKHR=function(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySamplerYcbcrConversion=procedure(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroySamplerYcbcrConversionKHR=procedure(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceQueue2=procedure(device:TVkDevice;const pQueueInfo:PVkDeviceQueueInfo2;pQueue:PVkQueue); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateValidationCacheEXT=function(device:TVkDevice;const pCreateInfo:PVkValidationCacheCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pValidationCache:PVkValidationCacheEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyValidationCacheEXT=procedure(device:TVkDevice;validationCache:TVkValidationCacheEXT;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetValidationCacheDataEXT=function(device:TVkDevice;validationCache:TVkValidationCacheEXT;pDataSize:PVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkMergeValidationCachesEXT=function(device:TVkDevice;dstCache:TVkValidationCacheEXT;srcCacheCount:TVkUInt32;const pSrcCaches:PVkValidationCacheEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDescriptorSetLayoutSupport=procedure(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDescriptorSetLayoutSupportKHR=procedure(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSwapchainGrallocUsageANDROID=function(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;grallocUsage:PVkInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Android}
TvkGetSwapchainGrallocUsage2ANDROID=function(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;swapchainImageUsage:TVkSwapchainImageUsageFlagsANDROID;grallocConsumerUsage:PVkUInt64;grallocProducerUsage:PVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkAcquireImageANDROID=function(device:TVkDevice;image:TVkImage;nativeFenceFd:TVkInt32;semaphore:TVkSemaphore;fence:TVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueSignalReleaseImageANDROID=function(queue:TVkQueue;waitSemaphoreCount:TVkUInt32;const pWaitSemaphores:PVkSemaphore;image:TVkImage;pNativeFenceFd:PVkInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetShaderInfoAMD=function(device:TVkDevice;pipeline:TVkPipeline;shaderStage:TVkShaderStageFlagBits;infoType:TVkShaderInfoTypeAMD;pInfoSize:PVkSize;pInfo:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetLocalDimmingAMD=procedure(device:TVkDevice;swapChain:TVkSwapchainKHR;localDimmingEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceCalibrateableTimeDomainsEXT=function(physicalDevice:TVkPhysicalDevice;pTimeDomainCount:PVkUInt32;pTimeDomains:PVkTimeDomainEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetCalibratedTimestampsEXT=function(device:TVkDevice;timestampCount:TVkUInt32;const pTimestampInfos:PVkCalibratedTimestampInfoEXT;pTimestamps:PVkUInt64;pMaxDeviation:PVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetDebugUtilsObjectNameEXT=function(device:TVkDevice;const pNameInfo:PVkDebugUtilsObjectNameInfoEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetDebugUtilsObjectTagEXT=function(device:TVkDevice;const pTagInfo:PVkDebugUtilsObjectTagInfoEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueBeginDebugUtilsLabelEXT=procedure(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueEndDebugUtilsLabelEXT=procedure(queue:TVkQueue); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueInsertDebugUtilsLabelEXT=procedure(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginDebugUtilsLabelEXT=procedure(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndDebugUtilsLabelEXT=procedure(commandBuffer:TVkCommandBuffer); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdInsertDebugUtilsLabelEXT=procedure(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDebugUtilsMessengerEXT=function(instance:TVkInstance;const pCreateInfo:PVkDebugUtilsMessengerCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pMessenger:PVkDebugUtilsMessengerEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDebugUtilsMessengerEXT=procedure(instance:TVkInstance;messenger:TVkDebugUtilsMessengerEXT;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSubmitDebugUtilsMessageEXT=procedure(instance:TVkInstance;messageSeverity:TVkDebugUtilsMessageSeverityFlagBitsEXT;messageTypes:TVkDebugUtilsMessageTypeFlagsEXT;const pCallbackData:PVkDebugUtilsMessengerCallbackDataEXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetMemoryHostPointerPropertiesEXT=function(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;const pHostPointer:PVkVoid;pMemoryHostPointerProperties:PVkMemoryHostPointerPropertiesEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteBufferMarkerAMD=procedure(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateRenderPass2=function(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateRenderPass2KHR=function(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginRenderPass2=procedure(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginRenderPass2KHR=procedure(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdNextSubpass2=procedure(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdNextSubpass2KHR=procedure(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndRenderPass2=procedure(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndRenderPass2KHR=procedure(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSemaphoreCounterValue=function(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetSemaphoreCounterValueKHR=function(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkWaitSemaphores=function(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkWaitSemaphoresKHR=function(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSignalSemaphore=function(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSignalSemaphoreKHR=function(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef Android}
TvkGetAndroidHardwareBufferPropertiesANDROID=function(device:TVkDevice;const buffer:PVkAndroidAHardwareBuffer;pProperties:PVkAndroidHardwareBufferPropertiesANDROID):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef Android}
TvkGetMemoryAndroidHardwareBufferANDROID=function(device:TVkDevice;const pInfo:PVkMemoryGetAndroidHardwareBufferInfoANDROID;pBuffer:PPVkAndroidAHardwareBuffer):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCmdDrawIndirectCount=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndirectCountKHR=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndirectCountAMD=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndexedIndirectCount=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndexedIndirectCountKHR=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndexedIndirectCountAMD=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetCheckpointNV=procedure(commandBuffer:TVkCommandBuffer;const pCheckpointMarker:PVkVoid); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetQueueCheckpointDataNV=procedure(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointDataNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindTransformFeedbackBuffersEXT=procedure(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginTransformFeedbackEXT=procedure(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndTransformFeedbackEXT=procedure(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBeginQueryIndexedEXT=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags;index:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdEndQueryIndexedEXT=procedure(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;index:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawIndirectByteCountEXT=procedure(commandBuffer:TVkCommandBuffer;instanceCount:TVkUInt32;firstInstance:TVkUInt32;counterBuffer:TVkBuffer;counterBufferOffset:TVkDeviceSize;counterOffset:TVkUInt32;vertexStride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetExclusiveScissorNV=procedure(commandBuffer:TVkCommandBuffer;firstExclusiveScissor:TVkUInt32;exclusiveScissorCount:TVkUInt32;const pExclusiveScissors:PVkRect2D); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindShadingRateImageNV=procedure(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetViewportShadingRatePaletteNV=procedure(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pShadingRatePalettes:PVkShadingRatePaletteNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetCoarseSampleOrderNV=procedure(commandBuffer:TVkCommandBuffer;sampleOrderType:TVkCoarseSampleOrderTypeNV;customSampleOrderCount:TVkUInt32;const pCustomSampleOrders:PVkCoarseSampleOrderCustomNV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawMeshTasksNV=procedure(commandBuffer:TVkCommandBuffer;taskCount:TVkUInt32;firstTask:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawMeshTasksIndirectNV=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdDrawMeshTasksIndirectCountNV=procedure(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCompileDeferredNV=function(device:TVkDevice;pipeline:TVkPipeline;shader:TVkUInt32):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateAccelerationStructureNV=function(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindInvocationMaskHUAWEI=procedure(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyAccelerationStructureKHR=procedure(device:TVkDevice;accelerationStructure:TVkAccelerationStructureKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyAccelerationStructureNV=procedure(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetAccelerationStructureMemoryRequirementsNV=procedure(device:TVkDevice;const pInfo:PVkAccelerationStructureMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBindAccelerationStructureMemoryNV=function(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindAccelerationStructureMemoryInfoNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyAccelerationStructureNV=procedure(commandBuffer:TVkCommandBuffer;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;mode:TVkCopyAccelerationStructureModeKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyAccelerationStructureKHR=procedure(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCopyAccelerationStructureKHR=function(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyAccelerationStructureToMemoryKHR=procedure(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCopyAccelerationStructureToMemoryKHR=function(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyMemoryToAccelerationStructureKHR=procedure(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCopyMemoryToAccelerationStructureKHR=function(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteAccelerationStructuresPropertiesKHR=procedure(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteAccelerationStructuresPropertiesNV=procedure(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureNV;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBuildAccelerationStructureNV=procedure(commandBuffer:TVkCommandBuffer;const pInfo:PVkAccelerationStructureInfoNV;instanceData:TVkBuffer;instanceOffset:TVkDeviceSize;update:TVkBool32;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;scratch:TVkBuffer;scratchOffset:TVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkWriteAccelerationStructuresPropertiesKHR=function(device:TVkDevice;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;dataSize:TVkSize;pData:PVkVoid;stride:TVkSize):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdTraceRaysKHR=procedure(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdTraceRaysNV=procedure(commandBuffer:TVkCommandBuffer;raygenShaderBindingTableBuffer:TVkBuffer;raygenShaderBindingOffset:TVkDeviceSize;missShaderBindingTableBuffer:TVkBuffer;missShaderBindingOffset:TVkDeviceSize;missShaderBindingStride:TVkDeviceSize;hitShaderBindingTableBuffer:TVkBuffer;hitShaderBindingOffset:TVkDeviceSize;hitShaderBindingStride:TVkDeviceSize;callableShaderBindingTableBuffer:TVkBuffer;callableShaderBindingOffset:TVkDeviceSize;callableShaderBindingStride:TVkDeviceSize;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRayTracingShaderGroupHandlesKHR=function(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRayTracingShaderGroupHandlesNV=function(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRayTracingCaptureReplayShaderGroupHandlesKHR=function(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetAccelerationStructureHandleNV=function(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;dataSize:TVkSize;pData:PVkVoid):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateRayTracingPipelinesNV=function(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateRayTracingPipelinesKHR=function(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceCooperativeMatrixPropertiesNV=function(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkCooperativeMatrixPropertiesNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdTraceRaysIndirectKHR=procedure(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;indirectDeviceAddress:TVkDeviceAddress); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceAccelerationStructureCompatibilityKHR=procedure(device:TVkDevice;const pVersionInfo:PVkAccelerationStructureVersionInfoKHR;pCompatibility:PVkAccelerationStructureCompatibilityKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetRayTracingShaderGroupStackSizeKHR=function(device:TVkDevice;pipeline:TVkPipeline;group:TVkUInt32;groupShader:TVkShaderGroupShaderKHR):TVkDeviceSize; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetRayTracingPipelineStackSizeKHR=procedure(commandBuffer:TVkCommandBuffer;pipelineStackSize:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageViewHandleNVX=function(device:TVkDevice;const pInfo:PVkImageViewHandleInfoNVX):TVkUInt32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageViewAddressNVX=function(device:TVkDevice;imageView:TVkImageView;pProperties:PVkImageViewAddressPropertiesNVX):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSurfacePresentModes2EXT=function(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceGroupSurfacePresentModes2EXT=function(device:TVkDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquireFullScreenExclusiveModeEXT=function(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkReleaseFullScreenExclusiveModeEXT=function(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR=function(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;pCounterCount:PVkUInt32;pCounters:PVkPerformanceCounterKHR;pCounterDescriptions:PVkPerformanceCounterDescriptionKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR=procedure(physicalDevice:TVkPhysicalDevice;const pPerformanceQueryCreateInfo:PVkQueryPoolPerformanceCreateInfoKHR;pNumPasses:PVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquireProfilingLockKHR=function(device:TVkDevice;const pInfo:PVkAcquireProfilingLockInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkReleaseProfilingLockKHR=procedure(device:TVkDevice); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetImageDrmFormatModifierPropertiesEXT=function(device:TVkDevice;image:TVkImage;pProperties:PVkImageDrmFormatModifierPropertiesEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferOpaqueCaptureAddress=function(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferOpaqueCaptureAddressKHR=function(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferDeviceAddress=function(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferDeviceAddressKHR=function(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetBufferDeviceAddressEXT=function(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateHeadlessSurfaceEXT=function(instance:TVkInstance;const pCreateInfo:PVkHeadlessSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV=function(physicalDevice:TVkPhysicalDevice;pCombinationCount:PVkUInt32;pCombinations:PVkFramebufferMixedSamplesCombinationNV):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkInitializePerformanceApiINTEL=function(device:TVkDevice;const pInitializeInfo:PVkInitializePerformanceApiInfoINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkUninitializePerformanceApiINTEL=procedure(device:TVkDevice); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPerformanceMarkerINTEL=function(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceMarkerInfoINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPerformanceStreamMarkerINTEL=function(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceStreamMarkerInfoINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPerformanceOverrideINTEL=function(commandBuffer:TVkCommandBuffer;const pOverrideInfo:PVkPerformanceOverrideInfoINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquirePerformanceConfigurationINTEL=function(device:TVkDevice;const pAcquireInfo:PVkPerformanceConfigurationAcquireInfoINTEL;pConfiguration:PVkPerformanceConfigurationINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkReleasePerformanceConfigurationINTEL=function(device:TVkDevice;configuration:TVkPerformanceConfigurationINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueSetPerformanceConfigurationINTEL=function(queue:TVkQueue;configuration:TVkPerformanceConfigurationINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPerformanceParameterINTEL=function(device:TVkDevice;parameter:TVkPerformanceParameterTypeINTEL;pValue:PVkPerformanceValueINTEL):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceMemoryOpaqueCaptureAddress=function(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeviceMemoryOpaqueCaptureAddressKHR=function(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPipelineExecutablePropertiesKHR=function(device:TVkDevice;const pPipelineInfo:PVkPipelineInfoKHR;pExecutableCount:PVkUInt32;pProperties:PVkPipelineExecutablePropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPipelineExecutableStatisticsKHR=function(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pStatisticCount:PVkUInt32;pStatistics:PVkPipelineExecutableStatisticKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPipelineExecutableInternalRepresentationsKHR=function(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pInternalRepresentationCount:PVkUInt32;pInternalRepresentations:PVkPipelineExecutableInternalRepresentationKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetLineStippleEXT=procedure(commandBuffer:TVkCommandBuffer;lineStippleFactor:TVkUInt32;lineStipplePattern:TVkUInt16); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceToolPropertiesEXT=function(physicalDevice:TVkPhysicalDevice;pToolCount:PVkUInt32;pToolProperties:PVkPhysicalDeviceToolPropertiesEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateAccelerationStructureKHR=function(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBuildAccelerationStructuresKHR=procedure(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBuildAccelerationStructuresIndirectKHR=procedure(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const pIndirectDeviceAddresses:PVkDeviceAddress;const pIndirectStrides:PVkUInt32;const ppMaxPrimitiveCounts:PPVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkBuildAccelerationStructuresKHR=function(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetAccelerationStructureDeviceAddressKHR=function(device:TVkDevice;const pInfo:PVkAccelerationStructureDeviceAddressInfoKHR):TVkDeviceAddress; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateDeferredOperationKHR=function(device:TVkDevice;const pAllocator:PVkAllocationCallbacks;pDeferredOperation:PVkDeferredOperationKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyDeferredOperationKHR=procedure(device:TVkDevice;operation:TVkDeferredOperationKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeferredOperationMaxConcurrencyKHR=function(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkUInt32; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDeferredOperationResultKHR=function(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDeferredOperationJoinKHR=function(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetCullModeEXT=procedure(commandBuffer:TVkCommandBuffer;cullMode:TVkCullModeFlags); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetFrontFaceEXT=procedure(commandBuffer:TVkCommandBuffer;frontFace:TVkFrontFace); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPrimitiveTopologyEXT=procedure(commandBuffer:TVkCommandBuffer;primitiveTopology:TVkPrimitiveTopology); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetViewportWithCountEXT=procedure(commandBuffer:TVkCommandBuffer;viewportCount:TVkUInt32;const pViewports:PVkViewport); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetScissorWithCountEXT=procedure(commandBuffer:TVkCommandBuffer;scissorCount:TVkUInt32;const pScissors:PVkRect2D); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBindVertexBuffers2EXT=procedure(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize;const pStrides:PVkDeviceSize); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthTestEnableEXT=procedure(commandBuffer:TVkCommandBuffer;depthTestEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthWriteEnableEXT=procedure(commandBuffer:TVkCommandBuffer;depthWriteEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthCompareOpEXT=procedure(commandBuffer:TVkCommandBuffer;depthCompareOp:TVkCompareOp); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthBoundsTestEnableEXT=procedure(commandBuffer:TVkCommandBuffer;depthBoundsTestEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetStencilTestEnableEXT=procedure(commandBuffer:TVkCommandBuffer;stencilTestEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetStencilOpEXT=procedure(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;failOp:TVkStencilOp;passOp:TVkStencilOp;depthFailOp:TVkStencilOp;compareOp:TVkCompareOp); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPatchControlPointsEXT=procedure(commandBuffer:TVkCommandBuffer;patchControlPoints:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetRasterizerDiscardEnableEXT=procedure(commandBuffer:TVkCommandBuffer;rasterizerDiscardEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetDepthBiasEnableEXT=procedure(commandBuffer:TVkCommandBuffer;depthBiasEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetLogicOpEXT=procedure(commandBuffer:TVkCommandBuffer;logicOp:TVkLogicOp); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetPrimitiveRestartEnableEXT=procedure(commandBuffer:TVkCommandBuffer;primitiveRestartEnable:TVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreatePrivateDataSlotEXT=function(device:TVkDevice;const pCreateInfo:PVkPrivateDataSlotCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pPrivateDataSlot:PVkPrivateDataSlotEXT):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyPrivateDataSlotEXT=procedure(device:TVkDevice;privateDataSlot:TVkPrivateDataSlotEXT;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkSetPrivateDataEXT=function(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;data:TVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPrivateDataEXT=procedure(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;pData:PVkUInt64); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyBuffer2KHR=procedure(commandBuffer:TVkCommandBuffer;const pCopyBufferInfo:PVkCopyBufferInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyImage2KHR=procedure(commandBuffer:TVkCommandBuffer;const pCopyImageInfo:PVkCopyImageInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdBlitImage2KHR=procedure(commandBuffer:TVkCommandBuffer;const pBlitImageInfo:PVkBlitImageInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyBufferToImage2KHR=procedure(commandBuffer:TVkCommandBuffer;const pCopyBufferToImageInfo:PVkCopyBufferToImageInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCopyImageToBuffer2KHR=procedure(commandBuffer:TVkCommandBuffer;const pCopyImageToBufferInfo:PVkCopyImageToBufferInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdResolveImage2KHR=procedure(commandBuffer:TVkCommandBuffer;const pResolveImageInfo:PVkResolveImageInfo2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetFragmentShadingRateKHR=procedure(commandBuffer:TVkCommandBuffer;const pFragmentSize:PVkExtent2D;const combinerOps:TVkFragmentShadingRateCombinerOpKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetPhysicalDeviceFragmentShadingRatesKHR=function(physicalDevice:TVkPhysicalDevice;pFragmentShadingRateCount:PVkUInt32;pFragmentShadingRates:PVkPhysicalDeviceFragmentShadingRateKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetFragmentShadingRateEnumNV=procedure(commandBuffer:TVkCommandBuffer;shadingRate:TVkFragmentShadingRateNV;const combinerOps:TVkFragmentShadingRateCombinerOpKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetAccelerationStructureBuildSizesKHR=procedure(device:TVkDevice;buildType:TVkAccelerationStructureBuildTypeKHR;const pBuildInfo:PVkAccelerationStructureBuildGeometryInfoKHR;const pMaxPrimitiveCounts:PVkUInt32;pSizeInfo:PVkAccelerationStructureBuildSizesInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetVertexInputEXT=procedure(commandBuffer:TVkCommandBuffer;vertexBindingDescriptionCount:TVkUInt32;const pVertexBindingDescriptions:PVkVertexInputBindingDescription2EXT;vertexAttributeDescriptionCount:TVkUInt32;const pVertexAttributeDescriptions:PVkVertexInputAttributeDescription2EXT); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetColorWriteEnableEXT=procedure(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pColorWriteEnables:PVkBool32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdSetEvent2KHR=procedure(commandBuffer:TVkCommandBuffer;event:TVkEvent;const pDependencyInfo:PVkDependencyInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdResetEvent2KHR=procedure(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags2KHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWaitEvents2KHR=procedure(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;const pDependencyInfos:PVkDependencyInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdPipelineBarrier2KHR=procedure(commandBuffer:TVkCommandBuffer;const pDependencyInfo:PVkDependencyInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkQueueSubmit2KHR=function(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo2KHR;fence:TVkFence):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteTimestamp2KHR=procedure(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;queryPool:TVkQueryPool;query:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdWriteBufferMarker2AMD=procedure(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetQueueCheckpointData2NV=procedure(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointData2NV); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$ifdef VkVideo}
TvkGetPhysicalDeviceVideoCapabilitiesKHR=function(physicalDevice:TVkPhysicalDevice;const pVideoProfile:PVkVideoProfileKHR;pCapabilities:PVkVideoCapabilitiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkGetPhysicalDeviceVideoFormatPropertiesKHR=function(physicalDevice:TVkPhysicalDevice;const pVideoFormatInfo:PVkPhysicalDeviceVideoFormatInfoKHR;pVideoFormatPropertyCount:PVkUInt32;pVideoFormatProperties:PVkVideoFormatPropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCreateVideoSessionKHR=function(device:TVkDevice;const pCreateInfo:PVkVideoSessionCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSession:PVkVideoSessionKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkDestroyVideoSessionKHR=procedure(device:TVkDevice;videoSession:TVkVideoSessionKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCreateVideoSessionParametersKHR=function(device:TVkDevice;const pCreateInfo:PVkVideoSessionParametersCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSessionParameters:PVkVideoSessionParametersKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkUpdateVideoSessionParametersKHR=function(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pUpdateInfo:PVkVideoSessionParametersUpdateInfoKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkDestroyVideoSessionParametersKHR=procedure(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkGetVideoSessionMemoryRequirementsKHR=function(device:TVkDevice;videoSession:TVkVideoSessionKHR;pVideoSessionMemoryRequirementsCount:PVkUInt32;pVideoSessionMemoryRequirements:PVkVideoGetMemoryPropertiesKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkBindVideoSessionMemoryKHR=function(device:TVkDevice;videoSession:TVkVideoSessionKHR;videoSessionBindMemoryCount:TVkUInt32;const pVideoSessionBindMemories:PVkVideoBindMemoryKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCmdDecodeVideoKHR=procedure(commandBuffer:TVkCommandBuffer;const pFrameInfo:PVkVideoDecodeInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCmdBeginVideoCodingKHR=procedure(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkVideoBeginCodingInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCmdControlVideoCodingKHR=procedure(commandBuffer:TVkCommandBuffer;const pCodingControlInfo:PVkVideoCodingControlInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCmdEndVideoCodingKHR=procedure(commandBuffer:TVkCommandBuffer;const pEndCodingInfo:PVkVideoEndCodingInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
{$ifdef VkVideo}
TvkCmdEncodeVideoKHR=procedure(commandBuffer:TVkCommandBuffer;const pEncodeInfo:PVkVideoEncodeInfoKHR); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
{$endif}
TvkCreateCuModuleNVX=function(device:TVkDevice;const pCreateInfo:PVkCuModuleCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pModule:PVkCuModuleNVX):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCreateCuFunctionNVX=function(device:TVkDevice;const pCreateInfo:PVkCuFunctionCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pFunction:PVkCuFunctionNVX):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyCuModuleNVX=procedure(device:TVkDevice;module:TVkCuModuleNVX;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkDestroyCuFunctionNVX=procedure(device:TVkDevice;function_:TVkCuFunctionNVX;const pAllocator:PVkAllocationCallbacks); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkCmdCuLaunchKernelNVX=procedure(commandBuffer:TVkCommandBuffer;const pLaunchInfo:PVkCuLaunchInfoNVX); {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkAcquireDrmDisplayEXT=function(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;display:TVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkGetDrmDisplayEXT=function(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;connectorId:TVkUInt32;display:PVkDisplayKHR):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
TvkWaitForPresentKHR=function(device:TVkDevice;swapchain:TVkSwapchainKHR;presentId:TVkUInt64;timeout:TVkUInt64):TVkResult; {$ifdef Windows}stdcall;{$else}{$ifdef Android}{$ifdef cpuarm}hardfloat;{$else}cdecl;{$endif}{$else}cdecl;{$endif}{$endif}
PPVulkanCommands=^PVulkanCommands;
PVulkanCommands=^TVulkanCommands;
TVulkanCommands=record
CreateInstance:TvkCreateInstance;
DestroyInstance:TvkDestroyInstance;
EnumeratePhysicalDevices:TvkEnumeratePhysicalDevices;
GetDeviceProcAddr:TvkGetDeviceProcAddr;
GetInstanceProcAddr:TvkGetInstanceProcAddr;
GetPhysicalDeviceProperties:TvkGetPhysicalDeviceProperties;
GetPhysicalDeviceQueueFamilyProperties:TvkGetPhysicalDeviceQueueFamilyProperties;
GetPhysicalDeviceMemoryProperties:TvkGetPhysicalDeviceMemoryProperties;
GetPhysicalDeviceFeatures:TvkGetPhysicalDeviceFeatures;
GetPhysicalDeviceFormatProperties:TvkGetPhysicalDeviceFormatProperties;
GetPhysicalDeviceImageFormatProperties:TvkGetPhysicalDeviceImageFormatProperties;
CreateDevice:TvkCreateDevice;
DestroyDevice:TvkDestroyDevice;
EnumerateInstanceVersion:TvkEnumerateInstanceVersion;
EnumerateInstanceLayerProperties:TvkEnumerateInstanceLayerProperties;
EnumerateInstanceExtensionProperties:TvkEnumerateInstanceExtensionProperties;
EnumerateDeviceLayerProperties:TvkEnumerateDeviceLayerProperties;
EnumerateDeviceExtensionProperties:TvkEnumerateDeviceExtensionProperties;
GetDeviceQueue:TvkGetDeviceQueue;
QueueSubmit:TvkQueueSubmit;
QueueWaitIdle:TvkQueueWaitIdle;
DeviceWaitIdle:TvkDeviceWaitIdle;
AllocateMemory:TvkAllocateMemory;
FreeMemory:TvkFreeMemory;
MapMemory:TvkMapMemory;
UnmapMemory:TvkUnmapMemory;
FlushMappedMemoryRanges:TvkFlushMappedMemoryRanges;
InvalidateMappedMemoryRanges:TvkInvalidateMappedMemoryRanges;
GetDeviceMemoryCommitment:TvkGetDeviceMemoryCommitment;
GetBufferMemoryRequirements:TvkGetBufferMemoryRequirements;
BindBufferMemory:TvkBindBufferMemory;
GetImageMemoryRequirements:TvkGetImageMemoryRequirements;
BindImageMemory:TvkBindImageMemory;
GetImageSparseMemoryRequirements:TvkGetImageSparseMemoryRequirements;
GetPhysicalDeviceSparseImageFormatProperties:TvkGetPhysicalDeviceSparseImageFormatProperties;
QueueBindSparse:TvkQueueBindSparse;
CreateFence:TvkCreateFence;
DestroyFence:TvkDestroyFence;
ResetFences:TvkResetFences;
GetFenceStatus:TvkGetFenceStatus;
WaitForFences:TvkWaitForFences;
CreateSemaphore:TvkCreateSemaphore;
DestroySemaphore:TvkDestroySemaphore;
CreateEvent:TvkCreateEvent;
DestroyEvent:TvkDestroyEvent;
GetEventStatus:TvkGetEventStatus;
SetEvent:TvkSetEvent;
ResetEvent:TvkResetEvent;
CreateQueryPool:TvkCreateQueryPool;
DestroyQueryPool:TvkDestroyQueryPool;
GetQueryPoolResults:TvkGetQueryPoolResults;
ResetQueryPool:TvkResetQueryPool;
ResetQueryPoolEXT:TvkResetQueryPoolEXT;
CreateBuffer:TvkCreateBuffer;
DestroyBuffer:TvkDestroyBuffer;
CreateBufferView:TvkCreateBufferView;
DestroyBufferView:TvkDestroyBufferView;
CreateImage:TvkCreateImage;
DestroyImage:TvkDestroyImage;
GetImageSubresourceLayout:TvkGetImageSubresourceLayout;
CreateImageView:TvkCreateImageView;
DestroyImageView:TvkDestroyImageView;
CreateShaderModule:TvkCreateShaderModule;
DestroyShaderModule:TvkDestroyShaderModule;
CreatePipelineCache:TvkCreatePipelineCache;
DestroyPipelineCache:TvkDestroyPipelineCache;
GetPipelineCacheData:TvkGetPipelineCacheData;
MergePipelineCaches:TvkMergePipelineCaches;
CreateGraphicsPipelines:TvkCreateGraphicsPipelines;
CreateComputePipelines:TvkCreateComputePipelines;
GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:TvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
DestroyPipeline:TvkDestroyPipeline;
CreatePipelineLayout:TvkCreatePipelineLayout;
DestroyPipelineLayout:TvkDestroyPipelineLayout;
CreateSampler:TvkCreateSampler;
DestroySampler:TvkDestroySampler;
CreateDescriptorSetLayout:TvkCreateDescriptorSetLayout;
DestroyDescriptorSetLayout:TvkDestroyDescriptorSetLayout;
CreateDescriptorPool:TvkCreateDescriptorPool;
DestroyDescriptorPool:TvkDestroyDescriptorPool;
ResetDescriptorPool:TvkResetDescriptorPool;
AllocateDescriptorSets:TvkAllocateDescriptorSets;
FreeDescriptorSets:TvkFreeDescriptorSets;
UpdateDescriptorSets:TvkUpdateDescriptorSets;
CreateFramebuffer:TvkCreateFramebuffer;
DestroyFramebuffer:TvkDestroyFramebuffer;
CreateRenderPass:TvkCreateRenderPass;
DestroyRenderPass:TvkDestroyRenderPass;
GetRenderAreaGranularity:TvkGetRenderAreaGranularity;
CreateCommandPool:TvkCreateCommandPool;
DestroyCommandPool:TvkDestroyCommandPool;
ResetCommandPool:TvkResetCommandPool;
AllocateCommandBuffers:TvkAllocateCommandBuffers;
FreeCommandBuffers:TvkFreeCommandBuffers;
BeginCommandBuffer:TvkBeginCommandBuffer;
EndCommandBuffer:TvkEndCommandBuffer;
ResetCommandBuffer:TvkResetCommandBuffer;
CmdBindPipeline:TvkCmdBindPipeline;
CmdSetViewport:TvkCmdSetViewport;
CmdSetScissor:TvkCmdSetScissor;
CmdSetLineWidth:TvkCmdSetLineWidth;
CmdSetDepthBias:TvkCmdSetDepthBias;
CmdSetBlendConstants:TvkCmdSetBlendConstants;
CmdSetDepthBounds:TvkCmdSetDepthBounds;
CmdSetStencilCompareMask:TvkCmdSetStencilCompareMask;
CmdSetStencilWriteMask:TvkCmdSetStencilWriteMask;
CmdSetStencilReference:TvkCmdSetStencilReference;
CmdBindDescriptorSets:TvkCmdBindDescriptorSets;
CmdBindIndexBuffer:TvkCmdBindIndexBuffer;
CmdBindVertexBuffers:TvkCmdBindVertexBuffers;
CmdDraw:TvkCmdDraw;
CmdDrawIndexed:TvkCmdDrawIndexed;
CmdDrawMultiEXT:TvkCmdDrawMultiEXT;
CmdDrawMultiIndexedEXT:TvkCmdDrawMultiIndexedEXT;
CmdDrawIndirect:TvkCmdDrawIndirect;
CmdDrawIndexedIndirect:TvkCmdDrawIndexedIndirect;
CmdDispatch:TvkCmdDispatch;
CmdDispatchIndirect:TvkCmdDispatchIndirect;
CmdSubpassShadingHUAWEI:TvkCmdSubpassShadingHUAWEI;
CmdCopyBuffer:TvkCmdCopyBuffer;
CmdCopyImage:TvkCmdCopyImage;
CmdBlitImage:TvkCmdBlitImage;
CmdCopyBufferToImage:TvkCmdCopyBufferToImage;
CmdCopyImageToBuffer:TvkCmdCopyImageToBuffer;
CmdUpdateBuffer:TvkCmdUpdateBuffer;
CmdFillBuffer:TvkCmdFillBuffer;
CmdClearColorImage:TvkCmdClearColorImage;
CmdClearDepthStencilImage:TvkCmdClearDepthStencilImage;
CmdClearAttachments:TvkCmdClearAttachments;
CmdResolveImage:TvkCmdResolveImage;
CmdSetEvent:TvkCmdSetEvent;
CmdResetEvent:TvkCmdResetEvent;
CmdWaitEvents:TvkCmdWaitEvents;
CmdPipelineBarrier:TvkCmdPipelineBarrier;
CmdBeginQuery:TvkCmdBeginQuery;
CmdEndQuery:TvkCmdEndQuery;
CmdBeginConditionalRenderingEXT:TvkCmdBeginConditionalRenderingEXT;
CmdEndConditionalRenderingEXT:TvkCmdEndConditionalRenderingEXT;
CmdResetQueryPool:TvkCmdResetQueryPool;
CmdWriteTimestamp:TvkCmdWriteTimestamp;
CmdCopyQueryPoolResults:TvkCmdCopyQueryPoolResults;
CmdPushConstants:TvkCmdPushConstants;
CmdBeginRenderPass:TvkCmdBeginRenderPass;
CmdNextSubpass:TvkCmdNextSubpass;
CmdEndRenderPass:TvkCmdEndRenderPass;
CmdExecuteCommands:TvkCmdExecuteCommands;
{$ifdef Android}
CreateAndroidSurfaceKHR:TvkCreateAndroidSurfaceKHR;
{$endif}
GetPhysicalDeviceDisplayPropertiesKHR:TvkGetPhysicalDeviceDisplayPropertiesKHR;
GetPhysicalDeviceDisplayPlanePropertiesKHR:TvkGetPhysicalDeviceDisplayPlanePropertiesKHR;
GetDisplayPlaneSupportedDisplaysKHR:TvkGetDisplayPlaneSupportedDisplaysKHR;
GetDisplayModePropertiesKHR:TvkGetDisplayModePropertiesKHR;
CreateDisplayModeKHR:TvkCreateDisplayModeKHR;
GetDisplayPlaneCapabilitiesKHR:TvkGetDisplayPlaneCapabilitiesKHR;
CreateDisplayPlaneSurfaceKHR:TvkCreateDisplayPlaneSurfaceKHR;
CreateSharedSwapchainsKHR:TvkCreateSharedSwapchainsKHR;
DestroySurfaceKHR:TvkDestroySurfaceKHR;
GetPhysicalDeviceSurfaceSupportKHR:TvkGetPhysicalDeviceSurfaceSupportKHR;
GetPhysicalDeviceSurfaceCapabilitiesKHR:TvkGetPhysicalDeviceSurfaceCapabilitiesKHR;
GetPhysicalDeviceSurfaceFormatsKHR:TvkGetPhysicalDeviceSurfaceFormatsKHR;
GetPhysicalDeviceSurfacePresentModesKHR:TvkGetPhysicalDeviceSurfacePresentModesKHR;
CreateSwapchainKHR:TvkCreateSwapchainKHR;
DestroySwapchainKHR:TvkDestroySwapchainKHR;
GetSwapchainImagesKHR:TvkGetSwapchainImagesKHR;
AcquireNextImageKHR:TvkAcquireNextImageKHR;
QueuePresentKHR:TvkQueuePresentKHR;
CreateViSurfaceNN:TvkCreateViSurfaceNN;
{$ifdef Wayland}
CreateWaylandSurfaceKHR:TvkCreateWaylandSurfaceKHR;
{$endif}
{$ifdef Wayland}
GetPhysicalDeviceWaylandPresentationSupportKHR:TvkGetPhysicalDeviceWaylandPresentationSupportKHR;
{$endif}
{$ifdef Windows}
CreateWin32SurfaceKHR:TvkCreateWin32SurfaceKHR;
{$endif}
{$ifdef Windows}
GetPhysicalDeviceWin32PresentationSupportKHR:TvkGetPhysicalDeviceWin32PresentationSupportKHR;
{$endif}
{$ifdef XLIB}
CreateXlibSurfaceKHR:TvkCreateXlibSurfaceKHR;
{$endif}
{$ifdef XLIB}
GetPhysicalDeviceXlibPresentationSupportKHR:TvkGetPhysicalDeviceXlibPresentationSupportKHR;
{$endif}
{$ifdef XCB}
CreateXcbSurfaceKHR:TvkCreateXcbSurfaceKHR;
{$endif}
{$ifdef XCB}
GetPhysicalDeviceXcbPresentationSupportKHR:TvkGetPhysicalDeviceXcbPresentationSupportKHR;
{$endif}
{$ifdef DirectFB}
CreateDirectFBSurfaceEXT:TvkCreateDirectFBSurfaceEXT;
{$endif}
{$ifdef DirectFB}
GetPhysicalDeviceDirectFBPresentationSupportEXT:TvkGetPhysicalDeviceDirectFBPresentationSupportEXT;
{$endif}
{$ifdef Fuchsia}
CreateImagePipeSurfaceFUCHSIA:TvkCreateImagePipeSurfaceFUCHSIA;
{$endif}
CreateStreamDescriptorSurfaceGGP:TvkCreateStreamDescriptorSurfaceGGP;
{$ifdef QNX}
CreateScreenSurfaceQNX:TvkCreateScreenSurfaceQNX;
{$endif}
{$ifdef QNX}
GetPhysicalDeviceScreenPresentationSupportQNX:TvkGetPhysicalDeviceScreenPresentationSupportQNX;
{$endif}
CreateDebugReportCallbackEXT:TvkCreateDebugReportCallbackEXT;
DestroyDebugReportCallbackEXT:TvkDestroyDebugReportCallbackEXT;
DebugReportMessageEXT:TvkDebugReportMessageEXT;
DebugMarkerSetObjectNameEXT:TvkDebugMarkerSetObjectNameEXT;
DebugMarkerSetObjectTagEXT:TvkDebugMarkerSetObjectTagEXT;
CmdDebugMarkerBeginEXT:TvkCmdDebugMarkerBeginEXT;
CmdDebugMarkerEndEXT:TvkCmdDebugMarkerEndEXT;
CmdDebugMarkerInsertEXT:TvkCmdDebugMarkerInsertEXT;
GetPhysicalDeviceExternalImageFormatPropertiesNV:TvkGetPhysicalDeviceExternalImageFormatPropertiesNV;
{$ifdef Windows}
GetMemoryWin32HandleNV:TvkGetMemoryWin32HandleNV;
{$endif}
CmdExecuteGeneratedCommandsNV:TvkCmdExecuteGeneratedCommandsNV;
CmdPreprocessGeneratedCommandsNV:TvkCmdPreprocessGeneratedCommandsNV;
CmdBindPipelineShaderGroupNV:TvkCmdBindPipelineShaderGroupNV;
GetGeneratedCommandsMemoryRequirementsNV:TvkGetGeneratedCommandsMemoryRequirementsNV;
CreateIndirectCommandsLayoutNV:TvkCreateIndirectCommandsLayoutNV;
DestroyIndirectCommandsLayoutNV:TvkDestroyIndirectCommandsLayoutNV;
GetPhysicalDeviceFeatures2:TvkGetPhysicalDeviceFeatures2;
GetPhysicalDeviceFeatures2KHR:TvkGetPhysicalDeviceFeatures2KHR;
GetPhysicalDeviceProperties2:TvkGetPhysicalDeviceProperties2;
GetPhysicalDeviceProperties2KHR:TvkGetPhysicalDeviceProperties2KHR;
GetPhysicalDeviceFormatProperties2:TvkGetPhysicalDeviceFormatProperties2;
GetPhysicalDeviceFormatProperties2KHR:TvkGetPhysicalDeviceFormatProperties2KHR;
GetPhysicalDeviceImageFormatProperties2:TvkGetPhysicalDeviceImageFormatProperties2;
GetPhysicalDeviceImageFormatProperties2KHR:TvkGetPhysicalDeviceImageFormatProperties2KHR;
GetPhysicalDeviceQueueFamilyProperties2:TvkGetPhysicalDeviceQueueFamilyProperties2;
GetPhysicalDeviceQueueFamilyProperties2KHR:TvkGetPhysicalDeviceQueueFamilyProperties2KHR;
GetPhysicalDeviceMemoryProperties2:TvkGetPhysicalDeviceMemoryProperties2;
GetPhysicalDeviceMemoryProperties2KHR:TvkGetPhysicalDeviceMemoryProperties2KHR;
GetPhysicalDeviceSparseImageFormatProperties2:TvkGetPhysicalDeviceSparseImageFormatProperties2;
GetPhysicalDeviceSparseImageFormatProperties2KHR:TvkGetPhysicalDeviceSparseImageFormatProperties2KHR;
CmdPushDescriptorSetKHR:TvkCmdPushDescriptorSetKHR;
TrimCommandPool:TvkTrimCommandPool;
TrimCommandPoolKHR:TvkTrimCommandPoolKHR;
GetPhysicalDeviceExternalBufferProperties:TvkGetPhysicalDeviceExternalBufferProperties;
GetPhysicalDeviceExternalBufferPropertiesKHR:TvkGetPhysicalDeviceExternalBufferPropertiesKHR;
{$ifdef Windows}
GetMemoryWin32HandleKHR:TvkGetMemoryWin32HandleKHR;
{$endif}
{$ifdef Windows}
GetMemoryWin32HandlePropertiesKHR:TvkGetMemoryWin32HandlePropertiesKHR;
{$endif}
GetMemoryFdKHR:TvkGetMemoryFdKHR;
GetMemoryFdPropertiesKHR:TvkGetMemoryFdPropertiesKHR;
{$ifdef Fuchsia}
GetMemoryZirconHandleFUCHSIA:TvkGetMemoryZirconHandleFUCHSIA;
{$endif}
{$ifdef Fuchsia}
GetMemoryZirconHandlePropertiesFUCHSIA:TvkGetMemoryZirconHandlePropertiesFUCHSIA;
{$endif}
GetMemoryRemoteAddressNV:TvkGetMemoryRemoteAddressNV;
GetPhysicalDeviceExternalSemaphoreProperties:TvkGetPhysicalDeviceExternalSemaphoreProperties;
GetPhysicalDeviceExternalSemaphorePropertiesKHR:TvkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
{$ifdef Windows}
GetSemaphoreWin32HandleKHR:TvkGetSemaphoreWin32HandleKHR;
{$endif}
{$ifdef Windows}
ImportSemaphoreWin32HandleKHR:TvkImportSemaphoreWin32HandleKHR;
{$endif}
GetSemaphoreFdKHR:TvkGetSemaphoreFdKHR;
ImportSemaphoreFdKHR:TvkImportSemaphoreFdKHR;
{$ifdef Fuchsia}
GetSemaphoreZirconHandleFUCHSIA:TvkGetSemaphoreZirconHandleFUCHSIA;
{$endif}
{$ifdef Fuchsia}
ImportSemaphoreZirconHandleFUCHSIA:TvkImportSemaphoreZirconHandleFUCHSIA;
{$endif}
GetPhysicalDeviceExternalFenceProperties:TvkGetPhysicalDeviceExternalFenceProperties;
GetPhysicalDeviceExternalFencePropertiesKHR:TvkGetPhysicalDeviceExternalFencePropertiesKHR;
{$ifdef Windows}
GetFenceWin32HandleKHR:TvkGetFenceWin32HandleKHR;
{$endif}
{$ifdef Windows}
ImportFenceWin32HandleKHR:TvkImportFenceWin32HandleKHR;
{$endif}
GetFenceFdKHR:TvkGetFenceFdKHR;
ImportFenceFdKHR:TvkImportFenceFdKHR;
ReleaseDisplayEXT:TvkReleaseDisplayEXT;
{$ifdef XLIB}
AcquireXlibDisplayEXT:TvkAcquireXlibDisplayEXT;
{$endif}
{$ifdef RandR}
GetRandROutputDisplayEXT:TvkGetRandROutputDisplayEXT;
{$endif}
AcquireWinrtDisplayNV:TvkAcquireWinrtDisplayNV;
GetWinrtDisplayNV:TvkGetWinrtDisplayNV;
DisplayPowerControlEXT:TvkDisplayPowerControlEXT;
RegisterDeviceEventEXT:TvkRegisterDeviceEventEXT;
RegisterDisplayEventEXT:TvkRegisterDisplayEventEXT;
GetSwapchainCounterEXT:TvkGetSwapchainCounterEXT;
GetPhysicalDeviceSurfaceCapabilities2EXT:TvkGetPhysicalDeviceSurfaceCapabilities2EXT;
EnumeratePhysicalDeviceGroups:TvkEnumeratePhysicalDeviceGroups;
EnumeratePhysicalDeviceGroupsKHR:TvkEnumeratePhysicalDeviceGroupsKHR;
GetDeviceGroupPeerMemoryFeatures:TvkGetDeviceGroupPeerMemoryFeatures;
GetDeviceGroupPeerMemoryFeaturesKHR:TvkGetDeviceGroupPeerMemoryFeaturesKHR;
BindBufferMemory2:TvkBindBufferMemory2;
BindBufferMemory2KHR:TvkBindBufferMemory2KHR;
BindImageMemory2:TvkBindImageMemory2;
BindImageMemory2KHR:TvkBindImageMemory2KHR;
CmdSetDeviceMask:TvkCmdSetDeviceMask;
CmdSetDeviceMaskKHR:TvkCmdSetDeviceMaskKHR;
GetDeviceGroupPresentCapabilitiesKHR:TvkGetDeviceGroupPresentCapabilitiesKHR;
GetDeviceGroupSurfacePresentModesKHR:TvkGetDeviceGroupSurfacePresentModesKHR;
AcquireNextImage2KHR:TvkAcquireNextImage2KHR;
CmdDispatchBase:TvkCmdDispatchBase;
CmdDispatchBaseKHR:TvkCmdDispatchBaseKHR;
GetPhysicalDevicePresentRectanglesKHR:TvkGetPhysicalDevicePresentRectanglesKHR;
CreateDescriptorUpdateTemplate:TvkCreateDescriptorUpdateTemplate;
CreateDescriptorUpdateTemplateKHR:TvkCreateDescriptorUpdateTemplateKHR;
DestroyDescriptorUpdateTemplate:TvkDestroyDescriptorUpdateTemplate;
DestroyDescriptorUpdateTemplateKHR:TvkDestroyDescriptorUpdateTemplateKHR;
UpdateDescriptorSetWithTemplate:TvkUpdateDescriptorSetWithTemplate;
UpdateDescriptorSetWithTemplateKHR:TvkUpdateDescriptorSetWithTemplateKHR;
CmdPushDescriptorSetWithTemplateKHR:TvkCmdPushDescriptorSetWithTemplateKHR;
SetHdrMetadataEXT:TvkSetHdrMetadataEXT;
GetSwapchainStatusKHR:TvkGetSwapchainStatusKHR;
GetRefreshCycleDurationGOOGLE:TvkGetRefreshCycleDurationGOOGLE;
GetPastPresentationTimingGOOGLE:TvkGetPastPresentationTimingGOOGLE;
{$ifdef MoltenVK_IOS}
CreateIOSSurfaceMVK:TvkCreateIOSSurfaceMVK;
{$endif}
{$ifdef MoltenVK_MacOS}
CreateMacOSSurfaceMVK:TvkCreateMacOSSurfaceMVK;
{$endif}
CreateMetalSurfaceEXT:TvkCreateMetalSurfaceEXT;
CmdSetViewportWScalingNV:TvkCmdSetViewportWScalingNV;
CmdSetDiscardRectangleEXT:TvkCmdSetDiscardRectangleEXT;
CmdSetSampleLocationsEXT:TvkCmdSetSampleLocationsEXT;
GetPhysicalDeviceMultisamplePropertiesEXT:TvkGetPhysicalDeviceMultisamplePropertiesEXT;
GetPhysicalDeviceSurfaceCapabilities2KHR:TvkGetPhysicalDeviceSurfaceCapabilities2KHR;
GetPhysicalDeviceSurfaceFormats2KHR:TvkGetPhysicalDeviceSurfaceFormats2KHR;
GetPhysicalDeviceDisplayProperties2KHR:TvkGetPhysicalDeviceDisplayProperties2KHR;
GetPhysicalDeviceDisplayPlaneProperties2KHR:TvkGetPhysicalDeviceDisplayPlaneProperties2KHR;
GetDisplayModeProperties2KHR:TvkGetDisplayModeProperties2KHR;
GetDisplayPlaneCapabilities2KHR:TvkGetDisplayPlaneCapabilities2KHR;
GetBufferMemoryRequirements2:TvkGetBufferMemoryRequirements2;
GetBufferMemoryRequirements2KHR:TvkGetBufferMemoryRequirements2KHR;
GetImageMemoryRequirements2:TvkGetImageMemoryRequirements2;
GetImageMemoryRequirements2KHR:TvkGetImageMemoryRequirements2KHR;
GetImageSparseMemoryRequirements2:TvkGetImageSparseMemoryRequirements2;
GetImageSparseMemoryRequirements2KHR:TvkGetImageSparseMemoryRequirements2KHR;
CreateSamplerYcbcrConversion:TvkCreateSamplerYcbcrConversion;
CreateSamplerYcbcrConversionKHR:TvkCreateSamplerYcbcrConversionKHR;
DestroySamplerYcbcrConversion:TvkDestroySamplerYcbcrConversion;
DestroySamplerYcbcrConversionKHR:TvkDestroySamplerYcbcrConversionKHR;
GetDeviceQueue2:TvkGetDeviceQueue2;
CreateValidationCacheEXT:TvkCreateValidationCacheEXT;
DestroyValidationCacheEXT:TvkDestroyValidationCacheEXT;
GetValidationCacheDataEXT:TvkGetValidationCacheDataEXT;
MergeValidationCachesEXT:TvkMergeValidationCachesEXT;
GetDescriptorSetLayoutSupport:TvkGetDescriptorSetLayoutSupport;
GetDescriptorSetLayoutSupportKHR:TvkGetDescriptorSetLayoutSupportKHR;
GetSwapchainGrallocUsageANDROID:TvkGetSwapchainGrallocUsageANDROID;
{$ifdef Android}
GetSwapchainGrallocUsage2ANDROID:TvkGetSwapchainGrallocUsage2ANDROID;
{$endif}
AcquireImageANDROID:TvkAcquireImageANDROID;
QueueSignalReleaseImageANDROID:TvkQueueSignalReleaseImageANDROID;
GetShaderInfoAMD:TvkGetShaderInfoAMD;
SetLocalDimmingAMD:TvkSetLocalDimmingAMD;
GetPhysicalDeviceCalibrateableTimeDomainsEXT:TvkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
GetCalibratedTimestampsEXT:TvkGetCalibratedTimestampsEXT;
SetDebugUtilsObjectNameEXT:TvkSetDebugUtilsObjectNameEXT;
SetDebugUtilsObjectTagEXT:TvkSetDebugUtilsObjectTagEXT;
QueueBeginDebugUtilsLabelEXT:TvkQueueBeginDebugUtilsLabelEXT;
QueueEndDebugUtilsLabelEXT:TvkQueueEndDebugUtilsLabelEXT;
QueueInsertDebugUtilsLabelEXT:TvkQueueInsertDebugUtilsLabelEXT;
CmdBeginDebugUtilsLabelEXT:TvkCmdBeginDebugUtilsLabelEXT;
CmdEndDebugUtilsLabelEXT:TvkCmdEndDebugUtilsLabelEXT;
CmdInsertDebugUtilsLabelEXT:TvkCmdInsertDebugUtilsLabelEXT;
CreateDebugUtilsMessengerEXT:TvkCreateDebugUtilsMessengerEXT;
DestroyDebugUtilsMessengerEXT:TvkDestroyDebugUtilsMessengerEXT;
SubmitDebugUtilsMessageEXT:TvkSubmitDebugUtilsMessageEXT;
GetMemoryHostPointerPropertiesEXT:TvkGetMemoryHostPointerPropertiesEXT;
CmdWriteBufferMarkerAMD:TvkCmdWriteBufferMarkerAMD;
CreateRenderPass2:TvkCreateRenderPass2;
CreateRenderPass2KHR:TvkCreateRenderPass2KHR;
CmdBeginRenderPass2:TvkCmdBeginRenderPass2;
CmdBeginRenderPass2KHR:TvkCmdBeginRenderPass2KHR;
CmdNextSubpass2:TvkCmdNextSubpass2;
CmdNextSubpass2KHR:TvkCmdNextSubpass2KHR;
CmdEndRenderPass2:TvkCmdEndRenderPass2;
CmdEndRenderPass2KHR:TvkCmdEndRenderPass2KHR;
GetSemaphoreCounterValue:TvkGetSemaphoreCounterValue;
GetSemaphoreCounterValueKHR:TvkGetSemaphoreCounterValueKHR;
WaitSemaphores:TvkWaitSemaphores;
WaitSemaphoresKHR:TvkWaitSemaphoresKHR;
SignalSemaphore:TvkSignalSemaphore;
SignalSemaphoreKHR:TvkSignalSemaphoreKHR;
{$ifdef Android}
GetAndroidHardwareBufferPropertiesANDROID:TvkGetAndroidHardwareBufferPropertiesANDROID;
{$endif}
{$ifdef Android}
GetMemoryAndroidHardwareBufferANDROID:TvkGetMemoryAndroidHardwareBufferANDROID;
{$endif}
CmdDrawIndirectCount:TvkCmdDrawIndirectCount;
CmdDrawIndirectCountKHR:TvkCmdDrawIndirectCountKHR;
CmdDrawIndirectCountAMD:TvkCmdDrawIndirectCountAMD;
CmdDrawIndexedIndirectCount:TvkCmdDrawIndexedIndirectCount;
CmdDrawIndexedIndirectCountKHR:TvkCmdDrawIndexedIndirectCountKHR;
CmdDrawIndexedIndirectCountAMD:TvkCmdDrawIndexedIndirectCountAMD;
CmdSetCheckpointNV:TvkCmdSetCheckpointNV;
GetQueueCheckpointDataNV:TvkGetQueueCheckpointDataNV;
CmdBindTransformFeedbackBuffersEXT:TvkCmdBindTransformFeedbackBuffersEXT;
CmdBeginTransformFeedbackEXT:TvkCmdBeginTransformFeedbackEXT;
CmdEndTransformFeedbackEXT:TvkCmdEndTransformFeedbackEXT;
CmdBeginQueryIndexedEXT:TvkCmdBeginQueryIndexedEXT;
CmdEndQueryIndexedEXT:TvkCmdEndQueryIndexedEXT;
CmdDrawIndirectByteCountEXT:TvkCmdDrawIndirectByteCountEXT;
CmdSetExclusiveScissorNV:TvkCmdSetExclusiveScissorNV;
CmdBindShadingRateImageNV:TvkCmdBindShadingRateImageNV;
CmdSetViewportShadingRatePaletteNV:TvkCmdSetViewportShadingRatePaletteNV;
CmdSetCoarseSampleOrderNV:TvkCmdSetCoarseSampleOrderNV;
CmdDrawMeshTasksNV:TvkCmdDrawMeshTasksNV;
CmdDrawMeshTasksIndirectNV:TvkCmdDrawMeshTasksIndirectNV;
CmdDrawMeshTasksIndirectCountNV:TvkCmdDrawMeshTasksIndirectCountNV;
CompileDeferredNV:TvkCompileDeferredNV;
CreateAccelerationStructureNV:TvkCreateAccelerationStructureNV;
CmdBindInvocationMaskHUAWEI:TvkCmdBindInvocationMaskHUAWEI;
DestroyAccelerationStructureKHR:TvkDestroyAccelerationStructureKHR;
DestroyAccelerationStructureNV:TvkDestroyAccelerationStructureNV;
GetAccelerationStructureMemoryRequirementsNV:TvkGetAccelerationStructureMemoryRequirementsNV;
BindAccelerationStructureMemoryNV:TvkBindAccelerationStructureMemoryNV;
CmdCopyAccelerationStructureNV:TvkCmdCopyAccelerationStructureNV;
CmdCopyAccelerationStructureKHR:TvkCmdCopyAccelerationStructureKHR;
CopyAccelerationStructureKHR:TvkCopyAccelerationStructureKHR;
CmdCopyAccelerationStructureToMemoryKHR:TvkCmdCopyAccelerationStructureToMemoryKHR;
CopyAccelerationStructureToMemoryKHR:TvkCopyAccelerationStructureToMemoryKHR;
CmdCopyMemoryToAccelerationStructureKHR:TvkCmdCopyMemoryToAccelerationStructureKHR;
CopyMemoryToAccelerationStructureKHR:TvkCopyMemoryToAccelerationStructureKHR;
CmdWriteAccelerationStructuresPropertiesKHR:TvkCmdWriteAccelerationStructuresPropertiesKHR;
CmdWriteAccelerationStructuresPropertiesNV:TvkCmdWriteAccelerationStructuresPropertiesNV;
CmdBuildAccelerationStructureNV:TvkCmdBuildAccelerationStructureNV;
WriteAccelerationStructuresPropertiesKHR:TvkWriteAccelerationStructuresPropertiesKHR;
CmdTraceRaysKHR:TvkCmdTraceRaysKHR;
CmdTraceRaysNV:TvkCmdTraceRaysNV;
GetRayTracingShaderGroupHandlesKHR:TvkGetRayTracingShaderGroupHandlesKHR;
GetRayTracingShaderGroupHandlesNV:TvkGetRayTracingShaderGroupHandlesNV;
GetRayTracingCaptureReplayShaderGroupHandlesKHR:TvkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
GetAccelerationStructureHandleNV:TvkGetAccelerationStructureHandleNV;
CreateRayTracingPipelinesNV:TvkCreateRayTracingPipelinesNV;
CreateRayTracingPipelinesKHR:TvkCreateRayTracingPipelinesKHR;
GetPhysicalDeviceCooperativeMatrixPropertiesNV:TvkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
CmdTraceRaysIndirectKHR:TvkCmdTraceRaysIndirectKHR;
GetDeviceAccelerationStructureCompatibilityKHR:TvkGetDeviceAccelerationStructureCompatibilityKHR;
GetRayTracingShaderGroupStackSizeKHR:TvkGetRayTracingShaderGroupStackSizeKHR;
CmdSetRayTracingPipelineStackSizeKHR:TvkCmdSetRayTracingPipelineStackSizeKHR;
GetImageViewHandleNVX:TvkGetImageViewHandleNVX;
GetImageViewAddressNVX:TvkGetImageViewAddressNVX;
GetPhysicalDeviceSurfacePresentModes2EXT:TvkGetPhysicalDeviceSurfacePresentModes2EXT;
GetDeviceGroupSurfacePresentModes2EXT:TvkGetDeviceGroupSurfacePresentModes2EXT;
AcquireFullScreenExclusiveModeEXT:TvkAcquireFullScreenExclusiveModeEXT;
ReleaseFullScreenExclusiveModeEXT:TvkReleaseFullScreenExclusiveModeEXT;
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:TvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:TvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
AcquireProfilingLockKHR:TvkAcquireProfilingLockKHR;
ReleaseProfilingLockKHR:TvkReleaseProfilingLockKHR;
GetImageDrmFormatModifierPropertiesEXT:TvkGetImageDrmFormatModifierPropertiesEXT;
GetBufferOpaqueCaptureAddress:TvkGetBufferOpaqueCaptureAddress;
GetBufferOpaqueCaptureAddressKHR:TvkGetBufferOpaqueCaptureAddressKHR;
GetBufferDeviceAddress:TvkGetBufferDeviceAddress;
GetBufferDeviceAddressKHR:TvkGetBufferDeviceAddressKHR;
GetBufferDeviceAddressEXT:TvkGetBufferDeviceAddressEXT;
CreateHeadlessSurfaceEXT:TvkCreateHeadlessSurfaceEXT;
GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:TvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
InitializePerformanceApiINTEL:TvkInitializePerformanceApiINTEL;
UninitializePerformanceApiINTEL:TvkUninitializePerformanceApiINTEL;
CmdSetPerformanceMarkerINTEL:TvkCmdSetPerformanceMarkerINTEL;
CmdSetPerformanceStreamMarkerINTEL:TvkCmdSetPerformanceStreamMarkerINTEL;
CmdSetPerformanceOverrideINTEL:TvkCmdSetPerformanceOverrideINTEL;
AcquirePerformanceConfigurationINTEL:TvkAcquirePerformanceConfigurationINTEL;
ReleasePerformanceConfigurationINTEL:TvkReleasePerformanceConfigurationINTEL;
QueueSetPerformanceConfigurationINTEL:TvkQueueSetPerformanceConfigurationINTEL;
GetPerformanceParameterINTEL:TvkGetPerformanceParameterINTEL;
GetDeviceMemoryOpaqueCaptureAddress:TvkGetDeviceMemoryOpaqueCaptureAddress;
GetDeviceMemoryOpaqueCaptureAddressKHR:TvkGetDeviceMemoryOpaqueCaptureAddressKHR;
GetPipelineExecutablePropertiesKHR:TvkGetPipelineExecutablePropertiesKHR;
GetPipelineExecutableStatisticsKHR:TvkGetPipelineExecutableStatisticsKHR;
GetPipelineExecutableInternalRepresentationsKHR:TvkGetPipelineExecutableInternalRepresentationsKHR;
CmdSetLineStippleEXT:TvkCmdSetLineStippleEXT;
GetPhysicalDeviceToolPropertiesEXT:TvkGetPhysicalDeviceToolPropertiesEXT;
CreateAccelerationStructureKHR:TvkCreateAccelerationStructureKHR;
CmdBuildAccelerationStructuresKHR:TvkCmdBuildAccelerationStructuresKHR;
CmdBuildAccelerationStructuresIndirectKHR:TvkCmdBuildAccelerationStructuresIndirectKHR;
BuildAccelerationStructuresKHR:TvkBuildAccelerationStructuresKHR;
GetAccelerationStructureDeviceAddressKHR:TvkGetAccelerationStructureDeviceAddressKHR;
CreateDeferredOperationKHR:TvkCreateDeferredOperationKHR;
DestroyDeferredOperationKHR:TvkDestroyDeferredOperationKHR;
GetDeferredOperationMaxConcurrencyKHR:TvkGetDeferredOperationMaxConcurrencyKHR;
GetDeferredOperationResultKHR:TvkGetDeferredOperationResultKHR;
DeferredOperationJoinKHR:TvkDeferredOperationJoinKHR;
CmdSetCullModeEXT:TvkCmdSetCullModeEXT;
CmdSetFrontFaceEXT:TvkCmdSetFrontFaceEXT;
CmdSetPrimitiveTopologyEXT:TvkCmdSetPrimitiveTopologyEXT;
CmdSetViewportWithCountEXT:TvkCmdSetViewportWithCountEXT;
CmdSetScissorWithCountEXT:TvkCmdSetScissorWithCountEXT;
CmdBindVertexBuffers2EXT:TvkCmdBindVertexBuffers2EXT;
CmdSetDepthTestEnableEXT:TvkCmdSetDepthTestEnableEXT;
CmdSetDepthWriteEnableEXT:TvkCmdSetDepthWriteEnableEXT;
CmdSetDepthCompareOpEXT:TvkCmdSetDepthCompareOpEXT;
CmdSetDepthBoundsTestEnableEXT:TvkCmdSetDepthBoundsTestEnableEXT;
CmdSetStencilTestEnableEXT:TvkCmdSetStencilTestEnableEXT;
CmdSetStencilOpEXT:TvkCmdSetStencilOpEXT;
CmdSetPatchControlPointsEXT:TvkCmdSetPatchControlPointsEXT;
CmdSetRasterizerDiscardEnableEXT:TvkCmdSetRasterizerDiscardEnableEXT;
CmdSetDepthBiasEnableEXT:TvkCmdSetDepthBiasEnableEXT;
CmdSetLogicOpEXT:TvkCmdSetLogicOpEXT;
CmdSetPrimitiveRestartEnableEXT:TvkCmdSetPrimitiveRestartEnableEXT;
CreatePrivateDataSlotEXT:TvkCreatePrivateDataSlotEXT;
DestroyPrivateDataSlotEXT:TvkDestroyPrivateDataSlotEXT;
SetPrivateDataEXT:TvkSetPrivateDataEXT;
GetPrivateDataEXT:TvkGetPrivateDataEXT;
CmdCopyBuffer2KHR:TvkCmdCopyBuffer2KHR;
CmdCopyImage2KHR:TvkCmdCopyImage2KHR;
CmdBlitImage2KHR:TvkCmdBlitImage2KHR;
CmdCopyBufferToImage2KHR:TvkCmdCopyBufferToImage2KHR;
CmdCopyImageToBuffer2KHR:TvkCmdCopyImageToBuffer2KHR;
CmdResolveImage2KHR:TvkCmdResolveImage2KHR;
CmdSetFragmentShadingRateKHR:TvkCmdSetFragmentShadingRateKHR;
GetPhysicalDeviceFragmentShadingRatesKHR:TvkGetPhysicalDeviceFragmentShadingRatesKHR;
CmdSetFragmentShadingRateEnumNV:TvkCmdSetFragmentShadingRateEnumNV;
GetAccelerationStructureBuildSizesKHR:TvkGetAccelerationStructureBuildSizesKHR;
CmdSetVertexInputEXT:TvkCmdSetVertexInputEXT;
CmdSetColorWriteEnableEXT:TvkCmdSetColorWriteEnableEXT;
CmdSetEvent2KHR:TvkCmdSetEvent2KHR;
CmdResetEvent2KHR:TvkCmdResetEvent2KHR;
CmdWaitEvents2KHR:TvkCmdWaitEvents2KHR;
CmdPipelineBarrier2KHR:TvkCmdPipelineBarrier2KHR;
QueueSubmit2KHR:TvkQueueSubmit2KHR;
CmdWriteTimestamp2KHR:TvkCmdWriteTimestamp2KHR;
CmdWriteBufferMarker2AMD:TvkCmdWriteBufferMarker2AMD;
GetQueueCheckpointData2NV:TvkGetQueueCheckpointData2NV;
{$ifdef VkVideo}
GetPhysicalDeviceVideoCapabilitiesKHR:TvkGetPhysicalDeviceVideoCapabilitiesKHR;
{$endif}
{$ifdef VkVideo}
GetPhysicalDeviceVideoFormatPropertiesKHR:TvkGetPhysicalDeviceVideoFormatPropertiesKHR;
{$endif}
{$ifdef VkVideo}
CreateVideoSessionKHR:TvkCreateVideoSessionKHR;
{$endif}
{$ifdef VkVideo}
DestroyVideoSessionKHR:TvkDestroyVideoSessionKHR;
{$endif}
{$ifdef VkVideo}
CreateVideoSessionParametersKHR:TvkCreateVideoSessionParametersKHR;
{$endif}
{$ifdef VkVideo}
UpdateVideoSessionParametersKHR:TvkUpdateVideoSessionParametersKHR;
{$endif}
{$ifdef VkVideo}
DestroyVideoSessionParametersKHR:TvkDestroyVideoSessionParametersKHR;
{$endif}
{$ifdef VkVideo}
GetVideoSessionMemoryRequirementsKHR:TvkGetVideoSessionMemoryRequirementsKHR;
{$endif}
{$ifdef VkVideo}
BindVideoSessionMemoryKHR:TvkBindVideoSessionMemoryKHR;
{$endif}
{$ifdef VkVideo}
CmdDecodeVideoKHR:TvkCmdDecodeVideoKHR;
{$endif}
{$ifdef VkVideo}
CmdBeginVideoCodingKHR:TvkCmdBeginVideoCodingKHR;
{$endif}
{$ifdef VkVideo}
CmdControlVideoCodingKHR:TvkCmdControlVideoCodingKHR;
{$endif}
{$ifdef VkVideo}
CmdEndVideoCodingKHR:TvkCmdEndVideoCodingKHR;
{$endif}
{$ifdef VkVideo}
CmdEncodeVideoKHR:TvkCmdEncodeVideoKHR;
{$endif}
CreateCuModuleNVX:TvkCreateCuModuleNVX;
CreateCuFunctionNVX:TvkCreateCuFunctionNVX;
DestroyCuModuleNVX:TvkDestroyCuModuleNVX;
DestroyCuFunctionNVX:TvkDestroyCuFunctionNVX;
CmdCuLaunchKernelNVX:TvkCmdCuLaunchKernelNVX;
AcquireDrmDisplayEXT:TvkAcquireDrmDisplayEXT;
GetDrmDisplayEXT:TvkGetDrmDisplayEXT;
WaitForPresentKHR:TvkWaitForPresentKHR;
end;
TVulkan=class
private
fCommands:TVulkanCommands;
public
constructor Create; reintroduce; overload;
constructor Create(const AVulkanCommands:TVulkanCommands); reintroduce; overload;
destructor Destroy; override;
function CreateInstance(const pCreateInfo:PVkInstanceCreateInfo;const pAllocator:PVkAllocationCallbacks;pInstance:PVkInstance):TVkResult; virtual;
procedure DestroyInstance(instance:TVkInstance;const pAllocator:PVkAllocationCallbacks); virtual;
function EnumeratePhysicalDevices(instance:TVkInstance;pPhysicalDeviceCount:PVkUInt32;pPhysicalDevices:PVkPhysicalDevice):TVkResult; virtual;
function GetDeviceProcAddr(device:TVkDevice;const pName:PVkChar):TPFN_vkVoidFunction; virtual;
function GetInstanceProcAddr(instance:TVkInstance;const pName:PVkChar):TPFN_vkVoidFunction; virtual;
procedure GetPhysicalDeviceProperties(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties); virtual;
procedure GetPhysicalDeviceQueueFamilyProperties(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties); virtual;
procedure GetPhysicalDeviceMemoryProperties(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties); virtual;
procedure GetPhysicalDeviceFeatures(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures); virtual;
procedure GetPhysicalDeviceFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties); virtual;
function GetPhysicalDeviceImageFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;pImageFormatProperties:PVkImageFormatProperties):TVkResult; virtual;
function CreateDevice(physicalDevice:TVkPhysicalDevice;const pCreateInfo:PVkDeviceCreateInfo;const pAllocator:PVkAllocationCallbacks;pDevice:PVkDevice):TVkResult; virtual;
procedure DestroyDevice(device:TVkDevice;const pAllocator:PVkAllocationCallbacks); virtual;
function EnumerateInstanceVersion(pApiVersion:PVkUInt32):TVkResult; virtual;
function EnumerateInstanceLayerProperties(pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult; virtual;
function EnumerateInstanceExtensionProperties(const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult; virtual;
function EnumerateDeviceLayerProperties(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult; virtual;
function EnumerateDeviceExtensionProperties(physicalDevice:TVkPhysicalDevice;const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult; virtual;
procedure GetDeviceQueue(device:TVkDevice;queueFamilyIndex:TVkUInt32;queueIndex:TVkUInt32;pQueue:PVkQueue); virtual;
function QueueSubmit(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo;fence:TVkFence):TVkResult; virtual;
function QueueWaitIdle(queue:TVkQueue):TVkResult; virtual;
function DeviceWaitIdle(device:TVkDevice):TVkResult; virtual;
function AllocateMemory(device:TVkDevice;const pAllocateInfo:PVkMemoryAllocateInfo;const pAllocator:PVkAllocationCallbacks;pMemory:PVkDeviceMemory):TVkResult; virtual;
procedure FreeMemory(device:TVkDevice;memory:TVkDeviceMemory;const pAllocator:PVkAllocationCallbacks); virtual;
function MapMemory(device:TVkDevice;memory:TVkDeviceMemory;offset:TVkDeviceSize;size:TVkDeviceSize;flags:TVkMemoryMapFlags;ppData:PPVkVoid):TVkResult; virtual;
procedure UnmapMemory(device:TVkDevice;memory:TVkDeviceMemory); virtual;
function FlushMappedMemoryRanges(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult; virtual;
function InvalidateMappedMemoryRanges(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult; virtual;
procedure GetDeviceMemoryCommitment(device:TVkDevice;memory:TVkDeviceMemory;pCommittedMemoryInBytes:PVkDeviceSize); virtual;
procedure GetBufferMemoryRequirements(device:TVkDevice;buffer:TVkBuffer;pMemoryRequirements:PVkMemoryRequirements); virtual;
function BindBufferMemory(device:TVkDevice;buffer:TVkBuffer;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult; virtual;
procedure GetImageMemoryRequirements(device:TVkDevice;image:TVkImage;pMemoryRequirements:PVkMemoryRequirements); virtual;
function BindImageMemory(device:TVkDevice;image:TVkImage;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult; virtual;
procedure GetImageSparseMemoryRequirements(device:TVkDevice;image:TVkImage;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements); virtual;
procedure GetPhysicalDeviceSparseImageFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;samples:TVkSampleCountFlagBits;usage:TVkImageUsageFlags;tiling:TVkImageTiling;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties); virtual;
function QueueBindSparse(queue:TVkQueue;bindInfoCount:TVkUInt32;const pBindInfo:PVkBindSparseInfo;fence:TVkFence):TVkResult; virtual;
function CreateFence(device:TVkDevice;const pCreateInfo:PVkFenceCreateInfo;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; virtual;
procedure DestroyFence(device:TVkDevice;fence:TVkFence;const pAllocator:PVkAllocationCallbacks); virtual;
function ResetFences(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence):TVkResult; virtual;
function GetFenceStatus(device:TVkDevice;fence:TVkFence):TVkResult; virtual;
function WaitForFences(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence;waitAll:TVkBool32;timeout:TVkUInt64):TVkResult; virtual;
function CreateSemaphore(device:TVkDevice;const pCreateInfo:PVkSemaphoreCreateInfo;const pAllocator:PVkAllocationCallbacks;pSemaphore:PVkSemaphore):TVkResult; virtual;
procedure DestroySemaphore(device:TVkDevice;semaphore:TVkSemaphore;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateEvent(device:TVkDevice;const pCreateInfo:PVkEventCreateInfo;const pAllocator:PVkAllocationCallbacks;pEvent:PVkEvent):TVkResult; virtual;
procedure DestroyEvent(device:TVkDevice;event:TVkEvent;const pAllocator:PVkAllocationCallbacks); virtual;
function GetEventStatus(device:TVkDevice;event:TVkEvent):TVkResult; virtual;
function SetEvent(device:TVkDevice;event:TVkEvent):TVkResult; virtual;
function ResetEvent(device:TVkDevice;event:TVkEvent):TVkResult; virtual;
function CreateQueryPool(device:TVkDevice;const pCreateInfo:PVkQueryPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pQueryPool:PVkQueryPool):TVkResult; virtual;
procedure DestroyQueryPool(device:TVkDevice;queryPool:TVkQueryPool;const pAllocator:PVkAllocationCallbacks); virtual;
function GetQueryPoolResults(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid;stride:TVkDeviceSize;flags:TVkQueryResultFlags):TVkResult; virtual;
procedure ResetQueryPool(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); virtual;
procedure ResetQueryPoolEXT(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); virtual;
function CreateBuffer(device:TVkDevice;const pCreateInfo:PVkBufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pBuffer:PVkBuffer):TVkResult; virtual;
procedure DestroyBuffer(device:TVkDevice;buffer:TVkBuffer;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateBufferView(device:TVkDevice;const pCreateInfo:PVkBufferViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkBufferView):TVkResult; virtual;
procedure DestroyBufferView(device:TVkDevice;bufferView:TVkBufferView;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateImage(device:TVkDevice;const pCreateInfo:PVkImageCreateInfo;const pAllocator:PVkAllocationCallbacks;pImage:PVkImage):TVkResult; virtual;
procedure DestroyImage(device:TVkDevice;image:TVkImage;const pAllocator:PVkAllocationCallbacks); virtual;
procedure GetImageSubresourceLayout(device:TVkDevice;image:TVkImage;const pSubresource:PVkImageSubresource;pLayout:PVkSubresourceLayout); virtual;
function CreateImageView(device:TVkDevice;const pCreateInfo:PVkImageViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkImageView):TVkResult; virtual;
procedure DestroyImageView(device:TVkDevice;imageView:TVkImageView;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateShaderModule(device:TVkDevice;const pCreateInfo:PVkShaderModuleCreateInfo;const pAllocator:PVkAllocationCallbacks;pShaderModule:PVkShaderModule):TVkResult; virtual;
procedure DestroyShaderModule(device:TVkDevice;shaderModule:TVkShaderModule;const pAllocator:PVkAllocationCallbacks); virtual;
function CreatePipelineCache(device:TVkDevice;const pCreateInfo:PVkPipelineCacheCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineCache:PVkPipelineCache):TVkResult; virtual;
procedure DestroyPipelineCache(device:TVkDevice;pipelineCache:TVkPipelineCache;const pAllocator:PVkAllocationCallbacks); virtual;
function GetPipelineCacheData(device:TVkDevice;pipelineCache:TVkPipelineCache;pDataSize:PVkSize;pData:PVkVoid):TVkResult; virtual;
function MergePipelineCaches(device:TVkDevice;dstCache:TVkPipelineCache;srcCacheCount:TVkUInt32;const pSrcCaches:PVkPipelineCache):TVkResult; virtual;
function CreateGraphicsPipelines(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkGraphicsPipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; virtual;
function CreateComputePipelines(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkComputePipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; virtual;
function GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device:TVkDevice;renderpass:TVkRenderPass;pMaxWorkgroupSize:PVkExtent2D):TVkResult; virtual;
procedure DestroyPipeline(device:TVkDevice;pipeline:TVkPipeline;const pAllocator:PVkAllocationCallbacks); virtual;
function CreatePipelineLayout(device:TVkDevice;const pCreateInfo:PVkPipelineLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineLayout:PVkPipelineLayout):TVkResult; virtual;
procedure DestroyPipelineLayout(device:TVkDevice;pipelineLayout:TVkPipelineLayout;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateSampler(device:TVkDevice;const pCreateInfo:PVkSamplerCreateInfo;const pAllocator:PVkAllocationCallbacks;pSampler:PVkSampler):TVkResult; virtual;
procedure DestroySampler(device:TVkDevice;sampler:TVkSampler;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateDescriptorSetLayout(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pSetLayout:PVkDescriptorSetLayout):TVkResult; virtual;
procedure DestroyDescriptorSetLayout(device:TVkDevice;descriptorSetLayout:TVkDescriptorSetLayout;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateDescriptorPool(device:TVkDevice;const pCreateInfo:PVkDescriptorPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorPool:PVkDescriptorPool):TVkResult; virtual;
procedure DestroyDescriptorPool(device:TVkDevice;descriptorPool:TVkDescriptorPool;const pAllocator:PVkAllocationCallbacks); virtual;
function ResetDescriptorPool(device:TVkDevice;descriptorPool:TVkDescriptorPool;flags:TVkDescriptorPoolResetFlags):TVkResult; virtual;
function AllocateDescriptorSets(device:TVkDevice;const pAllocateInfo:PVkDescriptorSetAllocateInfo;pDescriptorSets:PVkDescriptorSet):TVkResult; virtual;
function FreeDescriptorSets(device:TVkDevice;descriptorPool:TVkDescriptorPool;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet):TVkResult; virtual;
procedure UpdateDescriptorSets(device:TVkDevice;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet;descriptorCopyCount:TVkUInt32;const pDescriptorCopies:PVkCopyDescriptorSet); virtual;
function CreateFramebuffer(device:TVkDevice;const pCreateInfo:PVkFramebufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pFramebuffer:PVkFramebuffer):TVkResult; virtual;
procedure DestroyFramebuffer(device:TVkDevice;framebuffer:TVkFramebuffer;const pAllocator:PVkAllocationCallbacks); virtual;
function CreateRenderPass(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; virtual;
procedure DestroyRenderPass(device:TVkDevice;renderPass:TVkRenderPass;const pAllocator:PVkAllocationCallbacks); virtual;
procedure GetRenderAreaGranularity(device:TVkDevice;renderPass:TVkRenderPass;pGranularity:PVkExtent2D); virtual;
function CreateCommandPool(device:TVkDevice;const pCreateInfo:PVkCommandPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pCommandPool:PVkCommandPool):TVkResult; virtual;
procedure DestroyCommandPool(device:TVkDevice;commandPool:TVkCommandPool;const pAllocator:PVkAllocationCallbacks); virtual;
function ResetCommandPool(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolResetFlags):TVkResult; virtual;
function AllocateCommandBuffers(device:TVkDevice;const pAllocateInfo:PVkCommandBufferAllocateInfo;pCommandBuffers:PVkCommandBuffer):TVkResult; virtual;
procedure FreeCommandBuffers(device:TVkDevice;commandPool:TVkCommandPool;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer); virtual;
function BeginCommandBuffer(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkCommandBufferBeginInfo):TVkResult; virtual;
function EndCommandBuffer(commandBuffer:TVkCommandBuffer):TVkResult; virtual;
function ResetCommandBuffer(commandBuffer:TVkCommandBuffer;flags:TVkCommandBufferResetFlags):TVkResult; virtual;
procedure CmdBindPipeline(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline); virtual;
procedure CmdSetViewport(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewports:PVkViewport); virtual;
procedure CmdSetScissor(commandBuffer:TVkCommandBuffer;firstScissor:TVkUInt32;scissorCount:TVkUInt32;const pScissors:PVkRect2D); virtual;
procedure CmdSetLineWidth(commandBuffer:TVkCommandBuffer;lineWidth:TVkFloat); virtual;
procedure CmdSetDepthBias(commandBuffer:TVkCommandBuffer;depthBiasConstantFactor:TVkFloat;depthBiasClamp:TVkFloat;depthBiasSlopeFactor:TVkFloat); virtual;
procedure CmdSetBlendConstants(commandBuffer:TVkCommandBuffer;const blendConstants:TVkFloat); virtual;
procedure CmdSetDepthBounds(commandBuffer:TVkCommandBuffer;minDepthBounds:TVkFloat;maxDepthBounds:TVkFloat); virtual;
procedure CmdSetStencilCompareMask(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;compareMask:TVkUInt32); virtual;
procedure CmdSetStencilWriteMask(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;writeMask:TVkUInt32); virtual;
procedure CmdSetStencilReference(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;reference:TVkUInt32); virtual;
procedure CmdBindDescriptorSets(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;firstSet:TVkUInt32;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet;dynamicOffsetCount:TVkUInt32;const pDynamicOffsets:PVkUInt32); virtual;
procedure CmdBindIndexBuffer(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;indexType:TVkIndexType); virtual;
procedure CmdBindVertexBuffers(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize); virtual;
procedure CmdDraw(commandBuffer:TVkCommandBuffer;vertexCount:TVkUInt32;instanceCount:TVkUInt32;firstVertex:TVkUInt32;firstInstance:TVkUInt32); virtual;
procedure CmdDrawIndexed(commandBuffer:TVkCommandBuffer;indexCount:TVkUInt32;instanceCount:TVkUInt32;firstIndex:TVkUInt32;vertexOffset:TVkInt32;firstInstance:TVkUInt32); virtual;
procedure CmdDrawMultiEXT(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pVertexInfo:PVkMultiDrawInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawMultiIndexedEXT(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pIndexInfo:PVkMultiDrawIndexedInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32;const pVertexOffset:PVkInt32); virtual;
procedure CmdDrawIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndexedIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDispatch(commandBuffer:TVkCommandBuffer;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); virtual;
procedure CmdDispatchIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize); virtual;
procedure CmdSubpassShadingHUAWEI(commandBuffer:TVkCommandBuffer); virtual;
procedure CmdCopyBuffer(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferCopy); virtual;
procedure CmdCopyImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageCopy); virtual;
procedure CmdBlitImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageBlit;filter:TVkFilter); virtual;
procedure CmdCopyBufferToImage(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy); virtual;
procedure CmdCopyImageToBuffer(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy); virtual;
procedure CmdUpdateBuffer(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;dataSize:TVkDeviceSize;const pData:PVkVoid); virtual;
procedure CmdFillBuffer(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;size:TVkDeviceSize;data:TVkUInt32); virtual;
procedure CmdClearColorImage(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pColor:PVkClearColorValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange); virtual;
procedure CmdClearDepthStencilImage(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pDepthStencil:PVkClearDepthStencilValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange); virtual;
procedure CmdClearAttachments(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pAttachments:PVkClearAttachment;rectCount:TVkUInt32;const pRects:PVkClearRect); virtual;
procedure CmdResolveImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageResolve); virtual;
procedure CmdSetEvent(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags); virtual;
procedure CmdResetEvent(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags); virtual;
procedure CmdWaitEvents(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier); virtual;
procedure CmdPipelineBarrier(commandBuffer:TVkCommandBuffer;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;dependencyFlags:TVkDependencyFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier); virtual;
procedure CmdBeginQuery(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags); virtual;
procedure CmdEndQuery(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32); virtual;
procedure CmdBeginConditionalRenderingEXT(commandBuffer:TVkCommandBuffer;const pConditionalRenderingBegin:PVkConditionalRenderingBeginInfoEXT); virtual;
procedure CmdEndConditionalRenderingEXT(commandBuffer:TVkCommandBuffer); virtual;
procedure CmdResetQueryPool(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32); virtual;
procedure CmdWriteTimestamp(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;queryPool:TVkQueryPool;query:TVkUInt32); virtual;
procedure CmdCopyQueryPoolResults(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;stride:TVkDeviceSize;flags:TVkQueryResultFlags); virtual;
procedure CmdPushConstants(commandBuffer:TVkCommandBuffer;layout:TVkPipelineLayout;stageFlags:TVkShaderStageFlags;offset:TVkUInt32;size:TVkUInt32;const pValues:PVkVoid); virtual;
procedure CmdBeginRenderPass(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;contents:TVkSubpassContents); virtual;
procedure CmdNextSubpass(commandBuffer:TVkCommandBuffer;contents:TVkSubpassContents); virtual;
procedure CmdEndRenderPass(commandBuffer:TVkCommandBuffer); virtual;
procedure CmdExecuteCommands(commandBuffer:TVkCommandBuffer;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer); virtual;
{$ifdef Android}
function CreateAndroidSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkAndroidSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
function GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPropertiesKHR):TVkResult; virtual;
function GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlanePropertiesKHR):TVkResult; virtual;
function GetDisplayPlaneSupportedDisplaysKHR(physicalDevice:TVkPhysicalDevice;planeIndex:TVkUInt32;pDisplayCount:PVkUInt32;pDisplays:PVkDisplayKHR):TVkResult; virtual;
function GetDisplayModePropertiesKHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModePropertiesKHR):TVkResult; virtual;
function CreateDisplayModeKHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;const pCreateInfo:PVkDisplayModeCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pMode:PVkDisplayModeKHR):TVkResult; virtual;
function GetDisplayPlaneCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;mode:TVkDisplayModeKHR;planeIndex:TVkUInt32;pCapabilities:PVkDisplayPlaneCapabilitiesKHR):TVkResult; virtual;
function CreateDisplayPlaneSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkDisplaySurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
function CreateSharedSwapchainsKHR(device:TVkDevice;swapchainCount:TVkUInt32;const pCreateInfos:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchains:PVkSwapchainKHR):TVkResult; virtual;
procedure DestroySurfaceKHR(instance:TVkInstance;surface:TVkSurfaceKHR;const pAllocator:PVkAllocationCallbacks); virtual;
function GetPhysicalDeviceSurfaceSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;surface:TVkSurfaceKHR;pSupported:PVkBool32):TVkResult; virtual;
function GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilitiesKHR):TVkResult; virtual;
function GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormatKHR):TVkResult; virtual;
function GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult; virtual;
function CreateSwapchainKHR(device:TVkDevice;const pCreateInfo:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchain:PVkSwapchainKHR):TVkResult; virtual;
procedure DestroySwapchainKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;const pAllocator:PVkAllocationCallbacks); virtual;
function GetSwapchainImagesKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;pSwapchainImageCount:PVkUInt32;pSwapchainImages:PVkImage):TVkResult; virtual;
function AcquireNextImageKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;timeout:TVkUInt64;semaphore:TVkSemaphore;fence:TVkFence;pImageIndex:PVkUInt32):TVkResult; virtual;
function QueuePresentKHR(queue:TVkQueue;const pPresentInfo:PVkPresentInfoKHR):TVkResult; virtual;
function CreateViSurfaceNN(instance:TVkInstance;const pCreateInfo:PVkViSurfaceCreateInfoNN;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$ifdef Wayland}
function CreateWaylandSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkWaylandSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef Wayland}
function GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;display:PVkWaylandDisplay):TVkBool32; virtual;
{$endif}
{$ifdef Windows}
function CreateWin32SurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkWin32SurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef Windows}
function GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32):TVkBool32; virtual;
{$endif}
{$ifdef XLIB}
function CreateXlibSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkXlibSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef XLIB}
function GetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dpy:PVkXLIBDisplay;visualID:TVkXLIBVisualID):TVkBool32; virtual;
{$endif}
{$ifdef XCB}
function CreateXcbSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkXcbSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef XCB}
function GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;connection:PVkXCBConnection;visual_id:TVkXCBVisualID):TVkBool32; virtual;
{$endif}
{$ifdef DirectFB}
function CreateDirectFBSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkDirectFBSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef DirectFB}
function GetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dfb:PVkDirectFBIDirectFB):TVkBool32; virtual;
{$endif}
{$ifdef Fuchsia}
function CreateImagePipeSurfaceFUCHSIA(instance:TVkInstance;const pCreateInfo:PVkImagePipeSurfaceCreateInfoFUCHSIA;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
function CreateStreamDescriptorSurfaceGGP(instance:TVkInstance;const pCreateInfo:PVkStreamDescriptorSurfaceCreateInfoGGP;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$ifdef QNX}
function CreateScreenSurfaceQNX(instance:TVkInstance;const pCreateInfo:PVkScreenSurfaceCreateInfoQNX;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef QNX}
function GetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;window:PVkQNXScreenWindow):TVkBool32; virtual;
{$endif}
function CreateDebugReportCallbackEXT(instance:TVkInstance;const pCreateInfo:PVkDebugReportCallbackCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pCallback:PVkDebugReportCallbackEXT):TVkResult; virtual;
procedure DestroyDebugReportCallbackEXT(instance:TVkInstance;callback:TVkDebugReportCallbackEXT;const pAllocator:PVkAllocationCallbacks); virtual;
procedure DebugReportMessageEXT(instance:TVkInstance;flags:TVkDebugReportFlagsEXT;objectType:TVkDebugReportObjectTypeEXT;object_:TVkUInt64;location:TVkSize;messageCode:TVkInt32;const pLayerPrefix:PVkChar;const pMessage:PVkChar); virtual;
function DebugMarkerSetObjectNameEXT(device:TVkDevice;const pNameInfo:PVkDebugMarkerObjectNameInfoEXT):TVkResult; virtual;
function DebugMarkerSetObjectTagEXT(device:TVkDevice;const pTagInfo:PVkDebugMarkerObjectTagInfoEXT):TVkResult; virtual;
procedure CmdDebugMarkerBeginEXT(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT); virtual;
procedure CmdDebugMarkerEndEXT(commandBuffer:TVkCommandBuffer); virtual;
procedure CmdDebugMarkerInsertEXT(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT); virtual;
function GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;externalHandleType:TVkExternalMemoryHandleTypeFlagsNV;pExternalImageFormatProperties:PVkExternalImageFormatPropertiesNV):TVkResult; virtual;
{$ifdef Windows}
function GetMemoryWin32HandleNV(device:TVkDevice;memory:TVkDeviceMemory;handleType:TVkExternalMemoryHandleTypeFlagsNV;pHandle:PHANDLE):TVkResult; virtual;
{$endif}
procedure CmdExecuteGeneratedCommandsNV(commandBuffer:TVkCommandBuffer;isPreprocessed:TVkBool32;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV); virtual;
procedure CmdPreprocessGeneratedCommandsNV(commandBuffer:TVkCommandBuffer;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV); virtual;
procedure CmdBindPipelineShaderGroupNV(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline;groupIndex:TVkUInt32); virtual;
procedure GetGeneratedCommandsMemoryRequirementsNV(device:TVkDevice;const pInfo:PVkGeneratedCommandsMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2); virtual;
function CreateIndirectCommandsLayoutNV(device:TVkDevice;const pCreateInfo:PVkIndirectCommandsLayoutCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pIndirectCommandsLayout:PVkIndirectCommandsLayoutNV):TVkResult; virtual;
procedure DestroyIndirectCommandsLayoutNV(device:TVkDevice;indirectCommandsLayout:TVkIndirectCommandsLayoutNV;const pAllocator:PVkAllocationCallbacks); virtual;
procedure GetPhysicalDeviceFeatures2(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2); virtual;
procedure GetPhysicalDeviceFeatures2KHR(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2); virtual;
procedure GetPhysicalDeviceProperties2(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2); virtual;
procedure GetPhysicalDeviceProperties2KHR(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2); virtual;
procedure GetPhysicalDeviceFormatProperties2(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2); virtual;
procedure GetPhysicalDeviceFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2); virtual;
function GetPhysicalDeviceImageFormatProperties2(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult; virtual;
function GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult; virtual;
procedure GetPhysicalDeviceQueueFamilyProperties2(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2); virtual;
procedure GetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2); virtual;
procedure GetPhysicalDeviceMemoryProperties2(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2); virtual;
procedure GetPhysicalDeviceMemoryProperties2KHR(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2); virtual;
procedure GetPhysicalDeviceSparseImageFormatProperties2(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2); virtual;
procedure GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2); virtual;
procedure CmdPushDescriptorSetKHR(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;set_:TVkUInt32;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet); virtual;
procedure TrimCommandPool(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags); virtual;
procedure TrimCommandPoolKHR(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags); virtual;
procedure GetPhysicalDeviceExternalBufferProperties(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties); virtual;
procedure GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties); virtual;
{$ifdef Windows}
function GetMemoryWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkMemoryGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; virtual;
{$endif}
{$ifdef Windows}
function GetMemoryWin32HandlePropertiesKHR(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;handle:THANDLE;pMemoryWin32HandleProperties:PVkMemoryWin32HandlePropertiesKHR):TVkResult; virtual;
{$endif}
function GetMemoryFdKHR(device:TVkDevice;const pGetFdInfo:PVkMemoryGetFdInfoKHR;pFd:PVkInt32):TVkResult; virtual;
function GetMemoryFdPropertiesKHR(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;fd:TVkInt32;pMemoryFdProperties:PVkMemoryFdPropertiesKHR):TVkResult; virtual;
{$ifdef Fuchsia}
function GetMemoryZirconHandleFUCHSIA(device:TVkDevice;const pGetZirconHandleInfo:PVkMemoryGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult; virtual;
{$endif}
{$ifdef Fuchsia}
function GetMemoryZirconHandlePropertiesFUCHSIA(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;zirconHandle:TVkFuchsiaZXHandle;pMemoryZirconHandleProperties:PVkMemoryZirconHandlePropertiesFUCHSIA):TVkResult; virtual;
{$endif}
function GetMemoryRemoteAddressNV(device:TVkDevice;const pMemoryGetRemoteAddressInfo:PVkMemoryGetRemoteAddressInfoNV;pAddress:PVkRemoteAddressNV):TVkResult; virtual;
procedure GetPhysicalDeviceExternalSemaphoreProperties(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties); virtual;
procedure GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties); virtual;
{$ifdef Windows}
function GetSemaphoreWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkSemaphoreGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; virtual;
{$endif}
{$ifdef Windows}
function ImportSemaphoreWin32HandleKHR(device:TVkDevice;const pImportSemaphoreWin32HandleInfo:PVkImportSemaphoreWin32HandleInfoKHR):TVkResult; virtual;
{$endif}
function GetSemaphoreFdKHR(device:TVkDevice;const pGetFdInfo:PVkSemaphoreGetFdInfoKHR;pFd:PVkInt32):TVkResult; virtual;
function ImportSemaphoreFdKHR(device:TVkDevice;const pImportSemaphoreFdInfo:PVkImportSemaphoreFdInfoKHR):TVkResult; virtual;
{$ifdef Fuchsia}
function GetSemaphoreZirconHandleFUCHSIA(device:TVkDevice;const pGetZirconHandleInfo:PVkSemaphoreGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult; virtual;
{$endif}
{$ifdef Fuchsia}
function ImportSemaphoreZirconHandleFUCHSIA(device:TVkDevice;const pImportSemaphoreZirconHandleInfo:PVkImportSemaphoreZirconHandleInfoFUCHSIA):TVkResult; virtual;
{$endif}
procedure GetPhysicalDeviceExternalFenceProperties(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties); virtual;
procedure GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties); virtual;
{$ifdef Windows}
function GetFenceWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkFenceGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult; virtual;
{$endif}
{$ifdef Windows}
function ImportFenceWin32HandleKHR(device:TVkDevice;const pImportFenceWin32HandleInfo:PVkImportFenceWin32HandleInfoKHR):TVkResult; virtual;
{$endif}
function GetFenceFdKHR(device:TVkDevice;const pGetFdInfo:PVkFenceGetFdInfoKHR;pFd:PVkInt32):TVkResult; virtual;
function ImportFenceFdKHR(device:TVkDevice;const pImportFenceFdInfo:PVkImportFenceFdInfoKHR):TVkResult; virtual;
function ReleaseDisplayEXT(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult; virtual;
{$ifdef XLIB}
function AcquireXlibDisplayEXT(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;display:TVkDisplayKHR):TVkResult; virtual;
{$endif}
{$ifdef RandR}
function GetRandROutputDisplayEXT(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;rrOutput:TRROutput;pDisplay:PVkDisplayKHR):TVkResult; virtual;
{$endif}
function AcquireWinrtDisplayNV(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult; virtual;
function GetWinrtDisplayNV(physicalDevice:TVkPhysicalDevice;deviceRelativeId:TVkUInt32;pDisplay:PVkDisplayKHR):TVkResult; virtual;
function DisplayPowerControlEXT(device:TVkDevice;display:TVkDisplayKHR;const pDisplayPowerInfo:PVkDisplayPowerInfoEXT):TVkResult; virtual;
function RegisterDeviceEventEXT(device:TVkDevice;const pDeviceEventInfo:PVkDeviceEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; virtual;
function RegisterDisplayEventEXT(device:TVkDevice;display:TVkDisplayKHR;const pDisplayEventInfo:PVkDisplayEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult; virtual;
function GetSwapchainCounterEXT(device:TVkDevice;swapchain:TVkSwapchainKHR;counter:TVkSurfaceCounterFlagBitsEXT;pCounterValue:PVkUInt64):TVkResult; virtual;
function GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilities2EXT):TVkResult; virtual;
function EnumeratePhysicalDeviceGroups(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult; virtual;
function EnumeratePhysicalDeviceGroupsKHR(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult; virtual;
procedure GetDeviceGroupPeerMemoryFeatures(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags); virtual;
procedure GetDeviceGroupPeerMemoryFeaturesKHR(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags); virtual;
function BindBufferMemory2(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult; virtual;
function BindBufferMemory2KHR(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult; virtual;
function BindImageMemory2(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult; virtual;
function BindImageMemory2KHR(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult; virtual;
procedure CmdSetDeviceMask(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32); virtual;
procedure CmdSetDeviceMaskKHR(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32); virtual;
function GetDeviceGroupPresentCapabilitiesKHR(device:TVkDevice;pDeviceGroupPresentCapabilities:PVkDeviceGroupPresentCapabilitiesKHR):TVkResult; virtual;
function GetDeviceGroupSurfacePresentModesKHR(device:TVkDevice;surface:TVkSurfaceKHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult; virtual;
function AcquireNextImage2KHR(device:TVkDevice;const pAcquireInfo:PVkAcquireNextImageInfoKHR;pImageIndex:PVkUInt32):TVkResult; virtual;
procedure CmdDispatchBase(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); virtual;
procedure CmdDispatchBaseKHR(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32); virtual;
function GetPhysicalDevicePresentRectanglesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pRectCount:PVkUInt32;pRects:PVkRect2D):TVkResult; virtual;
function CreateDescriptorUpdateTemplate(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult; virtual;
function CreateDescriptorUpdateTemplateKHR(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult; virtual;
procedure DestroyDescriptorUpdateTemplate(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks); virtual;
procedure DestroyDescriptorUpdateTemplateKHR(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks); virtual;
procedure UpdateDescriptorSetWithTemplate(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid); virtual;
procedure UpdateDescriptorSetWithTemplateKHR(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid); virtual;
procedure CmdPushDescriptorSetWithTemplateKHR(commandBuffer:TVkCommandBuffer;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;layout:TVkPipelineLayout;set_:TVkUInt32;const pData:PVkVoid); virtual;
procedure SetHdrMetadataEXT(device:TVkDevice;swapchainCount:TVkUInt32;const pSwapchains:PVkSwapchainKHR;const pMetadata:PVkHdrMetadataEXT); virtual;
function GetSwapchainStatusKHR(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; virtual;
function GetRefreshCycleDurationGOOGLE(device:TVkDevice;swapchain:TVkSwapchainKHR;pDisplayTimingProperties:PVkRefreshCycleDurationGOOGLE):TVkResult; virtual;
function GetPastPresentationTimingGOOGLE(device:TVkDevice;swapchain:TVkSwapchainKHR;pPresentationTimingCount:PVkUInt32;pPresentationTimings:PVkPastPresentationTimingGOOGLE):TVkResult; virtual;
{$ifdef MoltenVK_IOS}
function CreateIOSSurfaceMVK(instance:TVkInstance;const pCreateInfo:PVkIOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
{$ifdef MoltenVK_MacOS}
function CreateMacOSSurfaceMVK(instance:TVkInstance;const pCreateInfo:PVkMacOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
{$endif}
function CreateMetalSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkMetalSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
procedure CmdSetViewportWScalingNV(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewportWScalings:PVkViewportWScalingNV); virtual;
procedure CmdSetDiscardRectangleEXT(commandBuffer:TVkCommandBuffer;firstDiscardRectangle:TVkUInt32;discardRectangleCount:TVkUInt32;const pDiscardRectangles:PVkRect2D); virtual;
procedure CmdSetSampleLocationsEXT(commandBuffer:TVkCommandBuffer;const pSampleLocationsInfo:PVkSampleLocationsInfoEXT); virtual;
procedure GetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice:TVkPhysicalDevice;samples:TVkSampleCountFlagBits;pMultisampleProperties:PVkMultisamplePropertiesEXT); virtual;
function GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceCapabilities:PVkSurfaceCapabilities2KHR):TVkResult; virtual;
function GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormat2KHR):TVkResult; virtual;
function GetPhysicalDeviceDisplayProperties2KHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayProperties2KHR):TVkResult; virtual;
function GetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlaneProperties2KHR):TVkResult; virtual;
function GetDisplayModeProperties2KHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModeProperties2KHR):TVkResult; virtual;
function GetDisplayPlaneCapabilities2KHR(physicalDevice:TVkPhysicalDevice;const pDisplayPlaneInfo:PVkDisplayPlaneInfo2KHR;pCapabilities:PVkDisplayPlaneCapabilities2KHR):TVkResult; virtual;
procedure GetBufferMemoryRequirements2(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); virtual;
procedure GetBufferMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); virtual;
procedure GetImageMemoryRequirements2(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); virtual;
procedure GetImageMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2); virtual;
procedure GetImageSparseMemoryRequirements2(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2); virtual;
procedure GetImageSparseMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2); virtual;
function CreateSamplerYcbcrConversion(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult; virtual;
function CreateSamplerYcbcrConversionKHR(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult; virtual;
procedure DestroySamplerYcbcrConversion(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks); virtual;
procedure DestroySamplerYcbcrConversionKHR(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks); virtual;
procedure GetDeviceQueue2(device:TVkDevice;const pQueueInfo:PVkDeviceQueueInfo2;pQueue:PVkQueue); virtual;
function CreateValidationCacheEXT(device:TVkDevice;const pCreateInfo:PVkValidationCacheCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pValidationCache:PVkValidationCacheEXT):TVkResult; virtual;
procedure DestroyValidationCacheEXT(device:TVkDevice;validationCache:TVkValidationCacheEXT;const pAllocator:PVkAllocationCallbacks); virtual;
function GetValidationCacheDataEXT(device:TVkDevice;validationCache:TVkValidationCacheEXT;pDataSize:PVkSize;pData:PVkVoid):TVkResult; virtual;
function MergeValidationCachesEXT(device:TVkDevice;dstCache:TVkValidationCacheEXT;srcCacheCount:TVkUInt32;const pSrcCaches:PVkValidationCacheEXT):TVkResult; virtual;
procedure GetDescriptorSetLayoutSupport(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport); virtual;
procedure GetDescriptorSetLayoutSupportKHR(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport); virtual;
function GetSwapchainGrallocUsageANDROID(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;grallocUsage:PVkInt32):TVkResult; virtual;
{$ifdef Android}
function GetSwapchainGrallocUsage2ANDROID(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;swapchainImageUsage:TVkSwapchainImageUsageFlagsANDROID;grallocConsumerUsage:PVkUInt64;grallocProducerUsage:PVkUInt64):TVkResult; virtual;
{$endif}
function AcquireImageANDROID(device:TVkDevice;image:TVkImage;nativeFenceFd:TVkInt32;semaphore:TVkSemaphore;fence:TVkFence):TVkResult; virtual;
function QueueSignalReleaseImageANDROID(queue:TVkQueue;waitSemaphoreCount:TVkUInt32;const pWaitSemaphores:PVkSemaphore;image:TVkImage;pNativeFenceFd:PVkInt32):TVkResult; virtual;
function GetShaderInfoAMD(device:TVkDevice;pipeline:TVkPipeline;shaderStage:TVkShaderStageFlagBits;infoType:TVkShaderInfoTypeAMD;pInfoSize:PVkSize;pInfo:PVkVoid):TVkResult; virtual;
procedure SetLocalDimmingAMD(device:TVkDevice;swapChain:TVkSwapchainKHR;localDimmingEnable:TVkBool32); virtual;
function GetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice:TVkPhysicalDevice;pTimeDomainCount:PVkUInt32;pTimeDomains:PVkTimeDomainEXT):TVkResult; virtual;
function GetCalibratedTimestampsEXT(device:TVkDevice;timestampCount:TVkUInt32;const pTimestampInfos:PVkCalibratedTimestampInfoEXT;pTimestamps:PVkUInt64;pMaxDeviation:PVkUInt64):TVkResult; virtual;
function SetDebugUtilsObjectNameEXT(device:TVkDevice;const pNameInfo:PVkDebugUtilsObjectNameInfoEXT):TVkResult; virtual;
function SetDebugUtilsObjectTagEXT(device:TVkDevice;const pTagInfo:PVkDebugUtilsObjectTagInfoEXT):TVkResult; virtual;
procedure QueueBeginDebugUtilsLabelEXT(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT); virtual;
procedure QueueEndDebugUtilsLabelEXT(queue:TVkQueue); virtual;
procedure QueueInsertDebugUtilsLabelEXT(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT); virtual;
procedure CmdBeginDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT); virtual;
procedure CmdEndDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer); virtual;
procedure CmdInsertDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT); virtual;
function CreateDebugUtilsMessengerEXT(instance:TVkInstance;const pCreateInfo:PVkDebugUtilsMessengerCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pMessenger:PVkDebugUtilsMessengerEXT):TVkResult; virtual;
procedure DestroyDebugUtilsMessengerEXT(instance:TVkInstance;messenger:TVkDebugUtilsMessengerEXT;const pAllocator:PVkAllocationCallbacks); virtual;
procedure SubmitDebugUtilsMessageEXT(instance:TVkInstance;messageSeverity:TVkDebugUtilsMessageSeverityFlagBitsEXT;messageTypes:TVkDebugUtilsMessageTypeFlagsEXT;const pCallbackData:PVkDebugUtilsMessengerCallbackDataEXT); virtual;
function GetMemoryHostPointerPropertiesEXT(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;const pHostPointer:PVkVoid;pMemoryHostPointerProperties:PVkMemoryHostPointerPropertiesEXT):TVkResult; virtual;
procedure CmdWriteBufferMarkerAMD(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32); virtual;
function CreateRenderPass2(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; virtual;
function CreateRenderPass2KHR(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult; virtual;
procedure CmdBeginRenderPass2(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo); virtual;
procedure CmdBeginRenderPass2KHR(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo); virtual;
procedure CmdNextSubpass2(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo); virtual;
procedure CmdNextSubpass2KHR(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo); virtual;
procedure CmdEndRenderPass2(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo); virtual;
procedure CmdEndRenderPass2KHR(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo); virtual;
function GetSemaphoreCounterValue(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult; virtual;
function GetSemaphoreCounterValueKHR(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult; virtual;
function WaitSemaphores(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult; virtual;
function WaitSemaphoresKHR(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult; virtual;
function SignalSemaphore(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult; virtual;
function SignalSemaphoreKHR(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult; virtual;
{$ifdef Android}
function GetAndroidHardwareBufferPropertiesANDROID(device:TVkDevice;const buffer:PVkAndroidAHardwareBuffer;pProperties:PVkAndroidHardwareBufferPropertiesANDROID):TVkResult; virtual;
{$endif}
{$ifdef Android}
function GetMemoryAndroidHardwareBufferANDROID(device:TVkDevice;const pInfo:PVkMemoryGetAndroidHardwareBufferInfoANDROID;pBuffer:PPVkAndroidAHardwareBuffer):TVkResult; virtual;
{$endif}
procedure CmdDrawIndirectCount(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndirectCountKHR(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndirectCountAMD(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndexedIndirectCount(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndexedIndirectCountKHR(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawIndexedIndirectCountAMD(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdSetCheckpointNV(commandBuffer:TVkCommandBuffer;const pCheckpointMarker:PVkVoid); virtual;
procedure GetQueueCheckpointDataNV(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointDataNV); virtual;
procedure CmdBindTransformFeedbackBuffersEXT(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize); virtual;
procedure CmdBeginTransformFeedbackEXT(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize); virtual;
procedure CmdEndTransformFeedbackEXT(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize); virtual;
procedure CmdBeginQueryIndexedEXT(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags;index:TVkUInt32); virtual;
procedure CmdEndQueryIndexedEXT(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;index:TVkUInt32); virtual;
procedure CmdDrawIndirectByteCountEXT(commandBuffer:TVkCommandBuffer;instanceCount:TVkUInt32;firstInstance:TVkUInt32;counterBuffer:TVkBuffer;counterBufferOffset:TVkDeviceSize;counterOffset:TVkUInt32;vertexStride:TVkUInt32); virtual;
procedure CmdSetExclusiveScissorNV(commandBuffer:TVkCommandBuffer;firstExclusiveScissor:TVkUInt32;exclusiveScissorCount:TVkUInt32;const pExclusiveScissors:PVkRect2D); virtual;
procedure CmdBindShadingRateImageNV(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout); virtual;
procedure CmdSetViewportShadingRatePaletteNV(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pShadingRatePalettes:PVkShadingRatePaletteNV); virtual;
procedure CmdSetCoarseSampleOrderNV(commandBuffer:TVkCommandBuffer;sampleOrderType:TVkCoarseSampleOrderTypeNV;customSampleOrderCount:TVkUInt32;const pCustomSampleOrders:PVkCoarseSampleOrderCustomNV); virtual;
procedure CmdDrawMeshTasksNV(commandBuffer:TVkCommandBuffer;taskCount:TVkUInt32;firstTask:TVkUInt32); virtual;
procedure CmdDrawMeshTasksIndirectNV(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32); virtual;
procedure CmdDrawMeshTasksIndirectCountNV(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32); virtual;
function CompileDeferredNV(device:TVkDevice;pipeline:TVkPipeline;shader:TVkUInt32):TVkResult; virtual;
function CreateAccelerationStructureNV(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureNV):TVkResult; virtual;
procedure CmdBindInvocationMaskHUAWEI(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout); virtual;
procedure DestroyAccelerationStructureKHR(device:TVkDevice;accelerationStructure:TVkAccelerationStructureKHR;const pAllocator:PVkAllocationCallbacks); virtual;
procedure DestroyAccelerationStructureNV(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;const pAllocator:PVkAllocationCallbacks); virtual;
procedure GetAccelerationStructureMemoryRequirementsNV(device:TVkDevice;const pInfo:PVkAccelerationStructureMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2KHR); virtual;
function BindAccelerationStructureMemoryNV(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindAccelerationStructureMemoryInfoNV):TVkResult; virtual;
procedure CmdCopyAccelerationStructureNV(commandBuffer:TVkCommandBuffer;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;mode:TVkCopyAccelerationStructureModeKHR); virtual;
procedure CmdCopyAccelerationStructureKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureInfoKHR); virtual;
function CopyAccelerationStructureKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureInfoKHR):TVkResult; virtual;
procedure CmdCopyAccelerationStructureToMemoryKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR); virtual;
function CopyAccelerationStructureToMemoryKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR):TVkResult; virtual;
procedure CmdCopyMemoryToAccelerationStructureKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR); virtual;
function CopyMemoryToAccelerationStructureKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR):TVkResult; virtual;
procedure CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32); virtual;
procedure CmdWriteAccelerationStructuresPropertiesNV(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureNV;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32); virtual;
procedure CmdBuildAccelerationStructureNV(commandBuffer:TVkCommandBuffer;const pInfo:PVkAccelerationStructureInfoNV;instanceData:TVkBuffer;instanceOffset:TVkDeviceSize;update:TVkBool32;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;scratch:TVkBuffer;scratchOffset:TVkDeviceSize); virtual;
function WriteAccelerationStructuresPropertiesKHR(device:TVkDevice;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;dataSize:TVkSize;pData:PVkVoid;stride:TVkSize):TVkResult; virtual;
procedure CmdTraceRaysKHR(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32); virtual;
procedure CmdTraceRaysNV(commandBuffer:TVkCommandBuffer;raygenShaderBindingTableBuffer:TVkBuffer;raygenShaderBindingOffset:TVkDeviceSize;missShaderBindingTableBuffer:TVkBuffer;missShaderBindingOffset:TVkDeviceSize;missShaderBindingStride:TVkDeviceSize;hitShaderBindingTableBuffer:TVkBuffer;hitShaderBindingOffset:TVkDeviceSize;hitShaderBindingStride:TVkDeviceSize;callableShaderBindingTableBuffer:TVkBuffer;callableShaderBindingOffset:TVkDeviceSize;callableShaderBindingStride:TVkDeviceSize;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32); virtual;
function GetRayTracingShaderGroupHandlesKHR(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; virtual;
function GetRayTracingShaderGroupHandlesNV(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; virtual;
function GetRayTracingCaptureReplayShaderGroupHandlesKHR(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult; virtual;
function GetAccelerationStructureHandleNV(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;dataSize:TVkSize;pData:PVkVoid):TVkResult; virtual;
function CreateRayTracingPipelinesNV(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; virtual;
function CreateRayTracingPipelinesKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult; virtual;
function GetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkCooperativeMatrixPropertiesNV):TVkResult; virtual;
procedure CmdTraceRaysIndirectKHR(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;indirectDeviceAddress:TVkDeviceAddress); virtual;
procedure GetDeviceAccelerationStructureCompatibilityKHR(device:TVkDevice;const pVersionInfo:PVkAccelerationStructureVersionInfoKHR;pCompatibility:PVkAccelerationStructureCompatibilityKHR); virtual;
function GetRayTracingShaderGroupStackSizeKHR(device:TVkDevice;pipeline:TVkPipeline;group:TVkUInt32;groupShader:TVkShaderGroupShaderKHR):TVkDeviceSize; virtual;
procedure CmdSetRayTracingPipelineStackSizeKHR(commandBuffer:TVkCommandBuffer;pipelineStackSize:TVkUInt32); virtual;
function GetImageViewHandleNVX(device:TVkDevice;const pInfo:PVkImageViewHandleInfoNVX):TVkUInt32; virtual;
function GetImageViewAddressNVX(device:TVkDevice;imageView:TVkImageView;pProperties:PVkImageViewAddressPropertiesNVX):TVkResult; virtual;
function GetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult; virtual;
function GetDeviceGroupSurfacePresentModes2EXT(device:TVkDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult; virtual;
function AcquireFullScreenExclusiveModeEXT(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; virtual;
function ReleaseFullScreenExclusiveModeEXT(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult; virtual;
function EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;pCounterCount:PVkUInt32;pCounters:PVkPerformanceCounterKHR;pCounterDescriptions:PVkPerformanceCounterDescriptionKHR):TVkResult; virtual;
procedure GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice:TVkPhysicalDevice;const pPerformanceQueryCreateInfo:PVkQueryPoolPerformanceCreateInfoKHR;pNumPasses:PVkUInt32); virtual;
function AcquireProfilingLockKHR(device:TVkDevice;const pInfo:PVkAcquireProfilingLockInfoKHR):TVkResult; virtual;
procedure ReleaseProfilingLockKHR(device:TVkDevice); virtual;
function GetImageDrmFormatModifierPropertiesEXT(device:TVkDevice;image:TVkImage;pProperties:PVkImageDrmFormatModifierPropertiesEXT):TVkResult; virtual;
function GetBufferOpaqueCaptureAddress(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64; virtual;
function GetBufferOpaqueCaptureAddressKHR(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64; virtual;
function GetBufferDeviceAddress(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; virtual;
function GetBufferDeviceAddressKHR(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; virtual;
function GetBufferDeviceAddressEXT(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress; virtual;
function CreateHeadlessSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkHeadlessSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult; virtual;
function GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice:TVkPhysicalDevice;pCombinationCount:PVkUInt32;pCombinations:PVkFramebufferMixedSamplesCombinationNV):TVkResult; virtual;
function InitializePerformanceApiINTEL(device:TVkDevice;const pInitializeInfo:PVkInitializePerformanceApiInfoINTEL):TVkResult; virtual;
procedure UninitializePerformanceApiINTEL(device:TVkDevice); virtual;
function CmdSetPerformanceMarkerINTEL(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceMarkerInfoINTEL):TVkResult; virtual;
function CmdSetPerformanceStreamMarkerINTEL(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceStreamMarkerInfoINTEL):TVkResult; virtual;
function CmdSetPerformanceOverrideINTEL(commandBuffer:TVkCommandBuffer;const pOverrideInfo:PVkPerformanceOverrideInfoINTEL):TVkResult; virtual;
function AcquirePerformanceConfigurationINTEL(device:TVkDevice;const pAcquireInfo:PVkPerformanceConfigurationAcquireInfoINTEL;pConfiguration:PVkPerformanceConfigurationINTEL):TVkResult; virtual;
function ReleasePerformanceConfigurationINTEL(device:TVkDevice;configuration:TVkPerformanceConfigurationINTEL):TVkResult; virtual;
function QueueSetPerformanceConfigurationINTEL(queue:TVkQueue;configuration:TVkPerformanceConfigurationINTEL):TVkResult; virtual;
function GetPerformanceParameterINTEL(device:TVkDevice;parameter:TVkPerformanceParameterTypeINTEL;pValue:PVkPerformanceValueINTEL):TVkResult; virtual;
function GetDeviceMemoryOpaqueCaptureAddress(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64; virtual;
function GetDeviceMemoryOpaqueCaptureAddressKHR(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64; virtual;
function GetPipelineExecutablePropertiesKHR(device:TVkDevice;const pPipelineInfo:PVkPipelineInfoKHR;pExecutableCount:PVkUInt32;pProperties:PVkPipelineExecutablePropertiesKHR):TVkResult; virtual;
function GetPipelineExecutableStatisticsKHR(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pStatisticCount:PVkUInt32;pStatistics:PVkPipelineExecutableStatisticKHR):TVkResult; virtual;
function GetPipelineExecutableInternalRepresentationsKHR(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pInternalRepresentationCount:PVkUInt32;pInternalRepresentations:PVkPipelineExecutableInternalRepresentationKHR):TVkResult; virtual;
procedure CmdSetLineStippleEXT(commandBuffer:TVkCommandBuffer;lineStippleFactor:TVkUInt32;lineStipplePattern:TVkUInt16); virtual;
function GetPhysicalDeviceToolPropertiesEXT(physicalDevice:TVkPhysicalDevice;pToolCount:PVkUInt32;pToolProperties:PVkPhysicalDeviceToolPropertiesEXT):TVkResult; virtual;
function CreateAccelerationStructureKHR(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureKHR):TVkResult; virtual;
procedure CmdBuildAccelerationStructuresKHR(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR); virtual;
procedure CmdBuildAccelerationStructuresIndirectKHR(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const pIndirectDeviceAddresses:PVkDeviceAddress;const pIndirectStrides:PVkUInt32;const ppMaxPrimitiveCounts:PPVkUInt32); virtual;
function BuildAccelerationStructuresKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR):TVkResult; virtual;
function GetAccelerationStructureDeviceAddressKHR(device:TVkDevice;const pInfo:PVkAccelerationStructureDeviceAddressInfoKHR):TVkDeviceAddress; virtual;
function CreateDeferredOperationKHR(device:TVkDevice;const pAllocator:PVkAllocationCallbacks;pDeferredOperation:PVkDeferredOperationKHR):TVkResult; virtual;
procedure DestroyDeferredOperationKHR(device:TVkDevice;operation:TVkDeferredOperationKHR;const pAllocator:PVkAllocationCallbacks); virtual;
function GetDeferredOperationMaxConcurrencyKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkUInt32; virtual;
function GetDeferredOperationResultKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult; virtual;
function DeferredOperationJoinKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult; virtual;
procedure CmdSetCullModeEXT(commandBuffer:TVkCommandBuffer;cullMode:TVkCullModeFlags); virtual;
procedure CmdSetFrontFaceEXT(commandBuffer:TVkCommandBuffer;frontFace:TVkFrontFace); virtual;
procedure CmdSetPrimitiveTopologyEXT(commandBuffer:TVkCommandBuffer;primitiveTopology:TVkPrimitiveTopology); virtual;
procedure CmdSetViewportWithCountEXT(commandBuffer:TVkCommandBuffer;viewportCount:TVkUInt32;const pViewports:PVkViewport); virtual;
procedure CmdSetScissorWithCountEXT(commandBuffer:TVkCommandBuffer;scissorCount:TVkUInt32;const pScissors:PVkRect2D); virtual;
procedure CmdBindVertexBuffers2EXT(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize;const pStrides:PVkDeviceSize); virtual;
procedure CmdSetDepthTestEnableEXT(commandBuffer:TVkCommandBuffer;depthTestEnable:TVkBool32); virtual;
procedure CmdSetDepthWriteEnableEXT(commandBuffer:TVkCommandBuffer;depthWriteEnable:TVkBool32); virtual;
procedure CmdSetDepthCompareOpEXT(commandBuffer:TVkCommandBuffer;depthCompareOp:TVkCompareOp); virtual;
procedure CmdSetDepthBoundsTestEnableEXT(commandBuffer:TVkCommandBuffer;depthBoundsTestEnable:TVkBool32); virtual;
procedure CmdSetStencilTestEnableEXT(commandBuffer:TVkCommandBuffer;stencilTestEnable:TVkBool32); virtual;
procedure CmdSetStencilOpEXT(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;failOp:TVkStencilOp;passOp:TVkStencilOp;depthFailOp:TVkStencilOp;compareOp:TVkCompareOp); virtual;
procedure CmdSetPatchControlPointsEXT(commandBuffer:TVkCommandBuffer;patchControlPoints:TVkUInt32); virtual;
procedure CmdSetRasterizerDiscardEnableEXT(commandBuffer:TVkCommandBuffer;rasterizerDiscardEnable:TVkBool32); virtual;
procedure CmdSetDepthBiasEnableEXT(commandBuffer:TVkCommandBuffer;depthBiasEnable:TVkBool32); virtual;
procedure CmdSetLogicOpEXT(commandBuffer:TVkCommandBuffer;logicOp:TVkLogicOp); virtual;
procedure CmdSetPrimitiveRestartEnableEXT(commandBuffer:TVkCommandBuffer;primitiveRestartEnable:TVkBool32); virtual;
function CreatePrivateDataSlotEXT(device:TVkDevice;const pCreateInfo:PVkPrivateDataSlotCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pPrivateDataSlot:PVkPrivateDataSlotEXT):TVkResult; virtual;
procedure DestroyPrivateDataSlotEXT(device:TVkDevice;privateDataSlot:TVkPrivateDataSlotEXT;const pAllocator:PVkAllocationCallbacks); virtual;
function SetPrivateDataEXT(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;data:TVkUInt64):TVkResult; virtual;
procedure GetPrivateDataEXT(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;pData:PVkUInt64); virtual;
procedure CmdCopyBuffer2KHR(commandBuffer:TVkCommandBuffer;const pCopyBufferInfo:PVkCopyBufferInfo2KHR); virtual;
procedure CmdCopyImage2KHR(commandBuffer:TVkCommandBuffer;const pCopyImageInfo:PVkCopyImageInfo2KHR); virtual;
procedure CmdBlitImage2KHR(commandBuffer:TVkCommandBuffer;const pBlitImageInfo:PVkBlitImageInfo2KHR); virtual;
procedure CmdCopyBufferToImage2KHR(commandBuffer:TVkCommandBuffer;const pCopyBufferToImageInfo:PVkCopyBufferToImageInfo2KHR); virtual;
procedure CmdCopyImageToBuffer2KHR(commandBuffer:TVkCommandBuffer;const pCopyImageToBufferInfo:PVkCopyImageToBufferInfo2KHR); virtual;
procedure CmdResolveImage2KHR(commandBuffer:TVkCommandBuffer;const pResolveImageInfo:PVkResolveImageInfo2KHR); virtual;
procedure CmdSetFragmentShadingRateKHR(commandBuffer:TVkCommandBuffer;const pFragmentSize:PVkExtent2D;const combinerOps:TVkFragmentShadingRateCombinerOpKHR); virtual;
function GetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice:TVkPhysicalDevice;pFragmentShadingRateCount:PVkUInt32;pFragmentShadingRates:PVkPhysicalDeviceFragmentShadingRateKHR):TVkResult; virtual;
procedure CmdSetFragmentShadingRateEnumNV(commandBuffer:TVkCommandBuffer;shadingRate:TVkFragmentShadingRateNV;const combinerOps:TVkFragmentShadingRateCombinerOpKHR); virtual;
procedure GetAccelerationStructureBuildSizesKHR(device:TVkDevice;buildType:TVkAccelerationStructureBuildTypeKHR;const pBuildInfo:PVkAccelerationStructureBuildGeometryInfoKHR;const pMaxPrimitiveCounts:PVkUInt32;pSizeInfo:PVkAccelerationStructureBuildSizesInfoKHR); virtual;
procedure CmdSetVertexInputEXT(commandBuffer:TVkCommandBuffer;vertexBindingDescriptionCount:TVkUInt32;const pVertexBindingDescriptions:PVkVertexInputBindingDescription2EXT;vertexAttributeDescriptionCount:TVkUInt32;const pVertexAttributeDescriptions:PVkVertexInputAttributeDescription2EXT); virtual;
procedure CmdSetColorWriteEnableEXT(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pColorWriteEnables:PVkBool32); virtual;
procedure CmdSetEvent2KHR(commandBuffer:TVkCommandBuffer;event:TVkEvent;const pDependencyInfo:PVkDependencyInfoKHR); virtual;
procedure CmdResetEvent2KHR(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags2KHR); virtual;
procedure CmdWaitEvents2KHR(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;const pDependencyInfos:PVkDependencyInfoKHR); virtual;
procedure CmdPipelineBarrier2KHR(commandBuffer:TVkCommandBuffer;const pDependencyInfo:PVkDependencyInfoKHR); virtual;
function QueueSubmit2KHR(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo2KHR;fence:TVkFence):TVkResult; virtual;
procedure CmdWriteTimestamp2KHR(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;queryPool:TVkQueryPool;query:TVkUInt32); virtual;
procedure CmdWriteBufferMarker2AMD(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32); virtual;
procedure GetQueueCheckpointData2NV(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointData2NV); virtual;
{$ifdef VkVideo}
function GetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;const pVideoProfile:PVkVideoProfileKHR;pCapabilities:PVkVideoCapabilitiesKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
function GetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice:TVkPhysicalDevice;const pVideoFormatInfo:PVkPhysicalDeviceVideoFormatInfoKHR;pVideoFormatPropertyCount:PVkUInt32;pVideoFormatProperties:PVkVideoFormatPropertiesKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
function CreateVideoSessionKHR(device:TVkDevice;const pCreateInfo:PVkVideoSessionCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSession:PVkVideoSessionKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
procedure DestroyVideoSessionKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;const pAllocator:PVkAllocationCallbacks); virtual;
{$endif}
{$ifdef VkVideo}
function CreateVideoSessionParametersKHR(device:TVkDevice;const pCreateInfo:PVkVideoSessionParametersCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSessionParameters:PVkVideoSessionParametersKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
function UpdateVideoSessionParametersKHR(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pUpdateInfo:PVkVideoSessionParametersUpdateInfoKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
procedure DestroyVideoSessionParametersKHR(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pAllocator:PVkAllocationCallbacks); virtual;
{$endif}
{$ifdef VkVideo}
function GetVideoSessionMemoryRequirementsKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;pVideoSessionMemoryRequirementsCount:PVkUInt32;pVideoSessionMemoryRequirements:PVkVideoGetMemoryPropertiesKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
function BindVideoSessionMemoryKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;videoSessionBindMemoryCount:TVkUInt32;const pVideoSessionBindMemories:PVkVideoBindMemoryKHR):TVkResult; virtual;
{$endif}
{$ifdef VkVideo}
procedure CmdDecodeVideoKHR(commandBuffer:TVkCommandBuffer;const pFrameInfo:PVkVideoDecodeInfoKHR); virtual;
{$endif}
{$ifdef VkVideo}
procedure CmdBeginVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkVideoBeginCodingInfoKHR); virtual;
{$endif}
{$ifdef VkVideo}
procedure CmdControlVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pCodingControlInfo:PVkVideoCodingControlInfoKHR); virtual;
{$endif}
{$ifdef VkVideo}
procedure CmdEndVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pEndCodingInfo:PVkVideoEndCodingInfoKHR); virtual;
{$endif}
{$ifdef VkVideo}
procedure CmdEncodeVideoKHR(commandBuffer:TVkCommandBuffer;const pEncodeInfo:PVkVideoEncodeInfoKHR); virtual;
{$endif}
function CreateCuModuleNVX(device:TVkDevice;const pCreateInfo:PVkCuModuleCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pModule:PVkCuModuleNVX):TVkResult; virtual;
function CreateCuFunctionNVX(device:TVkDevice;const pCreateInfo:PVkCuFunctionCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pFunction:PVkCuFunctionNVX):TVkResult; virtual;
procedure DestroyCuModuleNVX(device:TVkDevice;module:TVkCuModuleNVX;const pAllocator:PVkAllocationCallbacks); virtual;
procedure DestroyCuFunctionNVX(device:TVkDevice;function_:TVkCuFunctionNVX;const pAllocator:PVkAllocationCallbacks); virtual;
procedure CmdCuLaunchKernelNVX(commandBuffer:TVkCommandBuffer;const pLaunchInfo:PVkCuLaunchInfoNVX); virtual;
function AcquireDrmDisplayEXT(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;display:TVkDisplayKHR):TVkResult; virtual;
function GetDrmDisplayEXT(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;connectorId:TVkUInt32;display:PVkDisplayKHR):TVkResult; virtual;
function WaitForPresentKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;presentId:TVkUInt64;timeout:TVkUInt64):TVkResult; virtual;
property Commands:TVulkanCommands read fCommands;
end;
var LibVulkan:pointer=nil;
vk:TVulkan=nil;
vkCreateInstance:TvkCreateInstance=nil;
vkDestroyInstance:TvkDestroyInstance=nil;
vkEnumeratePhysicalDevices:TvkEnumeratePhysicalDevices=nil;
vkGetDeviceProcAddr:TvkGetDeviceProcAddr=nil;
vkGetInstanceProcAddr:TvkGetInstanceProcAddr=nil;
vkGetPhysicalDeviceProperties:TvkGetPhysicalDeviceProperties=nil;
vkGetPhysicalDeviceQueueFamilyProperties:TvkGetPhysicalDeviceQueueFamilyProperties=nil;
vkGetPhysicalDeviceMemoryProperties:TvkGetPhysicalDeviceMemoryProperties=nil;
vkGetPhysicalDeviceFeatures:TvkGetPhysicalDeviceFeatures=nil;
vkGetPhysicalDeviceFormatProperties:TvkGetPhysicalDeviceFormatProperties=nil;
vkGetPhysicalDeviceImageFormatProperties:TvkGetPhysicalDeviceImageFormatProperties=nil;
vkCreateDevice:TvkCreateDevice=nil;
vkDestroyDevice:TvkDestroyDevice=nil;
vkEnumerateInstanceVersion:TvkEnumerateInstanceVersion=nil;
vkEnumerateInstanceLayerProperties:TvkEnumerateInstanceLayerProperties=nil;
vkEnumerateInstanceExtensionProperties:TvkEnumerateInstanceExtensionProperties=nil;
vkEnumerateDeviceLayerProperties:TvkEnumerateDeviceLayerProperties=nil;
vkEnumerateDeviceExtensionProperties:TvkEnumerateDeviceExtensionProperties=nil;
vkGetDeviceQueue:TvkGetDeviceQueue=nil;
vkQueueSubmit:TvkQueueSubmit=nil;
vkQueueWaitIdle:TvkQueueWaitIdle=nil;
vkDeviceWaitIdle:TvkDeviceWaitIdle=nil;
vkAllocateMemory:TvkAllocateMemory=nil;
vkFreeMemory:TvkFreeMemory=nil;
vkMapMemory:TvkMapMemory=nil;
vkUnmapMemory:TvkUnmapMemory=nil;
vkFlushMappedMemoryRanges:TvkFlushMappedMemoryRanges=nil;
vkInvalidateMappedMemoryRanges:TvkInvalidateMappedMemoryRanges=nil;
vkGetDeviceMemoryCommitment:TvkGetDeviceMemoryCommitment=nil;
vkGetBufferMemoryRequirements:TvkGetBufferMemoryRequirements=nil;
vkBindBufferMemory:TvkBindBufferMemory=nil;
vkGetImageMemoryRequirements:TvkGetImageMemoryRequirements=nil;
vkBindImageMemory:TvkBindImageMemory=nil;
vkGetImageSparseMemoryRequirements:TvkGetImageSparseMemoryRequirements=nil;
vkGetPhysicalDeviceSparseImageFormatProperties:TvkGetPhysicalDeviceSparseImageFormatProperties=nil;
vkQueueBindSparse:TvkQueueBindSparse=nil;
vkCreateFence:TvkCreateFence=nil;
vkDestroyFence:TvkDestroyFence=nil;
vkResetFences:TvkResetFences=nil;
vkGetFenceStatus:TvkGetFenceStatus=nil;
vkWaitForFences:TvkWaitForFences=nil;
vkCreateSemaphore:TvkCreateSemaphore=nil;
vkDestroySemaphore:TvkDestroySemaphore=nil;
vkCreateEvent:TvkCreateEvent=nil;
vkDestroyEvent:TvkDestroyEvent=nil;
vkGetEventStatus:TvkGetEventStatus=nil;
vkSetEvent:TvkSetEvent=nil;
vkResetEvent:TvkResetEvent=nil;
vkCreateQueryPool:TvkCreateQueryPool=nil;
vkDestroyQueryPool:TvkDestroyQueryPool=nil;
vkGetQueryPoolResults:TvkGetQueryPoolResults=nil;
vkResetQueryPool:TvkResetQueryPool=nil;
vkResetQueryPoolEXT:TvkResetQueryPoolEXT=nil;
vkCreateBuffer:TvkCreateBuffer=nil;
vkDestroyBuffer:TvkDestroyBuffer=nil;
vkCreateBufferView:TvkCreateBufferView=nil;
vkDestroyBufferView:TvkDestroyBufferView=nil;
vkCreateImage:TvkCreateImage=nil;
vkDestroyImage:TvkDestroyImage=nil;
vkGetImageSubresourceLayout:TvkGetImageSubresourceLayout=nil;
vkCreateImageView:TvkCreateImageView=nil;
vkDestroyImageView:TvkDestroyImageView=nil;
vkCreateShaderModule:TvkCreateShaderModule=nil;
vkDestroyShaderModule:TvkDestroyShaderModule=nil;
vkCreatePipelineCache:TvkCreatePipelineCache=nil;
vkDestroyPipelineCache:TvkDestroyPipelineCache=nil;
vkGetPipelineCacheData:TvkGetPipelineCacheData=nil;
vkMergePipelineCaches:TvkMergePipelineCaches=nil;
vkCreateGraphicsPipelines:TvkCreateGraphicsPipelines=nil;
vkCreateComputePipelines:TvkCreateComputePipelines=nil;
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:TvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI=nil;
vkDestroyPipeline:TvkDestroyPipeline=nil;
vkCreatePipelineLayout:TvkCreatePipelineLayout=nil;
vkDestroyPipelineLayout:TvkDestroyPipelineLayout=nil;
vkCreateSampler:TvkCreateSampler=nil;
vkDestroySampler:TvkDestroySampler=nil;
vkCreateDescriptorSetLayout:TvkCreateDescriptorSetLayout=nil;
vkDestroyDescriptorSetLayout:TvkDestroyDescriptorSetLayout=nil;
vkCreateDescriptorPool:TvkCreateDescriptorPool=nil;
vkDestroyDescriptorPool:TvkDestroyDescriptorPool=nil;
vkResetDescriptorPool:TvkResetDescriptorPool=nil;
vkAllocateDescriptorSets:TvkAllocateDescriptorSets=nil;
vkFreeDescriptorSets:TvkFreeDescriptorSets=nil;
vkUpdateDescriptorSets:TvkUpdateDescriptorSets=nil;
vkCreateFramebuffer:TvkCreateFramebuffer=nil;
vkDestroyFramebuffer:TvkDestroyFramebuffer=nil;
vkCreateRenderPass:TvkCreateRenderPass=nil;
vkDestroyRenderPass:TvkDestroyRenderPass=nil;
vkGetRenderAreaGranularity:TvkGetRenderAreaGranularity=nil;
vkCreateCommandPool:TvkCreateCommandPool=nil;
vkDestroyCommandPool:TvkDestroyCommandPool=nil;
vkResetCommandPool:TvkResetCommandPool=nil;
vkAllocateCommandBuffers:TvkAllocateCommandBuffers=nil;
vkFreeCommandBuffers:TvkFreeCommandBuffers=nil;
vkBeginCommandBuffer:TvkBeginCommandBuffer=nil;
vkEndCommandBuffer:TvkEndCommandBuffer=nil;
vkResetCommandBuffer:TvkResetCommandBuffer=nil;
vkCmdBindPipeline:TvkCmdBindPipeline=nil;
vkCmdSetViewport:TvkCmdSetViewport=nil;
vkCmdSetScissor:TvkCmdSetScissor=nil;
vkCmdSetLineWidth:TvkCmdSetLineWidth=nil;
vkCmdSetDepthBias:TvkCmdSetDepthBias=nil;
vkCmdSetBlendConstants:TvkCmdSetBlendConstants=nil;
vkCmdSetDepthBounds:TvkCmdSetDepthBounds=nil;
vkCmdSetStencilCompareMask:TvkCmdSetStencilCompareMask=nil;
vkCmdSetStencilWriteMask:TvkCmdSetStencilWriteMask=nil;
vkCmdSetStencilReference:TvkCmdSetStencilReference=nil;
vkCmdBindDescriptorSets:TvkCmdBindDescriptorSets=nil;
vkCmdBindIndexBuffer:TvkCmdBindIndexBuffer=nil;
vkCmdBindVertexBuffers:TvkCmdBindVertexBuffers=nil;
vkCmdDraw:TvkCmdDraw=nil;
vkCmdDrawIndexed:TvkCmdDrawIndexed=nil;
vkCmdDrawMultiEXT:TvkCmdDrawMultiEXT=nil;
vkCmdDrawMultiIndexedEXT:TvkCmdDrawMultiIndexedEXT=nil;
vkCmdDrawIndirect:TvkCmdDrawIndirect=nil;
vkCmdDrawIndexedIndirect:TvkCmdDrawIndexedIndirect=nil;
vkCmdDispatch:TvkCmdDispatch=nil;
vkCmdDispatchIndirect:TvkCmdDispatchIndirect=nil;
vkCmdSubpassShadingHUAWEI:TvkCmdSubpassShadingHUAWEI=nil;
vkCmdCopyBuffer:TvkCmdCopyBuffer=nil;
vkCmdCopyImage:TvkCmdCopyImage=nil;
vkCmdBlitImage:TvkCmdBlitImage=nil;
vkCmdCopyBufferToImage:TvkCmdCopyBufferToImage=nil;
vkCmdCopyImageToBuffer:TvkCmdCopyImageToBuffer=nil;
vkCmdUpdateBuffer:TvkCmdUpdateBuffer=nil;
vkCmdFillBuffer:TvkCmdFillBuffer=nil;
vkCmdClearColorImage:TvkCmdClearColorImage=nil;
vkCmdClearDepthStencilImage:TvkCmdClearDepthStencilImage=nil;
vkCmdClearAttachments:TvkCmdClearAttachments=nil;
vkCmdResolveImage:TvkCmdResolveImage=nil;
vkCmdSetEvent:TvkCmdSetEvent=nil;
vkCmdResetEvent:TvkCmdResetEvent=nil;
vkCmdWaitEvents:TvkCmdWaitEvents=nil;
vkCmdPipelineBarrier:TvkCmdPipelineBarrier=nil;
vkCmdBeginQuery:TvkCmdBeginQuery=nil;
vkCmdEndQuery:TvkCmdEndQuery=nil;
vkCmdBeginConditionalRenderingEXT:TvkCmdBeginConditionalRenderingEXT=nil;
vkCmdEndConditionalRenderingEXT:TvkCmdEndConditionalRenderingEXT=nil;
vkCmdResetQueryPool:TvkCmdResetQueryPool=nil;
vkCmdWriteTimestamp:TvkCmdWriteTimestamp=nil;
vkCmdCopyQueryPoolResults:TvkCmdCopyQueryPoolResults=nil;
vkCmdPushConstants:TvkCmdPushConstants=nil;
vkCmdBeginRenderPass:TvkCmdBeginRenderPass=nil;
vkCmdNextSubpass:TvkCmdNextSubpass=nil;
vkCmdEndRenderPass:TvkCmdEndRenderPass=nil;
vkCmdExecuteCommands:TvkCmdExecuteCommands=nil;
{$ifdef Android}
vkCreateAndroidSurfaceKHR:TvkCreateAndroidSurfaceKHR=nil;
{$endif}
vkGetPhysicalDeviceDisplayPropertiesKHR:TvkGetPhysicalDeviceDisplayPropertiesKHR=nil;
vkGetPhysicalDeviceDisplayPlanePropertiesKHR:TvkGetPhysicalDeviceDisplayPlanePropertiesKHR=nil;
vkGetDisplayPlaneSupportedDisplaysKHR:TvkGetDisplayPlaneSupportedDisplaysKHR=nil;
vkGetDisplayModePropertiesKHR:TvkGetDisplayModePropertiesKHR=nil;
vkCreateDisplayModeKHR:TvkCreateDisplayModeKHR=nil;
vkGetDisplayPlaneCapabilitiesKHR:TvkGetDisplayPlaneCapabilitiesKHR=nil;
vkCreateDisplayPlaneSurfaceKHR:TvkCreateDisplayPlaneSurfaceKHR=nil;
vkCreateSharedSwapchainsKHR:TvkCreateSharedSwapchainsKHR=nil;
vkDestroySurfaceKHR:TvkDestroySurfaceKHR=nil;
vkGetPhysicalDeviceSurfaceSupportKHR:TvkGetPhysicalDeviceSurfaceSupportKHR=nil;
vkGetPhysicalDeviceSurfaceCapabilitiesKHR:TvkGetPhysicalDeviceSurfaceCapabilitiesKHR=nil;
vkGetPhysicalDeviceSurfaceFormatsKHR:TvkGetPhysicalDeviceSurfaceFormatsKHR=nil;
vkGetPhysicalDeviceSurfacePresentModesKHR:TvkGetPhysicalDeviceSurfacePresentModesKHR=nil;
vkCreateSwapchainKHR:TvkCreateSwapchainKHR=nil;
vkDestroySwapchainKHR:TvkDestroySwapchainKHR=nil;
vkGetSwapchainImagesKHR:TvkGetSwapchainImagesKHR=nil;
vkAcquireNextImageKHR:TvkAcquireNextImageKHR=nil;
vkQueuePresentKHR:TvkQueuePresentKHR=nil;
vkCreateViSurfaceNN:TvkCreateViSurfaceNN=nil;
{$ifdef Wayland}
vkCreateWaylandSurfaceKHR:TvkCreateWaylandSurfaceKHR=nil;
{$endif}
{$ifdef Wayland}
vkGetPhysicalDeviceWaylandPresentationSupportKHR:TvkGetPhysicalDeviceWaylandPresentationSupportKHR=nil;
{$endif}
{$ifdef Windows}
vkCreateWin32SurfaceKHR:TvkCreateWin32SurfaceKHR=nil;
{$endif}
{$ifdef Windows}
vkGetPhysicalDeviceWin32PresentationSupportKHR:TvkGetPhysicalDeviceWin32PresentationSupportKHR=nil;
{$endif}
{$ifdef XLIB}
vkCreateXlibSurfaceKHR:TvkCreateXlibSurfaceKHR=nil;
{$endif}
{$ifdef XLIB}
vkGetPhysicalDeviceXlibPresentationSupportKHR:TvkGetPhysicalDeviceXlibPresentationSupportKHR=nil;
{$endif}
{$ifdef XCB}
vkCreateXcbSurfaceKHR:TvkCreateXcbSurfaceKHR=nil;
{$endif}
{$ifdef XCB}
vkGetPhysicalDeviceXcbPresentationSupportKHR:TvkGetPhysicalDeviceXcbPresentationSupportKHR=nil;
{$endif}
{$ifdef DirectFB}
vkCreateDirectFBSurfaceEXT:TvkCreateDirectFBSurfaceEXT=nil;
{$endif}
{$ifdef DirectFB}
vkGetPhysicalDeviceDirectFBPresentationSupportEXT:TvkGetPhysicalDeviceDirectFBPresentationSupportEXT=nil;
{$endif}
{$ifdef Fuchsia}
vkCreateImagePipeSurfaceFUCHSIA:TvkCreateImagePipeSurfaceFUCHSIA=nil;
{$endif}
vkCreateStreamDescriptorSurfaceGGP:TvkCreateStreamDescriptorSurfaceGGP=nil;
{$ifdef QNX}
vkCreateScreenSurfaceQNX:TvkCreateScreenSurfaceQNX=nil;
{$endif}
{$ifdef QNX}
vkGetPhysicalDeviceScreenPresentationSupportQNX:TvkGetPhysicalDeviceScreenPresentationSupportQNX=nil;
{$endif}
vkCreateDebugReportCallbackEXT:TvkCreateDebugReportCallbackEXT=nil;
vkDestroyDebugReportCallbackEXT:TvkDestroyDebugReportCallbackEXT=nil;
vkDebugReportMessageEXT:TvkDebugReportMessageEXT=nil;
vkDebugMarkerSetObjectNameEXT:TvkDebugMarkerSetObjectNameEXT=nil;
vkDebugMarkerSetObjectTagEXT:TvkDebugMarkerSetObjectTagEXT=nil;
vkCmdDebugMarkerBeginEXT:TvkCmdDebugMarkerBeginEXT=nil;
vkCmdDebugMarkerEndEXT:TvkCmdDebugMarkerEndEXT=nil;
vkCmdDebugMarkerInsertEXT:TvkCmdDebugMarkerInsertEXT=nil;
vkGetPhysicalDeviceExternalImageFormatPropertiesNV:TvkGetPhysicalDeviceExternalImageFormatPropertiesNV=nil;
{$ifdef Windows}
vkGetMemoryWin32HandleNV:TvkGetMemoryWin32HandleNV=nil;
{$endif}
vkCmdExecuteGeneratedCommandsNV:TvkCmdExecuteGeneratedCommandsNV=nil;
vkCmdPreprocessGeneratedCommandsNV:TvkCmdPreprocessGeneratedCommandsNV=nil;
vkCmdBindPipelineShaderGroupNV:TvkCmdBindPipelineShaderGroupNV=nil;
vkGetGeneratedCommandsMemoryRequirementsNV:TvkGetGeneratedCommandsMemoryRequirementsNV=nil;
vkCreateIndirectCommandsLayoutNV:TvkCreateIndirectCommandsLayoutNV=nil;
vkDestroyIndirectCommandsLayoutNV:TvkDestroyIndirectCommandsLayoutNV=nil;
vkGetPhysicalDeviceFeatures2:TvkGetPhysicalDeviceFeatures2=nil;
vkGetPhysicalDeviceFeatures2KHR:TvkGetPhysicalDeviceFeatures2KHR=nil;
vkGetPhysicalDeviceProperties2:TvkGetPhysicalDeviceProperties2=nil;
vkGetPhysicalDeviceProperties2KHR:TvkGetPhysicalDeviceProperties2KHR=nil;
vkGetPhysicalDeviceFormatProperties2:TvkGetPhysicalDeviceFormatProperties2=nil;
vkGetPhysicalDeviceFormatProperties2KHR:TvkGetPhysicalDeviceFormatProperties2KHR=nil;
vkGetPhysicalDeviceImageFormatProperties2:TvkGetPhysicalDeviceImageFormatProperties2=nil;
vkGetPhysicalDeviceImageFormatProperties2KHR:TvkGetPhysicalDeviceImageFormatProperties2KHR=nil;
vkGetPhysicalDeviceQueueFamilyProperties2:TvkGetPhysicalDeviceQueueFamilyProperties2=nil;
vkGetPhysicalDeviceQueueFamilyProperties2KHR:TvkGetPhysicalDeviceQueueFamilyProperties2KHR=nil;
vkGetPhysicalDeviceMemoryProperties2:TvkGetPhysicalDeviceMemoryProperties2=nil;
vkGetPhysicalDeviceMemoryProperties2KHR:TvkGetPhysicalDeviceMemoryProperties2KHR=nil;
vkGetPhysicalDeviceSparseImageFormatProperties2:TvkGetPhysicalDeviceSparseImageFormatProperties2=nil;
vkGetPhysicalDeviceSparseImageFormatProperties2KHR:TvkGetPhysicalDeviceSparseImageFormatProperties2KHR=nil;
vkCmdPushDescriptorSetKHR:TvkCmdPushDescriptorSetKHR=nil;
vkTrimCommandPool:TvkTrimCommandPool=nil;
vkTrimCommandPoolKHR:TvkTrimCommandPoolKHR=nil;
vkGetPhysicalDeviceExternalBufferProperties:TvkGetPhysicalDeviceExternalBufferProperties=nil;
vkGetPhysicalDeviceExternalBufferPropertiesKHR:TvkGetPhysicalDeviceExternalBufferPropertiesKHR=nil;
{$ifdef Windows}
vkGetMemoryWin32HandleKHR:TvkGetMemoryWin32HandleKHR=nil;
{$endif}
{$ifdef Windows}
vkGetMemoryWin32HandlePropertiesKHR:TvkGetMemoryWin32HandlePropertiesKHR=nil;
{$endif}
vkGetMemoryFdKHR:TvkGetMemoryFdKHR=nil;
vkGetMemoryFdPropertiesKHR:TvkGetMemoryFdPropertiesKHR=nil;
{$ifdef Fuchsia}
vkGetMemoryZirconHandleFUCHSIA:TvkGetMemoryZirconHandleFUCHSIA=nil;
{$endif}
{$ifdef Fuchsia}
vkGetMemoryZirconHandlePropertiesFUCHSIA:TvkGetMemoryZirconHandlePropertiesFUCHSIA=nil;
{$endif}
vkGetMemoryRemoteAddressNV:TvkGetMemoryRemoteAddressNV=nil;
vkGetPhysicalDeviceExternalSemaphoreProperties:TvkGetPhysicalDeviceExternalSemaphoreProperties=nil;
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR:TvkGetPhysicalDeviceExternalSemaphorePropertiesKHR=nil;
{$ifdef Windows}
vkGetSemaphoreWin32HandleKHR:TvkGetSemaphoreWin32HandleKHR=nil;
{$endif}
{$ifdef Windows}
vkImportSemaphoreWin32HandleKHR:TvkImportSemaphoreWin32HandleKHR=nil;
{$endif}
vkGetSemaphoreFdKHR:TvkGetSemaphoreFdKHR=nil;
vkImportSemaphoreFdKHR:TvkImportSemaphoreFdKHR=nil;
{$ifdef Fuchsia}
vkGetSemaphoreZirconHandleFUCHSIA:TvkGetSemaphoreZirconHandleFUCHSIA=nil;
{$endif}
{$ifdef Fuchsia}
vkImportSemaphoreZirconHandleFUCHSIA:TvkImportSemaphoreZirconHandleFUCHSIA=nil;
{$endif}
vkGetPhysicalDeviceExternalFenceProperties:TvkGetPhysicalDeviceExternalFenceProperties=nil;
vkGetPhysicalDeviceExternalFencePropertiesKHR:TvkGetPhysicalDeviceExternalFencePropertiesKHR=nil;
{$ifdef Windows}
vkGetFenceWin32HandleKHR:TvkGetFenceWin32HandleKHR=nil;
{$endif}
{$ifdef Windows}
vkImportFenceWin32HandleKHR:TvkImportFenceWin32HandleKHR=nil;
{$endif}
vkGetFenceFdKHR:TvkGetFenceFdKHR=nil;
vkImportFenceFdKHR:TvkImportFenceFdKHR=nil;
vkReleaseDisplayEXT:TvkReleaseDisplayEXT=nil;
{$ifdef XLIB}
vkAcquireXlibDisplayEXT:TvkAcquireXlibDisplayEXT=nil;
{$endif}
{$ifdef RandR}
vkGetRandROutputDisplayEXT:TvkGetRandROutputDisplayEXT=nil;
{$endif}
vkAcquireWinrtDisplayNV:TvkAcquireWinrtDisplayNV=nil;
vkGetWinrtDisplayNV:TvkGetWinrtDisplayNV=nil;
vkDisplayPowerControlEXT:TvkDisplayPowerControlEXT=nil;
vkRegisterDeviceEventEXT:TvkRegisterDeviceEventEXT=nil;
vkRegisterDisplayEventEXT:TvkRegisterDisplayEventEXT=nil;
vkGetSwapchainCounterEXT:TvkGetSwapchainCounterEXT=nil;
vkGetPhysicalDeviceSurfaceCapabilities2EXT:TvkGetPhysicalDeviceSurfaceCapabilities2EXT=nil;
vkEnumeratePhysicalDeviceGroups:TvkEnumeratePhysicalDeviceGroups=nil;
vkEnumeratePhysicalDeviceGroupsKHR:TvkEnumeratePhysicalDeviceGroupsKHR=nil;
vkGetDeviceGroupPeerMemoryFeatures:TvkGetDeviceGroupPeerMemoryFeatures=nil;
vkGetDeviceGroupPeerMemoryFeaturesKHR:TvkGetDeviceGroupPeerMemoryFeaturesKHR=nil;
vkBindBufferMemory2:TvkBindBufferMemory2=nil;
vkBindBufferMemory2KHR:TvkBindBufferMemory2KHR=nil;
vkBindImageMemory2:TvkBindImageMemory2=nil;
vkBindImageMemory2KHR:TvkBindImageMemory2KHR=nil;
vkCmdSetDeviceMask:TvkCmdSetDeviceMask=nil;
vkCmdSetDeviceMaskKHR:TvkCmdSetDeviceMaskKHR=nil;
vkGetDeviceGroupPresentCapabilitiesKHR:TvkGetDeviceGroupPresentCapabilitiesKHR=nil;
vkGetDeviceGroupSurfacePresentModesKHR:TvkGetDeviceGroupSurfacePresentModesKHR=nil;
vkAcquireNextImage2KHR:TvkAcquireNextImage2KHR=nil;
vkCmdDispatchBase:TvkCmdDispatchBase=nil;
vkCmdDispatchBaseKHR:TvkCmdDispatchBaseKHR=nil;
vkGetPhysicalDevicePresentRectanglesKHR:TvkGetPhysicalDevicePresentRectanglesKHR=nil;
vkCreateDescriptorUpdateTemplate:TvkCreateDescriptorUpdateTemplate=nil;
vkCreateDescriptorUpdateTemplateKHR:TvkCreateDescriptorUpdateTemplateKHR=nil;
vkDestroyDescriptorUpdateTemplate:TvkDestroyDescriptorUpdateTemplate=nil;
vkDestroyDescriptorUpdateTemplateKHR:TvkDestroyDescriptorUpdateTemplateKHR=nil;
vkUpdateDescriptorSetWithTemplate:TvkUpdateDescriptorSetWithTemplate=nil;
vkUpdateDescriptorSetWithTemplateKHR:TvkUpdateDescriptorSetWithTemplateKHR=nil;
vkCmdPushDescriptorSetWithTemplateKHR:TvkCmdPushDescriptorSetWithTemplateKHR=nil;
vkSetHdrMetadataEXT:TvkSetHdrMetadataEXT=nil;
vkGetSwapchainStatusKHR:TvkGetSwapchainStatusKHR=nil;
vkGetRefreshCycleDurationGOOGLE:TvkGetRefreshCycleDurationGOOGLE=nil;
vkGetPastPresentationTimingGOOGLE:TvkGetPastPresentationTimingGOOGLE=nil;
{$ifdef MoltenVK_IOS}
vkCreateIOSSurfaceMVK:TvkCreateIOSSurfaceMVK=nil;
{$endif}
{$ifdef MoltenVK_MacOS}
vkCreateMacOSSurfaceMVK:TvkCreateMacOSSurfaceMVK=nil;
{$endif}
vkCreateMetalSurfaceEXT:TvkCreateMetalSurfaceEXT=nil;
vkCmdSetViewportWScalingNV:TvkCmdSetViewportWScalingNV=nil;
vkCmdSetDiscardRectangleEXT:TvkCmdSetDiscardRectangleEXT=nil;
vkCmdSetSampleLocationsEXT:TvkCmdSetSampleLocationsEXT=nil;
vkGetPhysicalDeviceMultisamplePropertiesEXT:TvkGetPhysicalDeviceMultisamplePropertiesEXT=nil;
vkGetPhysicalDeviceSurfaceCapabilities2KHR:TvkGetPhysicalDeviceSurfaceCapabilities2KHR=nil;
vkGetPhysicalDeviceSurfaceFormats2KHR:TvkGetPhysicalDeviceSurfaceFormats2KHR=nil;
vkGetPhysicalDeviceDisplayProperties2KHR:TvkGetPhysicalDeviceDisplayProperties2KHR=nil;
vkGetPhysicalDeviceDisplayPlaneProperties2KHR:TvkGetPhysicalDeviceDisplayPlaneProperties2KHR=nil;
vkGetDisplayModeProperties2KHR:TvkGetDisplayModeProperties2KHR=nil;
vkGetDisplayPlaneCapabilities2KHR:TvkGetDisplayPlaneCapabilities2KHR=nil;
vkGetBufferMemoryRequirements2:TvkGetBufferMemoryRequirements2=nil;
vkGetBufferMemoryRequirements2KHR:TvkGetBufferMemoryRequirements2KHR=nil;
vkGetImageMemoryRequirements2:TvkGetImageMemoryRequirements2=nil;
vkGetImageMemoryRequirements2KHR:TvkGetImageMemoryRequirements2KHR=nil;
vkGetImageSparseMemoryRequirements2:TvkGetImageSparseMemoryRequirements2=nil;
vkGetImageSparseMemoryRequirements2KHR:TvkGetImageSparseMemoryRequirements2KHR=nil;
vkCreateSamplerYcbcrConversion:TvkCreateSamplerYcbcrConversion=nil;
vkCreateSamplerYcbcrConversionKHR:TvkCreateSamplerYcbcrConversionKHR=nil;
vkDestroySamplerYcbcrConversion:TvkDestroySamplerYcbcrConversion=nil;
vkDestroySamplerYcbcrConversionKHR:TvkDestroySamplerYcbcrConversionKHR=nil;
vkGetDeviceQueue2:TvkGetDeviceQueue2=nil;
vkCreateValidationCacheEXT:TvkCreateValidationCacheEXT=nil;
vkDestroyValidationCacheEXT:TvkDestroyValidationCacheEXT=nil;
vkGetValidationCacheDataEXT:TvkGetValidationCacheDataEXT=nil;
vkMergeValidationCachesEXT:TvkMergeValidationCachesEXT=nil;
vkGetDescriptorSetLayoutSupport:TvkGetDescriptorSetLayoutSupport=nil;
vkGetDescriptorSetLayoutSupportKHR:TvkGetDescriptorSetLayoutSupportKHR=nil;
vkGetSwapchainGrallocUsageANDROID:TvkGetSwapchainGrallocUsageANDROID=nil;
{$ifdef Android}
vkGetSwapchainGrallocUsage2ANDROID:TvkGetSwapchainGrallocUsage2ANDROID=nil;
{$endif}
vkAcquireImageANDROID:TvkAcquireImageANDROID=nil;
vkQueueSignalReleaseImageANDROID:TvkQueueSignalReleaseImageANDROID=nil;
vkGetShaderInfoAMD:TvkGetShaderInfoAMD=nil;
vkSetLocalDimmingAMD:TvkSetLocalDimmingAMD=nil;
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT:TvkGetPhysicalDeviceCalibrateableTimeDomainsEXT=nil;
vkGetCalibratedTimestampsEXT:TvkGetCalibratedTimestampsEXT=nil;
vkSetDebugUtilsObjectNameEXT:TvkSetDebugUtilsObjectNameEXT=nil;
vkSetDebugUtilsObjectTagEXT:TvkSetDebugUtilsObjectTagEXT=nil;
vkQueueBeginDebugUtilsLabelEXT:TvkQueueBeginDebugUtilsLabelEXT=nil;
vkQueueEndDebugUtilsLabelEXT:TvkQueueEndDebugUtilsLabelEXT=nil;
vkQueueInsertDebugUtilsLabelEXT:TvkQueueInsertDebugUtilsLabelEXT=nil;
vkCmdBeginDebugUtilsLabelEXT:TvkCmdBeginDebugUtilsLabelEXT=nil;
vkCmdEndDebugUtilsLabelEXT:TvkCmdEndDebugUtilsLabelEXT=nil;
vkCmdInsertDebugUtilsLabelEXT:TvkCmdInsertDebugUtilsLabelEXT=nil;
vkCreateDebugUtilsMessengerEXT:TvkCreateDebugUtilsMessengerEXT=nil;
vkDestroyDebugUtilsMessengerEXT:TvkDestroyDebugUtilsMessengerEXT=nil;
vkSubmitDebugUtilsMessageEXT:TvkSubmitDebugUtilsMessageEXT=nil;
vkGetMemoryHostPointerPropertiesEXT:TvkGetMemoryHostPointerPropertiesEXT=nil;
vkCmdWriteBufferMarkerAMD:TvkCmdWriteBufferMarkerAMD=nil;
vkCreateRenderPass2:TvkCreateRenderPass2=nil;
vkCreateRenderPass2KHR:TvkCreateRenderPass2KHR=nil;
vkCmdBeginRenderPass2:TvkCmdBeginRenderPass2=nil;
vkCmdBeginRenderPass2KHR:TvkCmdBeginRenderPass2KHR=nil;
vkCmdNextSubpass2:TvkCmdNextSubpass2=nil;
vkCmdNextSubpass2KHR:TvkCmdNextSubpass2KHR=nil;
vkCmdEndRenderPass2:TvkCmdEndRenderPass2=nil;
vkCmdEndRenderPass2KHR:TvkCmdEndRenderPass2KHR=nil;
vkGetSemaphoreCounterValue:TvkGetSemaphoreCounterValue=nil;
vkGetSemaphoreCounterValueKHR:TvkGetSemaphoreCounterValueKHR=nil;
vkWaitSemaphores:TvkWaitSemaphores=nil;
vkWaitSemaphoresKHR:TvkWaitSemaphoresKHR=nil;
vkSignalSemaphore:TvkSignalSemaphore=nil;
vkSignalSemaphoreKHR:TvkSignalSemaphoreKHR=nil;
{$ifdef Android}
vkGetAndroidHardwareBufferPropertiesANDROID:TvkGetAndroidHardwareBufferPropertiesANDROID=nil;
{$endif}
{$ifdef Android}
vkGetMemoryAndroidHardwareBufferANDROID:TvkGetMemoryAndroidHardwareBufferANDROID=nil;
{$endif}
vkCmdDrawIndirectCount:TvkCmdDrawIndirectCount=nil;
vkCmdDrawIndirectCountKHR:TvkCmdDrawIndirectCountKHR=nil;
vkCmdDrawIndirectCountAMD:TvkCmdDrawIndirectCountAMD=nil;
vkCmdDrawIndexedIndirectCount:TvkCmdDrawIndexedIndirectCount=nil;
vkCmdDrawIndexedIndirectCountKHR:TvkCmdDrawIndexedIndirectCountKHR=nil;
vkCmdDrawIndexedIndirectCountAMD:TvkCmdDrawIndexedIndirectCountAMD=nil;
vkCmdSetCheckpointNV:TvkCmdSetCheckpointNV=nil;
vkGetQueueCheckpointDataNV:TvkGetQueueCheckpointDataNV=nil;
vkCmdBindTransformFeedbackBuffersEXT:TvkCmdBindTransformFeedbackBuffersEXT=nil;
vkCmdBeginTransformFeedbackEXT:TvkCmdBeginTransformFeedbackEXT=nil;
vkCmdEndTransformFeedbackEXT:TvkCmdEndTransformFeedbackEXT=nil;
vkCmdBeginQueryIndexedEXT:TvkCmdBeginQueryIndexedEXT=nil;
vkCmdEndQueryIndexedEXT:TvkCmdEndQueryIndexedEXT=nil;
vkCmdDrawIndirectByteCountEXT:TvkCmdDrawIndirectByteCountEXT=nil;
vkCmdSetExclusiveScissorNV:TvkCmdSetExclusiveScissorNV=nil;
vkCmdBindShadingRateImageNV:TvkCmdBindShadingRateImageNV=nil;
vkCmdSetViewportShadingRatePaletteNV:TvkCmdSetViewportShadingRatePaletteNV=nil;
vkCmdSetCoarseSampleOrderNV:TvkCmdSetCoarseSampleOrderNV=nil;
vkCmdDrawMeshTasksNV:TvkCmdDrawMeshTasksNV=nil;
vkCmdDrawMeshTasksIndirectNV:TvkCmdDrawMeshTasksIndirectNV=nil;
vkCmdDrawMeshTasksIndirectCountNV:TvkCmdDrawMeshTasksIndirectCountNV=nil;
vkCompileDeferredNV:TvkCompileDeferredNV=nil;
vkCreateAccelerationStructureNV:TvkCreateAccelerationStructureNV=nil;
vkCmdBindInvocationMaskHUAWEI:TvkCmdBindInvocationMaskHUAWEI=nil;
vkDestroyAccelerationStructureKHR:TvkDestroyAccelerationStructureKHR=nil;
vkDestroyAccelerationStructureNV:TvkDestroyAccelerationStructureNV=nil;
vkGetAccelerationStructureMemoryRequirementsNV:TvkGetAccelerationStructureMemoryRequirementsNV=nil;
vkBindAccelerationStructureMemoryNV:TvkBindAccelerationStructureMemoryNV=nil;
vkCmdCopyAccelerationStructureNV:TvkCmdCopyAccelerationStructureNV=nil;
vkCmdCopyAccelerationStructureKHR:TvkCmdCopyAccelerationStructureKHR=nil;
vkCopyAccelerationStructureKHR:TvkCopyAccelerationStructureKHR=nil;
vkCmdCopyAccelerationStructureToMemoryKHR:TvkCmdCopyAccelerationStructureToMemoryKHR=nil;
vkCopyAccelerationStructureToMemoryKHR:TvkCopyAccelerationStructureToMemoryKHR=nil;
vkCmdCopyMemoryToAccelerationStructureKHR:TvkCmdCopyMemoryToAccelerationStructureKHR=nil;
vkCopyMemoryToAccelerationStructureKHR:TvkCopyMemoryToAccelerationStructureKHR=nil;
vkCmdWriteAccelerationStructuresPropertiesKHR:TvkCmdWriteAccelerationStructuresPropertiesKHR=nil;
vkCmdWriteAccelerationStructuresPropertiesNV:TvkCmdWriteAccelerationStructuresPropertiesNV=nil;
vkCmdBuildAccelerationStructureNV:TvkCmdBuildAccelerationStructureNV=nil;
vkWriteAccelerationStructuresPropertiesKHR:TvkWriteAccelerationStructuresPropertiesKHR=nil;
vkCmdTraceRaysKHR:TvkCmdTraceRaysKHR=nil;
vkCmdTraceRaysNV:TvkCmdTraceRaysNV=nil;
vkGetRayTracingShaderGroupHandlesKHR:TvkGetRayTracingShaderGroupHandlesKHR=nil;
vkGetRayTracingShaderGroupHandlesNV:TvkGetRayTracingShaderGroupHandlesNV=nil;
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR:TvkGetRayTracingCaptureReplayShaderGroupHandlesKHR=nil;
vkGetAccelerationStructureHandleNV:TvkGetAccelerationStructureHandleNV=nil;
vkCreateRayTracingPipelinesNV:TvkCreateRayTracingPipelinesNV=nil;
vkCreateRayTracingPipelinesKHR:TvkCreateRayTracingPipelinesKHR=nil;
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV:TvkGetPhysicalDeviceCooperativeMatrixPropertiesNV=nil;
vkCmdTraceRaysIndirectKHR:TvkCmdTraceRaysIndirectKHR=nil;
vkGetDeviceAccelerationStructureCompatibilityKHR:TvkGetDeviceAccelerationStructureCompatibilityKHR=nil;
vkGetRayTracingShaderGroupStackSizeKHR:TvkGetRayTracingShaderGroupStackSizeKHR=nil;
vkCmdSetRayTracingPipelineStackSizeKHR:TvkCmdSetRayTracingPipelineStackSizeKHR=nil;
vkGetImageViewHandleNVX:TvkGetImageViewHandleNVX=nil;
vkGetImageViewAddressNVX:TvkGetImageViewAddressNVX=nil;
vkGetPhysicalDeviceSurfacePresentModes2EXT:TvkGetPhysicalDeviceSurfacePresentModes2EXT=nil;
vkGetDeviceGroupSurfacePresentModes2EXT:TvkGetDeviceGroupSurfacePresentModes2EXT=nil;
vkAcquireFullScreenExclusiveModeEXT:TvkAcquireFullScreenExclusiveModeEXT=nil;
vkReleaseFullScreenExclusiveModeEXT:TvkReleaseFullScreenExclusiveModeEXT=nil;
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:TvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR=nil;
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:TvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR=nil;
vkAcquireProfilingLockKHR:TvkAcquireProfilingLockKHR=nil;
vkReleaseProfilingLockKHR:TvkReleaseProfilingLockKHR=nil;
vkGetImageDrmFormatModifierPropertiesEXT:TvkGetImageDrmFormatModifierPropertiesEXT=nil;
vkGetBufferOpaqueCaptureAddress:TvkGetBufferOpaqueCaptureAddress=nil;
vkGetBufferOpaqueCaptureAddressKHR:TvkGetBufferOpaqueCaptureAddressKHR=nil;
vkGetBufferDeviceAddress:TvkGetBufferDeviceAddress=nil;
vkGetBufferDeviceAddressKHR:TvkGetBufferDeviceAddressKHR=nil;
vkGetBufferDeviceAddressEXT:TvkGetBufferDeviceAddressEXT=nil;
vkCreateHeadlessSurfaceEXT:TvkCreateHeadlessSurfaceEXT=nil;
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:TvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV=nil;
vkInitializePerformanceApiINTEL:TvkInitializePerformanceApiINTEL=nil;
vkUninitializePerformanceApiINTEL:TvkUninitializePerformanceApiINTEL=nil;
vkCmdSetPerformanceMarkerINTEL:TvkCmdSetPerformanceMarkerINTEL=nil;
vkCmdSetPerformanceStreamMarkerINTEL:TvkCmdSetPerformanceStreamMarkerINTEL=nil;
vkCmdSetPerformanceOverrideINTEL:TvkCmdSetPerformanceOverrideINTEL=nil;
vkAcquirePerformanceConfigurationINTEL:TvkAcquirePerformanceConfigurationINTEL=nil;
vkReleasePerformanceConfigurationINTEL:TvkReleasePerformanceConfigurationINTEL=nil;
vkQueueSetPerformanceConfigurationINTEL:TvkQueueSetPerformanceConfigurationINTEL=nil;
vkGetPerformanceParameterINTEL:TvkGetPerformanceParameterINTEL=nil;
vkGetDeviceMemoryOpaqueCaptureAddress:TvkGetDeviceMemoryOpaqueCaptureAddress=nil;
vkGetDeviceMemoryOpaqueCaptureAddressKHR:TvkGetDeviceMemoryOpaqueCaptureAddressKHR=nil;
vkGetPipelineExecutablePropertiesKHR:TvkGetPipelineExecutablePropertiesKHR=nil;
vkGetPipelineExecutableStatisticsKHR:TvkGetPipelineExecutableStatisticsKHR=nil;
vkGetPipelineExecutableInternalRepresentationsKHR:TvkGetPipelineExecutableInternalRepresentationsKHR=nil;
vkCmdSetLineStippleEXT:TvkCmdSetLineStippleEXT=nil;
vkGetPhysicalDeviceToolPropertiesEXT:TvkGetPhysicalDeviceToolPropertiesEXT=nil;
vkCreateAccelerationStructureKHR:TvkCreateAccelerationStructureKHR=nil;
vkCmdBuildAccelerationStructuresKHR:TvkCmdBuildAccelerationStructuresKHR=nil;
vkCmdBuildAccelerationStructuresIndirectKHR:TvkCmdBuildAccelerationStructuresIndirectKHR=nil;
vkBuildAccelerationStructuresKHR:TvkBuildAccelerationStructuresKHR=nil;
vkGetAccelerationStructureDeviceAddressKHR:TvkGetAccelerationStructureDeviceAddressKHR=nil;
vkCreateDeferredOperationKHR:TvkCreateDeferredOperationKHR=nil;
vkDestroyDeferredOperationKHR:TvkDestroyDeferredOperationKHR=nil;
vkGetDeferredOperationMaxConcurrencyKHR:TvkGetDeferredOperationMaxConcurrencyKHR=nil;
vkGetDeferredOperationResultKHR:TvkGetDeferredOperationResultKHR=nil;
vkDeferredOperationJoinKHR:TvkDeferredOperationJoinKHR=nil;
vkCmdSetCullModeEXT:TvkCmdSetCullModeEXT=nil;
vkCmdSetFrontFaceEXT:TvkCmdSetFrontFaceEXT=nil;
vkCmdSetPrimitiveTopologyEXT:TvkCmdSetPrimitiveTopologyEXT=nil;
vkCmdSetViewportWithCountEXT:TvkCmdSetViewportWithCountEXT=nil;
vkCmdSetScissorWithCountEXT:TvkCmdSetScissorWithCountEXT=nil;
vkCmdBindVertexBuffers2EXT:TvkCmdBindVertexBuffers2EXT=nil;
vkCmdSetDepthTestEnableEXT:TvkCmdSetDepthTestEnableEXT=nil;
vkCmdSetDepthWriteEnableEXT:TvkCmdSetDepthWriteEnableEXT=nil;
vkCmdSetDepthCompareOpEXT:TvkCmdSetDepthCompareOpEXT=nil;
vkCmdSetDepthBoundsTestEnableEXT:TvkCmdSetDepthBoundsTestEnableEXT=nil;
vkCmdSetStencilTestEnableEXT:TvkCmdSetStencilTestEnableEXT=nil;
vkCmdSetStencilOpEXT:TvkCmdSetStencilOpEXT=nil;
vkCmdSetPatchControlPointsEXT:TvkCmdSetPatchControlPointsEXT=nil;
vkCmdSetRasterizerDiscardEnableEXT:TvkCmdSetRasterizerDiscardEnableEXT=nil;
vkCmdSetDepthBiasEnableEXT:TvkCmdSetDepthBiasEnableEXT=nil;
vkCmdSetLogicOpEXT:TvkCmdSetLogicOpEXT=nil;
vkCmdSetPrimitiveRestartEnableEXT:TvkCmdSetPrimitiveRestartEnableEXT=nil;
vkCreatePrivateDataSlotEXT:TvkCreatePrivateDataSlotEXT=nil;
vkDestroyPrivateDataSlotEXT:TvkDestroyPrivateDataSlotEXT=nil;
vkSetPrivateDataEXT:TvkSetPrivateDataEXT=nil;
vkGetPrivateDataEXT:TvkGetPrivateDataEXT=nil;
vkCmdCopyBuffer2KHR:TvkCmdCopyBuffer2KHR=nil;
vkCmdCopyImage2KHR:TvkCmdCopyImage2KHR=nil;
vkCmdBlitImage2KHR:TvkCmdBlitImage2KHR=nil;
vkCmdCopyBufferToImage2KHR:TvkCmdCopyBufferToImage2KHR=nil;
vkCmdCopyImageToBuffer2KHR:TvkCmdCopyImageToBuffer2KHR=nil;
vkCmdResolveImage2KHR:TvkCmdResolveImage2KHR=nil;
vkCmdSetFragmentShadingRateKHR:TvkCmdSetFragmentShadingRateKHR=nil;
vkGetPhysicalDeviceFragmentShadingRatesKHR:TvkGetPhysicalDeviceFragmentShadingRatesKHR=nil;
vkCmdSetFragmentShadingRateEnumNV:TvkCmdSetFragmentShadingRateEnumNV=nil;
vkGetAccelerationStructureBuildSizesKHR:TvkGetAccelerationStructureBuildSizesKHR=nil;
vkCmdSetVertexInputEXT:TvkCmdSetVertexInputEXT=nil;
vkCmdSetColorWriteEnableEXT:TvkCmdSetColorWriteEnableEXT=nil;
vkCmdSetEvent2KHR:TvkCmdSetEvent2KHR=nil;
vkCmdResetEvent2KHR:TvkCmdResetEvent2KHR=nil;
vkCmdWaitEvents2KHR:TvkCmdWaitEvents2KHR=nil;
vkCmdPipelineBarrier2KHR:TvkCmdPipelineBarrier2KHR=nil;
vkQueueSubmit2KHR:TvkQueueSubmit2KHR=nil;
vkCmdWriteTimestamp2KHR:TvkCmdWriteTimestamp2KHR=nil;
vkCmdWriteBufferMarker2AMD:TvkCmdWriteBufferMarker2AMD=nil;
vkGetQueueCheckpointData2NV:TvkGetQueueCheckpointData2NV=nil;
{$ifdef VkVideo}
vkGetPhysicalDeviceVideoCapabilitiesKHR:TvkGetPhysicalDeviceVideoCapabilitiesKHR=nil;
{$endif}
{$ifdef VkVideo}
vkGetPhysicalDeviceVideoFormatPropertiesKHR:TvkGetPhysicalDeviceVideoFormatPropertiesKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCreateVideoSessionKHR:TvkCreateVideoSessionKHR=nil;
{$endif}
{$ifdef VkVideo}
vkDestroyVideoSessionKHR:TvkDestroyVideoSessionKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCreateVideoSessionParametersKHR:TvkCreateVideoSessionParametersKHR=nil;
{$endif}
{$ifdef VkVideo}
vkUpdateVideoSessionParametersKHR:TvkUpdateVideoSessionParametersKHR=nil;
{$endif}
{$ifdef VkVideo}
vkDestroyVideoSessionParametersKHR:TvkDestroyVideoSessionParametersKHR=nil;
{$endif}
{$ifdef VkVideo}
vkGetVideoSessionMemoryRequirementsKHR:TvkGetVideoSessionMemoryRequirementsKHR=nil;
{$endif}
{$ifdef VkVideo}
vkBindVideoSessionMemoryKHR:TvkBindVideoSessionMemoryKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCmdDecodeVideoKHR:TvkCmdDecodeVideoKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCmdBeginVideoCodingKHR:TvkCmdBeginVideoCodingKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCmdControlVideoCodingKHR:TvkCmdControlVideoCodingKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCmdEndVideoCodingKHR:TvkCmdEndVideoCodingKHR=nil;
{$endif}
{$ifdef VkVideo}
vkCmdEncodeVideoKHR:TvkCmdEncodeVideoKHR=nil;
{$endif}
vkCreateCuModuleNVX:TvkCreateCuModuleNVX=nil;
vkCreateCuFunctionNVX:TvkCreateCuFunctionNVX=nil;
vkDestroyCuModuleNVX:TvkDestroyCuModuleNVX=nil;
vkDestroyCuFunctionNVX:TvkDestroyCuFunctionNVX=nil;
vkCmdCuLaunchKernelNVX:TvkCmdCuLaunchKernelNVX=nil;
vkAcquireDrmDisplayEXT:TvkAcquireDrmDisplayEXT=nil;
vkGetDrmDisplayEXT:TvkGetDrmDisplayEXT=nil;
vkWaitForPresentKHR:TvkWaitForPresentKHR=nil;
function VK_MAKE_VERSION(const VersionMajor,VersionMinor,VersionPatch:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_VERSION_MAJOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_VERSION_MINOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_VERSION_PATCH(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_MAKE_API_VERSION(const VersionVariant,VersionMajor,VersionMinor,VersionPatch:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_API_VERSION_VARIANT(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_API_VERSION_MAJOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_API_VERSION_MINOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function VK_API_VERSION_PATCH(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
function vkLoadLibrary(const LibraryName:string):pointer; {$ifdef CAN_INLINE}inline;{$endif}
function vkFreeLibrary(LibraryHandle:pointer):boolean; {$ifdef CAN_INLINE}inline;{$endif}
function vkGetProcAddress(LibraryHandle:pointer;const ProcName:string):pointer; {$ifdef CAN_INLINE}inline;{$endif}
function vkVoidFunctionToPointer(const VoidFunction:TPFN_vkVoidFunction):pointer; {$ifdef CAN_INLINE}inline;{$endif}
function LoadVulkanLibrary(const LibraryName:string=VK_DEFAULT_LIB_NAME):boolean;
function LoadVulkanGlobalCommands:boolean;
function LoadVulkanInstanceCommands(const GetInstanceProcAddr:TvkGetInstanceProcAddr;const Instance:TVkInstance;out InstanceCommands:TVulkanCommands):boolean;
function LoadVulkanDeviceCommands(const GetDeviceProcAddr:TvkGetDeviceProcAddr;const Device:TVkDevice;out DeviceCommands:TVulkanCommands):boolean;
implementation
function VK_MAKE_VERSION(const VersionMajor,VersionMinor,VersionPatch:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(VersionMajor shl 22) or (VersionMinor shl 12) or (VersionPatch shl 0);
end;
function VK_VERSION_MAJOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=Version shr 22;
end;
function VK_VERSION_MINOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(Version shr 12) and $3ff;
end;
function VK_VERSION_PATCH(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(Version shr 0) and $fff;
end;
function VK_MAKE_API_VERSION(const VersionVariant,VersionMajor,VersionMinor,VersionPatch:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(VersionVariant shl 29) or (VersionMajor shl 22) or (VersionMinor shl 12) or (VersionPatch shl 0);
end;
function VK_API_VERSION_VARIANT(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=Version shr 29;
end;
function VK_API_VERSION_MAJOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(Version shr 22) and $7f;
end;
function VK_API_VERSION_MINOR(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(Version shr 12) and $3ff;
end;
function VK_API_VERSION_PATCH(const Version:longint):longint; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=(Version shr 0) and $fff;
end;
function vkLoadLibrary(const LibraryName:string):pointer; {$ifdef CAN_INLINE}inline;{$endif}
begin
{$ifdef Windows}
result:={%H-}pointer(LoadLibrary(PChar(LibraryName)));
{$else}
{$ifdef Unix}
result:=dlopen(PChar(LibraryName),RTLD_NOW or RTLD_LAZY);
{$else}
result:=nil;
{$endif}
{$endif}
end;
function vkFreeLibrary(LibraryHandle:pointer):boolean; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=assigned(LibraryHandle);
if result then begin
{$ifdef Windows}
result:=FreeLibrary({%H-}HMODULE(LibraryHandle));
{$else}
{$ifdef Unix}
result:=dlclose(LibraryHandle)=0;
{$else}
result:=false;
{$endif}
{$endif}
end;
end;
function vkGetProcAddress(LibraryHandle:pointer;const ProcName:string):pointer; {$ifdef CAN_INLINE}inline;{$endif}
begin
{$ifdef Windows}
result:=GetProcAddress({%H-}HMODULE(LibraryHandle),PChar(ProcName));
{$else}
{$ifdef Unix}
result:=dlsym(LibraryHandle,PChar(ProcName));
{$else}
result:=nil;
{$endif}
{$endif}
end;
function vkVoidFunctionToPointer(const VoidFunction:TPFN_vkVoidFunction):pointer; {$ifdef CAN_INLINE}inline;{$endif}
begin
result:=addr(VoidFunction);
end;
function LoadVulkanLibrary(const LibraryName:string=VK_DEFAULT_LIB_NAME):boolean;
begin
LibVulkan:=vkLoadLibrary(LibraryName);
result:=assigned(LibVulkan);
if result then begin
vkGetInstanceProcAddr:=vkGetProcAddress(LibVulkan,'vkGetInstanceProcAddr');
@vk.fCommands.GetInstanceProcAddr:=addr(vkGetInstanceProcAddr);
result:=assigned(vkGetInstanceProcAddr);
if result then begin
vkEnumerateInstanceExtensionProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(VK_NULL_INSTANCE,PVkChar('vkEnumerateInstanceExtensionProperties')));
@vk.fCommands.EnumerateInstanceExtensionProperties:=addr(vkEnumerateInstanceExtensionProperties);
vkEnumerateInstanceLayerProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(VK_NULL_INSTANCE,PVkChar('vkEnumerateInstanceLayerProperties')));
@vk.fCommands.EnumerateInstanceLayerProperties:=addr(vkEnumerateInstanceLayerProperties);
vkCreateInstance:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(VK_NULL_INSTANCE,PVkChar('vkCreateInstance')));
@vk.fCommands.CreateInstance:=addr(vkCreateInstance);
result:=assigned(vkEnumerateInstanceExtensionProperties) and
assigned(vkEnumerateInstanceLayerProperties) and
assigned(vkCreateInstance);
end;
end;
end;
function LoadVulkanGlobalCommands:boolean;
begin
result:=assigned(vkGetInstanceProcAddr);
if result then begin
if not assigned(vkCreateInstance) then begin
@vkCreateInstance:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateInstance'));
@vk.fCommands.CreateInstance:=addr(vkCreateInstance);
end;
if not assigned(vkDestroyInstance) then begin
@vkDestroyInstance:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyInstance'));
@vk.fCommands.DestroyInstance:=addr(vkDestroyInstance);
end;
if not assigned(vkEnumeratePhysicalDevices) then begin
@vkEnumeratePhysicalDevices:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumeratePhysicalDevices'));
@vk.fCommands.EnumeratePhysicalDevices:=addr(vkEnumeratePhysicalDevices);
end;
if not assigned(vkGetDeviceProcAddr) then begin
@vkGetDeviceProcAddr:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceProcAddr'));
@vk.fCommands.GetDeviceProcAddr:=addr(vkGetDeviceProcAddr);
end;
if not assigned(vkGetInstanceProcAddr) then begin
@vkGetInstanceProcAddr:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetInstanceProcAddr'));
@vk.fCommands.GetInstanceProcAddr:=addr(vkGetInstanceProcAddr);
end;
if not assigned(vkGetPhysicalDeviceProperties) then begin
@vkGetPhysicalDeviceProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceProperties'));
@vk.fCommands.GetPhysicalDeviceProperties:=addr(vkGetPhysicalDeviceProperties);
end;
if not assigned(vkGetPhysicalDeviceQueueFamilyProperties) then begin
@vkGetPhysicalDeviceQueueFamilyProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceQueueFamilyProperties'));
@vk.fCommands.GetPhysicalDeviceQueueFamilyProperties:=addr(vkGetPhysicalDeviceQueueFamilyProperties);
end;
if not assigned(vkGetPhysicalDeviceMemoryProperties) then begin
@vkGetPhysicalDeviceMemoryProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceMemoryProperties'));
@vk.fCommands.GetPhysicalDeviceMemoryProperties:=addr(vkGetPhysicalDeviceMemoryProperties);
end;
if not assigned(vkGetPhysicalDeviceFeatures) then begin
@vkGetPhysicalDeviceFeatures:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFeatures'));
@vk.fCommands.GetPhysicalDeviceFeatures:=addr(vkGetPhysicalDeviceFeatures);
end;
if not assigned(vkGetPhysicalDeviceFormatProperties) then begin
@vkGetPhysicalDeviceFormatProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFormatProperties'));
@vk.fCommands.GetPhysicalDeviceFormatProperties:=addr(vkGetPhysicalDeviceFormatProperties);
end;
if not assigned(vkGetPhysicalDeviceImageFormatProperties) then begin
@vkGetPhysicalDeviceImageFormatProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceImageFormatProperties'));
@vk.fCommands.GetPhysicalDeviceImageFormatProperties:=addr(vkGetPhysicalDeviceImageFormatProperties);
end;
if not assigned(vkCreateDevice) then begin
@vkCreateDevice:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDevice'));
@vk.fCommands.CreateDevice:=addr(vkCreateDevice);
end;
if not assigned(vkDestroyDevice) then begin
@vkDestroyDevice:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDevice'));
@vk.fCommands.DestroyDevice:=addr(vkDestroyDevice);
end;
if not assigned(vkEnumerateInstanceVersion) then begin
@vkEnumerateInstanceVersion:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumerateInstanceVersion'));
@vk.fCommands.EnumerateInstanceVersion:=addr(vkEnumerateInstanceVersion);
end;
if not assigned(vkEnumerateInstanceLayerProperties) then begin
@vkEnumerateInstanceLayerProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumerateInstanceLayerProperties'));
@vk.fCommands.EnumerateInstanceLayerProperties:=addr(vkEnumerateInstanceLayerProperties);
end;
if not assigned(vkEnumerateInstanceExtensionProperties) then begin
@vkEnumerateInstanceExtensionProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumerateInstanceExtensionProperties'));
@vk.fCommands.EnumerateInstanceExtensionProperties:=addr(vkEnumerateInstanceExtensionProperties);
end;
if not assigned(vkEnumerateDeviceLayerProperties) then begin
@vkEnumerateDeviceLayerProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumerateDeviceLayerProperties'));
@vk.fCommands.EnumerateDeviceLayerProperties:=addr(vkEnumerateDeviceLayerProperties);
end;
if not assigned(vkEnumerateDeviceExtensionProperties) then begin
@vkEnumerateDeviceExtensionProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumerateDeviceExtensionProperties'));
@vk.fCommands.EnumerateDeviceExtensionProperties:=addr(vkEnumerateDeviceExtensionProperties);
end;
if not assigned(vkGetDeviceQueue) then begin
@vkGetDeviceQueue:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceQueue'));
@vk.fCommands.GetDeviceQueue:=addr(vkGetDeviceQueue);
end;
if not assigned(vkQueueSubmit) then begin
@vkQueueSubmit:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueSubmit'));
@vk.fCommands.QueueSubmit:=addr(vkQueueSubmit);
end;
if not assigned(vkQueueWaitIdle) then begin
@vkQueueWaitIdle:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueWaitIdle'));
@vk.fCommands.QueueWaitIdle:=addr(vkQueueWaitIdle);
end;
if not assigned(vkDeviceWaitIdle) then begin
@vkDeviceWaitIdle:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDeviceWaitIdle'));
@vk.fCommands.DeviceWaitIdle:=addr(vkDeviceWaitIdle);
end;
if not assigned(vkAllocateMemory) then begin
@vkAllocateMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAllocateMemory'));
@vk.fCommands.AllocateMemory:=addr(vkAllocateMemory);
end;
if not assigned(vkFreeMemory) then begin
@vkFreeMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkFreeMemory'));
@vk.fCommands.FreeMemory:=addr(vkFreeMemory);
end;
if not assigned(vkMapMemory) then begin
@vkMapMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkMapMemory'));
@vk.fCommands.MapMemory:=addr(vkMapMemory);
end;
if not assigned(vkUnmapMemory) then begin
@vkUnmapMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUnmapMemory'));
@vk.fCommands.UnmapMemory:=addr(vkUnmapMemory);
end;
if not assigned(vkFlushMappedMemoryRanges) then begin
@vkFlushMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkFlushMappedMemoryRanges'));
@vk.fCommands.FlushMappedMemoryRanges:=addr(vkFlushMappedMemoryRanges);
end;
if not assigned(vkInvalidateMappedMemoryRanges) then begin
@vkInvalidateMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkInvalidateMappedMemoryRanges'));
@vk.fCommands.InvalidateMappedMemoryRanges:=addr(vkInvalidateMappedMemoryRanges);
end;
if not assigned(vkGetDeviceMemoryCommitment) then begin
@vkGetDeviceMemoryCommitment:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceMemoryCommitment'));
@vk.fCommands.GetDeviceMemoryCommitment:=addr(vkGetDeviceMemoryCommitment);
end;
if not assigned(vkGetBufferMemoryRequirements) then begin
@vkGetBufferMemoryRequirements:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferMemoryRequirements'));
@vk.fCommands.GetBufferMemoryRequirements:=addr(vkGetBufferMemoryRequirements);
end;
if not assigned(vkBindBufferMemory) then begin
@vkBindBufferMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindBufferMemory'));
@vk.fCommands.BindBufferMemory:=addr(vkBindBufferMemory);
end;
if not assigned(vkGetImageMemoryRequirements) then begin
@vkGetImageMemoryRequirements:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageMemoryRequirements'));
@vk.fCommands.GetImageMemoryRequirements:=addr(vkGetImageMemoryRequirements);
end;
if not assigned(vkBindImageMemory) then begin
@vkBindImageMemory:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindImageMemory'));
@vk.fCommands.BindImageMemory:=addr(vkBindImageMemory);
end;
if not assigned(vkGetImageSparseMemoryRequirements) then begin
@vkGetImageSparseMemoryRequirements:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageSparseMemoryRequirements'));
@vk.fCommands.GetImageSparseMemoryRequirements:=addr(vkGetImageSparseMemoryRequirements);
end;
if not assigned(vkGetPhysicalDeviceSparseImageFormatProperties) then begin
@vkGetPhysicalDeviceSparseImageFormatProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSparseImageFormatProperties'));
@vk.fCommands.GetPhysicalDeviceSparseImageFormatProperties:=addr(vkGetPhysicalDeviceSparseImageFormatProperties);
end;
if not assigned(vkQueueBindSparse) then begin
@vkQueueBindSparse:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueBindSparse'));
@vk.fCommands.QueueBindSparse:=addr(vkQueueBindSparse);
end;
if not assigned(vkCreateFence) then begin
@vkCreateFence:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateFence'));
@vk.fCommands.CreateFence:=addr(vkCreateFence);
end;
if not assigned(vkDestroyFence) then begin
@vkDestroyFence:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyFence'));
@vk.fCommands.DestroyFence:=addr(vkDestroyFence);
end;
if not assigned(vkResetFences) then begin
@vkResetFences:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetFences'));
@vk.fCommands.ResetFences:=addr(vkResetFences);
end;
if not assigned(vkGetFenceStatus) then begin
@vkGetFenceStatus:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetFenceStatus'));
@vk.fCommands.GetFenceStatus:=addr(vkGetFenceStatus);
end;
if not assigned(vkWaitForFences) then begin
@vkWaitForFences:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkWaitForFences'));
@vk.fCommands.WaitForFences:=addr(vkWaitForFences);
end;
if not assigned(vkCreateSemaphore) then begin
@vkCreateSemaphore:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSemaphore'));
@vk.fCommands.CreateSemaphore:=addr(vkCreateSemaphore);
end;
if not assigned(vkDestroySemaphore) then begin
@vkDestroySemaphore:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySemaphore'));
@vk.fCommands.DestroySemaphore:=addr(vkDestroySemaphore);
end;
if not assigned(vkCreateEvent) then begin
@vkCreateEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateEvent'));
@vk.fCommands.CreateEvent:=addr(vkCreateEvent);
end;
if not assigned(vkDestroyEvent) then begin
@vkDestroyEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyEvent'));
@vk.fCommands.DestroyEvent:=addr(vkDestroyEvent);
end;
if not assigned(vkGetEventStatus) then begin
@vkGetEventStatus:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetEventStatus'));
@vk.fCommands.GetEventStatus:=addr(vkGetEventStatus);
end;
if not assigned(vkSetEvent) then begin
@vkSetEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetEvent'));
@vk.fCommands.SetEvent:=addr(vkSetEvent);
end;
if not assigned(vkResetEvent) then begin
@vkResetEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetEvent'));
@vk.fCommands.ResetEvent:=addr(vkResetEvent);
end;
if not assigned(vkCreateQueryPool) then begin
@vkCreateQueryPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateQueryPool'));
@vk.fCommands.CreateQueryPool:=addr(vkCreateQueryPool);
end;
if not assigned(vkDestroyQueryPool) then begin
@vkDestroyQueryPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyQueryPool'));
@vk.fCommands.DestroyQueryPool:=addr(vkDestroyQueryPool);
end;
if not assigned(vkGetQueryPoolResults) then begin
@vkGetQueryPoolResults:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetQueryPoolResults'));
@vk.fCommands.GetQueryPoolResults:=addr(vkGetQueryPoolResults);
end;
if not assigned(vkResetQueryPool) then begin
@vkResetQueryPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetQueryPool'));
@vk.fCommands.ResetQueryPool:=addr(vkResetQueryPool);
end;
if not assigned(vkResetQueryPoolEXT) then begin
@vkResetQueryPoolEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetQueryPoolEXT'));
@vk.fCommands.ResetQueryPoolEXT:=addr(vkResetQueryPoolEXT);
end;
if not assigned(vkCreateBuffer) then begin
@vkCreateBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateBuffer'));
@vk.fCommands.CreateBuffer:=addr(vkCreateBuffer);
end;
if not assigned(vkDestroyBuffer) then begin
@vkDestroyBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyBuffer'));
@vk.fCommands.DestroyBuffer:=addr(vkDestroyBuffer);
end;
if not assigned(vkCreateBufferView) then begin
@vkCreateBufferView:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateBufferView'));
@vk.fCommands.CreateBufferView:=addr(vkCreateBufferView);
end;
if not assigned(vkDestroyBufferView) then begin
@vkDestroyBufferView:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyBufferView'));
@vk.fCommands.DestroyBufferView:=addr(vkDestroyBufferView);
end;
if not assigned(vkCreateImage) then begin
@vkCreateImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateImage'));
@vk.fCommands.CreateImage:=addr(vkCreateImage);
end;
if not assigned(vkDestroyImage) then begin
@vkDestroyImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyImage'));
@vk.fCommands.DestroyImage:=addr(vkDestroyImage);
end;
if not assigned(vkGetImageSubresourceLayout) then begin
@vkGetImageSubresourceLayout:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageSubresourceLayout'));
@vk.fCommands.GetImageSubresourceLayout:=addr(vkGetImageSubresourceLayout);
end;
if not assigned(vkCreateImageView) then begin
@vkCreateImageView:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateImageView'));
@vk.fCommands.CreateImageView:=addr(vkCreateImageView);
end;
if not assigned(vkDestroyImageView) then begin
@vkDestroyImageView:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyImageView'));
@vk.fCommands.DestroyImageView:=addr(vkDestroyImageView);
end;
if not assigned(vkCreateShaderModule) then begin
@vkCreateShaderModule:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateShaderModule'));
@vk.fCommands.CreateShaderModule:=addr(vkCreateShaderModule);
end;
if not assigned(vkDestroyShaderModule) then begin
@vkDestroyShaderModule:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyShaderModule'));
@vk.fCommands.DestroyShaderModule:=addr(vkDestroyShaderModule);
end;
if not assigned(vkCreatePipelineCache) then begin
@vkCreatePipelineCache:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreatePipelineCache'));
@vk.fCommands.CreatePipelineCache:=addr(vkCreatePipelineCache);
end;
if not assigned(vkDestroyPipelineCache) then begin
@vkDestroyPipelineCache:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyPipelineCache'));
@vk.fCommands.DestroyPipelineCache:=addr(vkDestroyPipelineCache);
end;
if not assigned(vkGetPipelineCacheData) then begin
@vkGetPipelineCacheData:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPipelineCacheData'));
@vk.fCommands.GetPipelineCacheData:=addr(vkGetPipelineCacheData);
end;
if not assigned(vkMergePipelineCaches) then begin
@vkMergePipelineCaches:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkMergePipelineCaches'));
@vk.fCommands.MergePipelineCaches:=addr(vkMergePipelineCaches);
end;
if not assigned(vkCreateGraphicsPipelines) then begin
@vkCreateGraphicsPipelines:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateGraphicsPipelines'));
@vk.fCommands.CreateGraphicsPipelines:=addr(vkCreateGraphicsPipelines);
end;
if not assigned(vkCreateComputePipelines) then begin
@vkCreateComputePipelines:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateComputePipelines'));
@vk.fCommands.CreateComputePipelines:=addr(vkCreateComputePipelines);
end;
if not assigned(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI) then begin
@vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI'));
@vk.fCommands.GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:=addr(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI);
end;
if not assigned(vkDestroyPipeline) then begin
@vkDestroyPipeline:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyPipeline'));
@vk.fCommands.DestroyPipeline:=addr(vkDestroyPipeline);
end;
if not assigned(vkCreatePipelineLayout) then begin
@vkCreatePipelineLayout:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreatePipelineLayout'));
@vk.fCommands.CreatePipelineLayout:=addr(vkCreatePipelineLayout);
end;
if not assigned(vkDestroyPipelineLayout) then begin
@vkDestroyPipelineLayout:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyPipelineLayout'));
@vk.fCommands.DestroyPipelineLayout:=addr(vkDestroyPipelineLayout);
end;
if not assigned(vkCreateSampler) then begin
@vkCreateSampler:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSampler'));
@vk.fCommands.CreateSampler:=addr(vkCreateSampler);
end;
if not assigned(vkDestroySampler) then begin
@vkDestroySampler:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySampler'));
@vk.fCommands.DestroySampler:=addr(vkDestroySampler);
end;
if not assigned(vkCreateDescriptorSetLayout) then begin
@vkCreateDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDescriptorSetLayout'));
@vk.fCommands.CreateDescriptorSetLayout:=addr(vkCreateDescriptorSetLayout);
end;
if not assigned(vkDestroyDescriptorSetLayout) then begin
@vkDestroyDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDescriptorSetLayout'));
@vk.fCommands.DestroyDescriptorSetLayout:=addr(vkDestroyDescriptorSetLayout);
end;
if not assigned(vkCreateDescriptorPool) then begin
@vkCreateDescriptorPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDescriptorPool'));
@vk.fCommands.CreateDescriptorPool:=addr(vkCreateDescriptorPool);
end;
if not assigned(vkDestroyDescriptorPool) then begin
@vkDestroyDescriptorPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDescriptorPool'));
@vk.fCommands.DestroyDescriptorPool:=addr(vkDestroyDescriptorPool);
end;
if not assigned(vkResetDescriptorPool) then begin
@vkResetDescriptorPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetDescriptorPool'));
@vk.fCommands.ResetDescriptorPool:=addr(vkResetDescriptorPool);
end;
if not assigned(vkAllocateDescriptorSets) then begin
@vkAllocateDescriptorSets:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAllocateDescriptorSets'));
@vk.fCommands.AllocateDescriptorSets:=addr(vkAllocateDescriptorSets);
end;
if not assigned(vkFreeDescriptorSets) then begin
@vkFreeDescriptorSets:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkFreeDescriptorSets'));
@vk.fCommands.FreeDescriptorSets:=addr(vkFreeDescriptorSets);
end;
if not assigned(vkUpdateDescriptorSets) then begin
@vkUpdateDescriptorSets:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUpdateDescriptorSets'));
@vk.fCommands.UpdateDescriptorSets:=addr(vkUpdateDescriptorSets);
end;
if not assigned(vkCreateFramebuffer) then begin
@vkCreateFramebuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateFramebuffer'));
@vk.fCommands.CreateFramebuffer:=addr(vkCreateFramebuffer);
end;
if not assigned(vkDestroyFramebuffer) then begin
@vkDestroyFramebuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyFramebuffer'));
@vk.fCommands.DestroyFramebuffer:=addr(vkDestroyFramebuffer);
end;
if not assigned(vkCreateRenderPass) then begin
@vkCreateRenderPass:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateRenderPass'));
@vk.fCommands.CreateRenderPass:=addr(vkCreateRenderPass);
end;
if not assigned(vkDestroyRenderPass) then begin
@vkDestroyRenderPass:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyRenderPass'));
@vk.fCommands.DestroyRenderPass:=addr(vkDestroyRenderPass);
end;
if not assigned(vkGetRenderAreaGranularity) then begin
@vkGetRenderAreaGranularity:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRenderAreaGranularity'));
@vk.fCommands.GetRenderAreaGranularity:=addr(vkGetRenderAreaGranularity);
end;
if not assigned(vkCreateCommandPool) then begin
@vkCreateCommandPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateCommandPool'));
@vk.fCommands.CreateCommandPool:=addr(vkCreateCommandPool);
end;
if not assigned(vkDestroyCommandPool) then begin
@vkDestroyCommandPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyCommandPool'));
@vk.fCommands.DestroyCommandPool:=addr(vkDestroyCommandPool);
end;
if not assigned(vkResetCommandPool) then begin
@vkResetCommandPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetCommandPool'));
@vk.fCommands.ResetCommandPool:=addr(vkResetCommandPool);
end;
if not assigned(vkAllocateCommandBuffers) then begin
@vkAllocateCommandBuffers:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAllocateCommandBuffers'));
@vk.fCommands.AllocateCommandBuffers:=addr(vkAllocateCommandBuffers);
end;
if not assigned(vkFreeCommandBuffers) then begin
@vkFreeCommandBuffers:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkFreeCommandBuffers'));
@vk.fCommands.FreeCommandBuffers:=addr(vkFreeCommandBuffers);
end;
if not assigned(vkBeginCommandBuffer) then begin
@vkBeginCommandBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBeginCommandBuffer'));
@vk.fCommands.BeginCommandBuffer:=addr(vkBeginCommandBuffer);
end;
if not assigned(vkEndCommandBuffer) then begin
@vkEndCommandBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEndCommandBuffer'));
@vk.fCommands.EndCommandBuffer:=addr(vkEndCommandBuffer);
end;
if not assigned(vkResetCommandBuffer) then begin
@vkResetCommandBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkResetCommandBuffer'));
@vk.fCommands.ResetCommandBuffer:=addr(vkResetCommandBuffer);
end;
if not assigned(vkCmdBindPipeline) then begin
@vkCmdBindPipeline:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindPipeline'));
@vk.fCommands.CmdBindPipeline:=addr(vkCmdBindPipeline);
end;
if not assigned(vkCmdSetViewport) then begin
@vkCmdSetViewport:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetViewport'));
@vk.fCommands.CmdSetViewport:=addr(vkCmdSetViewport);
end;
if not assigned(vkCmdSetScissor) then begin
@vkCmdSetScissor:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetScissor'));
@vk.fCommands.CmdSetScissor:=addr(vkCmdSetScissor);
end;
if not assigned(vkCmdSetLineWidth) then begin
@vkCmdSetLineWidth:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetLineWidth'));
@vk.fCommands.CmdSetLineWidth:=addr(vkCmdSetLineWidth);
end;
if not assigned(vkCmdSetDepthBias) then begin
@vkCmdSetDepthBias:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthBias'));
@vk.fCommands.CmdSetDepthBias:=addr(vkCmdSetDepthBias);
end;
if not assigned(vkCmdSetBlendConstants) then begin
@vkCmdSetBlendConstants:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetBlendConstants'));
@vk.fCommands.CmdSetBlendConstants:=addr(vkCmdSetBlendConstants);
end;
if not assigned(vkCmdSetDepthBounds) then begin
@vkCmdSetDepthBounds:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthBounds'));
@vk.fCommands.CmdSetDepthBounds:=addr(vkCmdSetDepthBounds);
end;
if not assigned(vkCmdSetStencilCompareMask) then begin
@vkCmdSetStencilCompareMask:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetStencilCompareMask'));
@vk.fCommands.CmdSetStencilCompareMask:=addr(vkCmdSetStencilCompareMask);
end;
if not assigned(vkCmdSetStencilWriteMask) then begin
@vkCmdSetStencilWriteMask:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetStencilWriteMask'));
@vk.fCommands.CmdSetStencilWriteMask:=addr(vkCmdSetStencilWriteMask);
end;
if not assigned(vkCmdSetStencilReference) then begin
@vkCmdSetStencilReference:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetStencilReference'));
@vk.fCommands.CmdSetStencilReference:=addr(vkCmdSetStencilReference);
end;
if not assigned(vkCmdBindDescriptorSets) then begin
@vkCmdBindDescriptorSets:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindDescriptorSets'));
@vk.fCommands.CmdBindDescriptorSets:=addr(vkCmdBindDescriptorSets);
end;
if not assigned(vkCmdBindIndexBuffer) then begin
@vkCmdBindIndexBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindIndexBuffer'));
@vk.fCommands.CmdBindIndexBuffer:=addr(vkCmdBindIndexBuffer);
end;
if not assigned(vkCmdBindVertexBuffers) then begin
@vkCmdBindVertexBuffers:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindVertexBuffers'));
@vk.fCommands.CmdBindVertexBuffers:=addr(vkCmdBindVertexBuffers);
end;
if not assigned(vkCmdDraw) then begin
@vkCmdDraw:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDraw'));
@vk.fCommands.CmdDraw:=addr(vkCmdDraw);
end;
if not assigned(vkCmdDrawIndexed) then begin
@vkCmdDrawIndexed:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndexed'));
@vk.fCommands.CmdDrawIndexed:=addr(vkCmdDrawIndexed);
end;
if not assigned(vkCmdDrawMultiEXT) then begin
@vkCmdDrawMultiEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawMultiEXT'));
@vk.fCommands.CmdDrawMultiEXT:=addr(vkCmdDrawMultiEXT);
end;
if not assigned(vkCmdDrawMultiIndexedEXT) then begin
@vkCmdDrawMultiIndexedEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawMultiIndexedEXT'));
@vk.fCommands.CmdDrawMultiIndexedEXT:=addr(vkCmdDrawMultiIndexedEXT);
end;
if not assigned(vkCmdDrawIndirect) then begin
@vkCmdDrawIndirect:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndirect'));
@vk.fCommands.CmdDrawIndirect:=addr(vkCmdDrawIndirect);
end;
if not assigned(vkCmdDrawIndexedIndirect) then begin
@vkCmdDrawIndexedIndirect:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndexedIndirect'));
@vk.fCommands.CmdDrawIndexedIndirect:=addr(vkCmdDrawIndexedIndirect);
end;
if not assigned(vkCmdDispatch) then begin
@vkCmdDispatch:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDispatch'));
@vk.fCommands.CmdDispatch:=addr(vkCmdDispatch);
end;
if not assigned(vkCmdDispatchIndirect) then begin
@vkCmdDispatchIndirect:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDispatchIndirect'));
@vk.fCommands.CmdDispatchIndirect:=addr(vkCmdDispatchIndirect);
end;
if not assigned(vkCmdSubpassShadingHUAWEI) then begin
@vkCmdSubpassShadingHUAWEI:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSubpassShadingHUAWEI'));
@vk.fCommands.CmdSubpassShadingHUAWEI:=addr(vkCmdSubpassShadingHUAWEI);
end;
if not assigned(vkCmdCopyBuffer) then begin
@vkCmdCopyBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyBuffer'));
@vk.fCommands.CmdCopyBuffer:=addr(vkCmdCopyBuffer);
end;
if not assigned(vkCmdCopyImage) then begin
@vkCmdCopyImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyImage'));
@vk.fCommands.CmdCopyImage:=addr(vkCmdCopyImage);
end;
if not assigned(vkCmdBlitImage) then begin
@vkCmdBlitImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBlitImage'));
@vk.fCommands.CmdBlitImage:=addr(vkCmdBlitImage);
end;
if not assigned(vkCmdCopyBufferToImage) then begin
@vkCmdCopyBufferToImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyBufferToImage'));
@vk.fCommands.CmdCopyBufferToImage:=addr(vkCmdCopyBufferToImage);
end;
if not assigned(vkCmdCopyImageToBuffer) then begin
@vkCmdCopyImageToBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyImageToBuffer'));
@vk.fCommands.CmdCopyImageToBuffer:=addr(vkCmdCopyImageToBuffer);
end;
if not assigned(vkCmdUpdateBuffer) then begin
@vkCmdUpdateBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdUpdateBuffer'));
@vk.fCommands.CmdUpdateBuffer:=addr(vkCmdUpdateBuffer);
end;
if not assigned(vkCmdFillBuffer) then begin
@vkCmdFillBuffer:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdFillBuffer'));
@vk.fCommands.CmdFillBuffer:=addr(vkCmdFillBuffer);
end;
if not assigned(vkCmdClearColorImage) then begin
@vkCmdClearColorImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdClearColorImage'));
@vk.fCommands.CmdClearColorImage:=addr(vkCmdClearColorImage);
end;
if not assigned(vkCmdClearDepthStencilImage) then begin
@vkCmdClearDepthStencilImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdClearDepthStencilImage'));
@vk.fCommands.CmdClearDepthStencilImage:=addr(vkCmdClearDepthStencilImage);
end;
if not assigned(vkCmdClearAttachments) then begin
@vkCmdClearAttachments:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdClearAttachments'));
@vk.fCommands.CmdClearAttachments:=addr(vkCmdClearAttachments);
end;
if not assigned(vkCmdResolveImage) then begin
@vkCmdResolveImage:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdResolveImage'));
@vk.fCommands.CmdResolveImage:=addr(vkCmdResolveImage);
end;
if not assigned(vkCmdSetEvent) then begin
@vkCmdSetEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetEvent'));
@vk.fCommands.CmdSetEvent:=addr(vkCmdSetEvent);
end;
if not assigned(vkCmdResetEvent) then begin
@vkCmdResetEvent:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdResetEvent'));
@vk.fCommands.CmdResetEvent:=addr(vkCmdResetEvent);
end;
if not assigned(vkCmdWaitEvents) then begin
@vkCmdWaitEvents:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWaitEvents'));
@vk.fCommands.CmdWaitEvents:=addr(vkCmdWaitEvents);
end;
if not assigned(vkCmdPipelineBarrier) then begin
@vkCmdPipelineBarrier:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPipelineBarrier'));
@vk.fCommands.CmdPipelineBarrier:=addr(vkCmdPipelineBarrier);
end;
if not assigned(vkCmdBeginQuery) then begin
@vkCmdBeginQuery:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginQuery'));
@vk.fCommands.CmdBeginQuery:=addr(vkCmdBeginQuery);
end;
if not assigned(vkCmdEndQuery) then begin
@vkCmdEndQuery:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndQuery'));
@vk.fCommands.CmdEndQuery:=addr(vkCmdEndQuery);
end;
if not assigned(vkCmdBeginConditionalRenderingEXT) then begin
@vkCmdBeginConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginConditionalRenderingEXT'));
@vk.fCommands.CmdBeginConditionalRenderingEXT:=addr(vkCmdBeginConditionalRenderingEXT);
end;
if not assigned(vkCmdEndConditionalRenderingEXT) then begin
@vkCmdEndConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndConditionalRenderingEXT'));
@vk.fCommands.CmdEndConditionalRenderingEXT:=addr(vkCmdEndConditionalRenderingEXT);
end;
if not assigned(vkCmdResetQueryPool) then begin
@vkCmdResetQueryPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdResetQueryPool'));
@vk.fCommands.CmdResetQueryPool:=addr(vkCmdResetQueryPool);
end;
if not assigned(vkCmdWriteTimestamp) then begin
@vkCmdWriteTimestamp:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteTimestamp'));
@vk.fCommands.CmdWriteTimestamp:=addr(vkCmdWriteTimestamp);
end;
if not assigned(vkCmdCopyQueryPoolResults) then begin
@vkCmdCopyQueryPoolResults:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyQueryPoolResults'));
@vk.fCommands.CmdCopyQueryPoolResults:=addr(vkCmdCopyQueryPoolResults);
end;
if not assigned(vkCmdPushConstants) then begin
@vkCmdPushConstants:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPushConstants'));
@vk.fCommands.CmdPushConstants:=addr(vkCmdPushConstants);
end;
if not assigned(vkCmdBeginRenderPass) then begin
@vkCmdBeginRenderPass:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginRenderPass'));
@vk.fCommands.CmdBeginRenderPass:=addr(vkCmdBeginRenderPass);
end;
if not assigned(vkCmdNextSubpass) then begin
@vkCmdNextSubpass:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdNextSubpass'));
@vk.fCommands.CmdNextSubpass:=addr(vkCmdNextSubpass);
end;
if not assigned(vkCmdEndRenderPass) then begin
@vkCmdEndRenderPass:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndRenderPass'));
@vk.fCommands.CmdEndRenderPass:=addr(vkCmdEndRenderPass);
end;
if not assigned(vkCmdExecuteCommands) then begin
@vkCmdExecuteCommands:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdExecuteCommands'));
@vk.fCommands.CmdExecuteCommands:=addr(vkCmdExecuteCommands);
end;
{$ifdef Android}
if not assigned(vkCreateAndroidSurfaceKHR) then begin
@vkCreateAndroidSurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateAndroidSurfaceKHR'));
@vk.fCommands.CreateAndroidSurfaceKHR:=addr(vkCreateAndroidSurfaceKHR);
end;
{$endif}
if not assigned(vkGetPhysicalDeviceDisplayPropertiesKHR) then begin
@vkGetPhysicalDeviceDisplayPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceDisplayPropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceDisplayPropertiesKHR:=addr(vkGetPhysicalDeviceDisplayPropertiesKHR);
end;
if not assigned(vkGetPhysicalDeviceDisplayPlanePropertiesKHR) then begin
@vkGetPhysicalDeviceDisplayPlanePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceDisplayPlanePropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceDisplayPlanePropertiesKHR:=addr(vkGetPhysicalDeviceDisplayPlanePropertiesKHR);
end;
if not assigned(vkGetDisplayPlaneSupportedDisplaysKHR) then begin
@vkGetDisplayPlaneSupportedDisplaysKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDisplayPlaneSupportedDisplaysKHR'));
@vk.fCommands.GetDisplayPlaneSupportedDisplaysKHR:=addr(vkGetDisplayPlaneSupportedDisplaysKHR);
end;
if not assigned(vkGetDisplayModePropertiesKHR) then begin
@vkGetDisplayModePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDisplayModePropertiesKHR'));
@vk.fCommands.GetDisplayModePropertiesKHR:=addr(vkGetDisplayModePropertiesKHR);
end;
if not assigned(vkCreateDisplayModeKHR) then begin
@vkCreateDisplayModeKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDisplayModeKHR'));
@vk.fCommands.CreateDisplayModeKHR:=addr(vkCreateDisplayModeKHR);
end;
if not assigned(vkGetDisplayPlaneCapabilitiesKHR) then begin
@vkGetDisplayPlaneCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDisplayPlaneCapabilitiesKHR'));
@vk.fCommands.GetDisplayPlaneCapabilitiesKHR:=addr(vkGetDisplayPlaneCapabilitiesKHR);
end;
if not assigned(vkCreateDisplayPlaneSurfaceKHR) then begin
@vkCreateDisplayPlaneSurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDisplayPlaneSurfaceKHR'));
@vk.fCommands.CreateDisplayPlaneSurfaceKHR:=addr(vkCreateDisplayPlaneSurfaceKHR);
end;
if not assigned(vkCreateSharedSwapchainsKHR) then begin
@vkCreateSharedSwapchainsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSharedSwapchainsKHR'));
@vk.fCommands.CreateSharedSwapchainsKHR:=addr(vkCreateSharedSwapchainsKHR);
end;
if not assigned(vkDestroySurfaceKHR) then begin
@vkDestroySurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySurfaceKHR'));
@vk.fCommands.DestroySurfaceKHR:=addr(vkDestroySurfaceKHR);
end;
if not assigned(vkGetPhysicalDeviceSurfaceSupportKHR) then begin
@vkGetPhysicalDeviceSurfaceSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceSupportKHR'));
@vk.fCommands.GetPhysicalDeviceSurfaceSupportKHR:=addr(vkGetPhysicalDeviceSurfaceSupportKHR);
end;
if not assigned(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) then begin
@vkGetPhysicalDeviceSurfaceCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceCapabilitiesKHR'));
@vk.fCommands.GetPhysicalDeviceSurfaceCapabilitiesKHR:=addr(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
end;
if not assigned(vkGetPhysicalDeviceSurfaceFormatsKHR) then begin
@vkGetPhysicalDeviceSurfaceFormatsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceFormatsKHR'));
@vk.fCommands.GetPhysicalDeviceSurfaceFormatsKHR:=addr(vkGetPhysicalDeviceSurfaceFormatsKHR);
end;
if not assigned(vkGetPhysicalDeviceSurfacePresentModesKHR) then begin
@vkGetPhysicalDeviceSurfacePresentModesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfacePresentModesKHR'));
@vk.fCommands.GetPhysicalDeviceSurfacePresentModesKHR:=addr(vkGetPhysicalDeviceSurfacePresentModesKHR);
end;
if not assigned(vkCreateSwapchainKHR) then begin
@vkCreateSwapchainKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSwapchainKHR'));
@vk.fCommands.CreateSwapchainKHR:=addr(vkCreateSwapchainKHR);
end;
if not assigned(vkDestroySwapchainKHR) then begin
@vkDestroySwapchainKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySwapchainKHR'));
@vk.fCommands.DestroySwapchainKHR:=addr(vkDestroySwapchainKHR);
end;
if not assigned(vkGetSwapchainImagesKHR) then begin
@vkGetSwapchainImagesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSwapchainImagesKHR'));
@vk.fCommands.GetSwapchainImagesKHR:=addr(vkGetSwapchainImagesKHR);
end;
if not assigned(vkAcquireNextImageKHR) then begin
@vkAcquireNextImageKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireNextImageKHR'));
@vk.fCommands.AcquireNextImageKHR:=addr(vkAcquireNextImageKHR);
end;
if not assigned(vkQueuePresentKHR) then begin
@vkQueuePresentKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueuePresentKHR'));
@vk.fCommands.QueuePresentKHR:=addr(vkQueuePresentKHR);
end;
if not assigned(vkCreateViSurfaceNN) then begin
@vkCreateViSurfaceNN:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateViSurfaceNN'));
@vk.fCommands.CreateViSurfaceNN:=addr(vkCreateViSurfaceNN);
end;
{$ifdef Wayland}
if not assigned(vkCreateWaylandSurfaceKHR) then begin
@vkCreateWaylandSurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateWaylandSurfaceKHR'));
@vk.fCommands.CreateWaylandSurfaceKHR:=addr(vkCreateWaylandSurfaceKHR);
end;
{$endif}
{$ifdef Wayland}
if not assigned(vkGetPhysicalDeviceWaylandPresentationSupportKHR) then begin
@vkGetPhysicalDeviceWaylandPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceWaylandPresentationSupportKHR'));
@vk.fCommands.GetPhysicalDeviceWaylandPresentationSupportKHR:=addr(vkGetPhysicalDeviceWaylandPresentationSupportKHR);
end;
{$endif}
{$ifdef Windows}
if not assigned(vkCreateWin32SurfaceKHR) then begin
@vkCreateWin32SurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateWin32SurfaceKHR'));
@vk.fCommands.CreateWin32SurfaceKHR:=addr(vkCreateWin32SurfaceKHR);
end;
{$endif}
{$ifdef Windows}
if not assigned(vkGetPhysicalDeviceWin32PresentationSupportKHR) then begin
@vkGetPhysicalDeviceWin32PresentationSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceWin32PresentationSupportKHR'));
@vk.fCommands.GetPhysicalDeviceWin32PresentationSupportKHR:=addr(vkGetPhysicalDeviceWin32PresentationSupportKHR);
end;
{$endif}
{$ifdef XLIB}
if not assigned(vkCreateXlibSurfaceKHR) then begin
@vkCreateXlibSurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateXlibSurfaceKHR'));
@vk.fCommands.CreateXlibSurfaceKHR:=addr(vkCreateXlibSurfaceKHR);
end;
{$endif}
{$ifdef XLIB}
if not assigned(vkGetPhysicalDeviceXlibPresentationSupportKHR) then begin
@vkGetPhysicalDeviceXlibPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceXlibPresentationSupportKHR'));
@vk.fCommands.GetPhysicalDeviceXlibPresentationSupportKHR:=addr(vkGetPhysicalDeviceXlibPresentationSupportKHR);
end;
{$endif}
{$ifdef XCB}
if not assigned(vkCreateXcbSurfaceKHR) then begin
@vkCreateXcbSurfaceKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateXcbSurfaceKHR'));
@vk.fCommands.CreateXcbSurfaceKHR:=addr(vkCreateXcbSurfaceKHR);
end;
{$endif}
{$ifdef XCB}
if not assigned(vkGetPhysicalDeviceXcbPresentationSupportKHR) then begin
@vkGetPhysicalDeviceXcbPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceXcbPresentationSupportKHR'));
@vk.fCommands.GetPhysicalDeviceXcbPresentationSupportKHR:=addr(vkGetPhysicalDeviceXcbPresentationSupportKHR);
end;
{$endif}
{$ifdef DirectFB}
if not assigned(vkCreateDirectFBSurfaceEXT) then begin
@vkCreateDirectFBSurfaceEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDirectFBSurfaceEXT'));
@vk.fCommands.CreateDirectFBSurfaceEXT:=addr(vkCreateDirectFBSurfaceEXT);
end;
{$endif}
{$ifdef DirectFB}
if not assigned(vkGetPhysicalDeviceDirectFBPresentationSupportEXT) then begin
@vkGetPhysicalDeviceDirectFBPresentationSupportEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceDirectFBPresentationSupportEXT'));
@vk.fCommands.GetPhysicalDeviceDirectFBPresentationSupportEXT:=addr(vkGetPhysicalDeviceDirectFBPresentationSupportEXT);
end;
{$endif}
{$ifdef Fuchsia}
if not assigned(vkCreateImagePipeSurfaceFUCHSIA) then begin
@vkCreateImagePipeSurfaceFUCHSIA:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateImagePipeSurfaceFUCHSIA'));
@vk.fCommands.CreateImagePipeSurfaceFUCHSIA:=addr(vkCreateImagePipeSurfaceFUCHSIA);
end;
{$endif}
if not assigned(vkCreateStreamDescriptorSurfaceGGP) then begin
@vkCreateStreamDescriptorSurfaceGGP:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateStreamDescriptorSurfaceGGP'));
@vk.fCommands.CreateStreamDescriptorSurfaceGGP:=addr(vkCreateStreamDescriptorSurfaceGGP);
end;
{$ifdef QNX}
if not assigned(vkCreateScreenSurfaceQNX) then begin
@vkCreateScreenSurfaceQNX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateScreenSurfaceQNX'));
@vk.fCommands.CreateScreenSurfaceQNX:=addr(vkCreateScreenSurfaceQNX);
end;
{$endif}
{$ifdef QNX}
if not assigned(vkGetPhysicalDeviceScreenPresentationSupportQNX) then begin
@vkGetPhysicalDeviceScreenPresentationSupportQNX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceScreenPresentationSupportQNX'));
@vk.fCommands.GetPhysicalDeviceScreenPresentationSupportQNX:=addr(vkGetPhysicalDeviceScreenPresentationSupportQNX);
end;
{$endif}
if not assigned(vkCreateDebugReportCallbackEXT) then begin
@vkCreateDebugReportCallbackEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDebugReportCallbackEXT'));
@vk.fCommands.CreateDebugReportCallbackEXT:=addr(vkCreateDebugReportCallbackEXT);
end;
if not assigned(vkDestroyDebugReportCallbackEXT) then begin
@vkDestroyDebugReportCallbackEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDebugReportCallbackEXT'));
@vk.fCommands.DestroyDebugReportCallbackEXT:=addr(vkDestroyDebugReportCallbackEXT);
end;
if not assigned(vkDebugReportMessageEXT) then begin
@vkDebugReportMessageEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDebugReportMessageEXT'));
@vk.fCommands.DebugReportMessageEXT:=addr(vkDebugReportMessageEXT);
end;
if not assigned(vkDebugMarkerSetObjectNameEXT) then begin
@vkDebugMarkerSetObjectNameEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDebugMarkerSetObjectNameEXT'));
@vk.fCommands.DebugMarkerSetObjectNameEXT:=addr(vkDebugMarkerSetObjectNameEXT);
end;
if not assigned(vkDebugMarkerSetObjectTagEXT) then begin
@vkDebugMarkerSetObjectTagEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDebugMarkerSetObjectTagEXT'));
@vk.fCommands.DebugMarkerSetObjectTagEXT:=addr(vkDebugMarkerSetObjectTagEXT);
end;
if not assigned(vkCmdDebugMarkerBeginEXT) then begin
@vkCmdDebugMarkerBeginEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDebugMarkerBeginEXT'));
@vk.fCommands.CmdDebugMarkerBeginEXT:=addr(vkCmdDebugMarkerBeginEXT);
end;
if not assigned(vkCmdDebugMarkerEndEXT) then begin
@vkCmdDebugMarkerEndEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDebugMarkerEndEXT'));
@vk.fCommands.CmdDebugMarkerEndEXT:=addr(vkCmdDebugMarkerEndEXT);
end;
if not assigned(vkCmdDebugMarkerInsertEXT) then begin
@vkCmdDebugMarkerInsertEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDebugMarkerInsertEXT'));
@vk.fCommands.CmdDebugMarkerInsertEXT:=addr(vkCmdDebugMarkerInsertEXT);
end;
if not assigned(vkGetPhysicalDeviceExternalImageFormatPropertiesNV) then begin
@vkGetPhysicalDeviceExternalImageFormatPropertiesNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'));
@vk.fCommands.GetPhysicalDeviceExternalImageFormatPropertiesNV:=addr(vkGetPhysicalDeviceExternalImageFormatPropertiesNV);
end;
{$ifdef Windows}
if not assigned(vkGetMemoryWin32HandleNV) then begin
@vkGetMemoryWin32HandleNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryWin32HandleNV'));
@vk.fCommands.GetMemoryWin32HandleNV:=addr(vkGetMemoryWin32HandleNV);
end;
{$endif}
if not assigned(vkCmdExecuteGeneratedCommandsNV) then begin
@vkCmdExecuteGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdExecuteGeneratedCommandsNV'));
@vk.fCommands.CmdExecuteGeneratedCommandsNV:=addr(vkCmdExecuteGeneratedCommandsNV);
end;
if not assigned(vkCmdPreprocessGeneratedCommandsNV) then begin
@vkCmdPreprocessGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPreprocessGeneratedCommandsNV'));
@vk.fCommands.CmdPreprocessGeneratedCommandsNV:=addr(vkCmdPreprocessGeneratedCommandsNV);
end;
if not assigned(vkCmdBindPipelineShaderGroupNV) then begin
@vkCmdBindPipelineShaderGroupNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindPipelineShaderGroupNV'));
@vk.fCommands.CmdBindPipelineShaderGroupNV:=addr(vkCmdBindPipelineShaderGroupNV);
end;
if not assigned(vkGetGeneratedCommandsMemoryRequirementsNV) then begin
@vkGetGeneratedCommandsMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetGeneratedCommandsMemoryRequirementsNV'));
@vk.fCommands.GetGeneratedCommandsMemoryRequirementsNV:=addr(vkGetGeneratedCommandsMemoryRequirementsNV);
end;
if not assigned(vkCreateIndirectCommandsLayoutNV) then begin
@vkCreateIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateIndirectCommandsLayoutNV'));
@vk.fCommands.CreateIndirectCommandsLayoutNV:=addr(vkCreateIndirectCommandsLayoutNV);
end;
if not assigned(vkDestroyIndirectCommandsLayoutNV) then begin
@vkDestroyIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyIndirectCommandsLayoutNV'));
@vk.fCommands.DestroyIndirectCommandsLayoutNV:=addr(vkDestroyIndirectCommandsLayoutNV);
end;
if not assigned(vkGetPhysicalDeviceFeatures2) then begin
@vkGetPhysicalDeviceFeatures2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFeatures2'));
@vk.fCommands.GetPhysicalDeviceFeatures2:=addr(vkGetPhysicalDeviceFeatures2);
end;
if not assigned(vkGetPhysicalDeviceFeatures2KHR) then begin
@vkGetPhysicalDeviceFeatures2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFeatures2KHR'));
@vk.fCommands.GetPhysicalDeviceFeatures2KHR:=addr(vkGetPhysicalDeviceFeatures2KHR);
end;
if not assigned(vkGetPhysicalDeviceProperties2) then begin
@vkGetPhysicalDeviceProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceProperties2'));
@vk.fCommands.GetPhysicalDeviceProperties2:=addr(vkGetPhysicalDeviceProperties2);
end;
if not assigned(vkGetPhysicalDeviceProperties2KHR) then begin
@vkGetPhysicalDeviceProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceProperties2KHR:=addr(vkGetPhysicalDeviceProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceFormatProperties2) then begin
@vkGetPhysicalDeviceFormatProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFormatProperties2'));
@vk.fCommands.GetPhysicalDeviceFormatProperties2:=addr(vkGetPhysicalDeviceFormatProperties2);
end;
if not assigned(vkGetPhysicalDeviceFormatProperties2KHR) then begin
@vkGetPhysicalDeviceFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFormatProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceFormatProperties2KHR:=addr(vkGetPhysicalDeviceFormatProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceImageFormatProperties2) then begin
@vkGetPhysicalDeviceImageFormatProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceImageFormatProperties2'));
@vk.fCommands.GetPhysicalDeviceImageFormatProperties2:=addr(vkGetPhysicalDeviceImageFormatProperties2);
end;
if not assigned(vkGetPhysicalDeviceImageFormatProperties2KHR) then begin
@vkGetPhysicalDeviceImageFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceImageFormatProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceImageFormatProperties2KHR:=addr(vkGetPhysicalDeviceImageFormatProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceQueueFamilyProperties2) then begin
@vkGetPhysicalDeviceQueueFamilyProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceQueueFamilyProperties2'));
@vk.fCommands.GetPhysicalDeviceQueueFamilyProperties2:=addr(vkGetPhysicalDeviceQueueFamilyProperties2);
end;
if not assigned(vkGetPhysicalDeviceQueueFamilyProperties2KHR) then begin
@vkGetPhysicalDeviceQueueFamilyProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceQueueFamilyProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceQueueFamilyProperties2KHR:=addr(vkGetPhysicalDeviceQueueFamilyProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceMemoryProperties2) then begin
@vkGetPhysicalDeviceMemoryProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceMemoryProperties2'));
@vk.fCommands.GetPhysicalDeviceMemoryProperties2:=addr(vkGetPhysicalDeviceMemoryProperties2);
end;
if not assigned(vkGetPhysicalDeviceMemoryProperties2KHR) then begin
@vkGetPhysicalDeviceMemoryProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceMemoryProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceMemoryProperties2KHR:=addr(vkGetPhysicalDeviceMemoryProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceSparseImageFormatProperties2) then begin
@vkGetPhysicalDeviceSparseImageFormatProperties2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSparseImageFormatProperties2'));
@vk.fCommands.GetPhysicalDeviceSparseImageFormatProperties2:=addr(vkGetPhysicalDeviceSparseImageFormatProperties2);
end;
if not assigned(vkGetPhysicalDeviceSparseImageFormatProperties2KHR) then begin
@vkGetPhysicalDeviceSparseImageFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSparseImageFormatProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceSparseImageFormatProperties2KHR:=addr(vkGetPhysicalDeviceSparseImageFormatProperties2KHR);
end;
if not assigned(vkCmdPushDescriptorSetKHR) then begin
@vkCmdPushDescriptorSetKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPushDescriptorSetKHR'));
@vk.fCommands.CmdPushDescriptorSetKHR:=addr(vkCmdPushDescriptorSetKHR);
end;
if not assigned(vkTrimCommandPool) then begin
@vkTrimCommandPool:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkTrimCommandPool'));
@vk.fCommands.TrimCommandPool:=addr(vkTrimCommandPool);
end;
if not assigned(vkTrimCommandPoolKHR) then begin
@vkTrimCommandPoolKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkTrimCommandPoolKHR'));
@vk.fCommands.TrimCommandPoolKHR:=addr(vkTrimCommandPoolKHR);
end;
if not assigned(vkGetPhysicalDeviceExternalBufferProperties) then begin
@vkGetPhysicalDeviceExternalBufferProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalBufferProperties'));
@vk.fCommands.GetPhysicalDeviceExternalBufferProperties:=addr(vkGetPhysicalDeviceExternalBufferProperties);
end;
if not assigned(vkGetPhysicalDeviceExternalBufferPropertiesKHR) then begin
@vkGetPhysicalDeviceExternalBufferPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalBufferPropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceExternalBufferPropertiesKHR:=addr(vkGetPhysicalDeviceExternalBufferPropertiesKHR);
end;
{$ifdef Windows}
if not assigned(vkGetMemoryWin32HandleKHR) then begin
@vkGetMemoryWin32HandleKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryWin32HandleKHR'));
@vk.fCommands.GetMemoryWin32HandleKHR:=addr(vkGetMemoryWin32HandleKHR);
end;
{$endif}
{$ifdef Windows}
if not assigned(vkGetMemoryWin32HandlePropertiesKHR) then begin
@vkGetMemoryWin32HandlePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryWin32HandlePropertiesKHR'));
@vk.fCommands.GetMemoryWin32HandlePropertiesKHR:=addr(vkGetMemoryWin32HandlePropertiesKHR);
end;
{$endif}
if not assigned(vkGetMemoryFdKHR) then begin
@vkGetMemoryFdKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryFdKHR'));
@vk.fCommands.GetMemoryFdKHR:=addr(vkGetMemoryFdKHR);
end;
if not assigned(vkGetMemoryFdPropertiesKHR) then begin
@vkGetMemoryFdPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryFdPropertiesKHR'));
@vk.fCommands.GetMemoryFdPropertiesKHR:=addr(vkGetMemoryFdPropertiesKHR);
end;
{$ifdef Fuchsia}
if not assigned(vkGetMemoryZirconHandleFUCHSIA) then begin
@vkGetMemoryZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryZirconHandleFUCHSIA'));
@vk.fCommands.GetMemoryZirconHandleFUCHSIA:=addr(vkGetMemoryZirconHandleFUCHSIA);
end;
{$endif}
{$ifdef Fuchsia}
if not assigned(vkGetMemoryZirconHandlePropertiesFUCHSIA) then begin
@vkGetMemoryZirconHandlePropertiesFUCHSIA:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryZirconHandlePropertiesFUCHSIA'));
@vk.fCommands.GetMemoryZirconHandlePropertiesFUCHSIA:=addr(vkGetMemoryZirconHandlePropertiesFUCHSIA);
end;
{$endif}
if not assigned(vkGetMemoryRemoteAddressNV) then begin
@vkGetMemoryRemoteAddressNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryRemoteAddressNV'));
@vk.fCommands.GetMemoryRemoteAddressNV:=addr(vkGetMemoryRemoteAddressNV);
end;
if not assigned(vkGetPhysicalDeviceExternalSemaphoreProperties) then begin
@vkGetPhysicalDeviceExternalSemaphoreProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalSemaphoreProperties'));
@vk.fCommands.GetPhysicalDeviceExternalSemaphoreProperties:=addr(vkGetPhysicalDeviceExternalSemaphoreProperties);
end;
if not assigned(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR) then begin
@vkGetPhysicalDeviceExternalSemaphorePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalSemaphorePropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceExternalSemaphorePropertiesKHR:=addr(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR);
end;
{$ifdef Windows}
if not assigned(vkGetSemaphoreWin32HandleKHR) then begin
@vkGetSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSemaphoreWin32HandleKHR'));
@vk.fCommands.GetSemaphoreWin32HandleKHR:=addr(vkGetSemaphoreWin32HandleKHR);
end;
{$endif}
{$ifdef Windows}
if not assigned(vkImportSemaphoreWin32HandleKHR) then begin
@vkImportSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkImportSemaphoreWin32HandleKHR'));
@vk.fCommands.ImportSemaphoreWin32HandleKHR:=addr(vkImportSemaphoreWin32HandleKHR);
end;
{$endif}
if not assigned(vkGetSemaphoreFdKHR) then begin
@vkGetSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSemaphoreFdKHR'));
@vk.fCommands.GetSemaphoreFdKHR:=addr(vkGetSemaphoreFdKHR);
end;
if not assigned(vkImportSemaphoreFdKHR) then begin
@vkImportSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkImportSemaphoreFdKHR'));
@vk.fCommands.ImportSemaphoreFdKHR:=addr(vkImportSemaphoreFdKHR);
end;
{$ifdef Fuchsia}
if not assigned(vkGetSemaphoreZirconHandleFUCHSIA) then begin
@vkGetSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSemaphoreZirconHandleFUCHSIA'));
@vk.fCommands.GetSemaphoreZirconHandleFUCHSIA:=addr(vkGetSemaphoreZirconHandleFUCHSIA);
end;
{$endif}
{$ifdef Fuchsia}
if not assigned(vkImportSemaphoreZirconHandleFUCHSIA) then begin
@vkImportSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkImportSemaphoreZirconHandleFUCHSIA'));
@vk.fCommands.ImportSemaphoreZirconHandleFUCHSIA:=addr(vkImportSemaphoreZirconHandleFUCHSIA);
end;
{$endif}
if not assigned(vkGetPhysicalDeviceExternalFenceProperties) then begin
@vkGetPhysicalDeviceExternalFenceProperties:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalFenceProperties'));
@vk.fCommands.GetPhysicalDeviceExternalFenceProperties:=addr(vkGetPhysicalDeviceExternalFenceProperties);
end;
if not assigned(vkGetPhysicalDeviceExternalFencePropertiesKHR) then begin
@vkGetPhysicalDeviceExternalFencePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceExternalFencePropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceExternalFencePropertiesKHR:=addr(vkGetPhysicalDeviceExternalFencePropertiesKHR);
end;
{$ifdef Windows}
if not assigned(vkGetFenceWin32HandleKHR) then begin
@vkGetFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetFenceWin32HandleKHR'));
@vk.fCommands.GetFenceWin32HandleKHR:=addr(vkGetFenceWin32HandleKHR);
end;
{$endif}
{$ifdef Windows}
if not assigned(vkImportFenceWin32HandleKHR) then begin
@vkImportFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkImportFenceWin32HandleKHR'));
@vk.fCommands.ImportFenceWin32HandleKHR:=addr(vkImportFenceWin32HandleKHR);
end;
{$endif}
if not assigned(vkGetFenceFdKHR) then begin
@vkGetFenceFdKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetFenceFdKHR'));
@vk.fCommands.GetFenceFdKHR:=addr(vkGetFenceFdKHR);
end;
if not assigned(vkImportFenceFdKHR) then begin
@vkImportFenceFdKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkImportFenceFdKHR'));
@vk.fCommands.ImportFenceFdKHR:=addr(vkImportFenceFdKHR);
end;
if not assigned(vkReleaseDisplayEXT) then begin
@vkReleaseDisplayEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkReleaseDisplayEXT'));
@vk.fCommands.ReleaseDisplayEXT:=addr(vkReleaseDisplayEXT);
end;
{$ifdef XLIB}
if not assigned(vkAcquireXlibDisplayEXT) then begin
@vkAcquireXlibDisplayEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireXlibDisplayEXT'));
@vk.fCommands.AcquireXlibDisplayEXT:=addr(vkAcquireXlibDisplayEXT);
end;
{$endif}
{$ifdef RandR}
if not assigned(vkGetRandROutputDisplayEXT) then begin
@vkGetRandROutputDisplayEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRandROutputDisplayEXT'));
@vk.fCommands.GetRandROutputDisplayEXT:=addr(vkGetRandROutputDisplayEXT);
end;
{$endif}
if not assigned(vkAcquireWinrtDisplayNV) then begin
@vkAcquireWinrtDisplayNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireWinrtDisplayNV'));
@vk.fCommands.AcquireWinrtDisplayNV:=addr(vkAcquireWinrtDisplayNV);
end;
if not assigned(vkGetWinrtDisplayNV) then begin
@vkGetWinrtDisplayNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetWinrtDisplayNV'));
@vk.fCommands.GetWinrtDisplayNV:=addr(vkGetWinrtDisplayNV);
end;
if not assigned(vkDisplayPowerControlEXT) then begin
@vkDisplayPowerControlEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDisplayPowerControlEXT'));
@vk.fCommands.DisplayPowerControlEXT:=addr(vkDisplayPowerControlEXT);
end;
if not assigned(vkRegisterDeviceEventEXT) then begin
@vkRegisterDeviceEventEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkRegisterDeviceEventEXT'));
@vk.fCommands.RegisterDeviceEventEXT:=addr(vkRegisterDeviceEventEXT);
end;
if not assigned(vkRegisterDisplayEventEXT) then begin
@vkRegisterDisplayEventEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkRegisterDisplayEventEXT'));
@vk.fCommands.RegisterDisplayEventEXT:=addr(vkRegisterDisplayEventEXT);
end;
if not assigned(vkGetSwapchainCounterEXT) then begin
@vkGetSwapchainCounterEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSwapchainCounterEXT'));
@vk.fCommands.GetSwapchainCounterEXT:=addr(vkGetSwapchainCounterEXT);
end;
if not assigned(vkGetPhysicalDeviceSurfaceCapabilities2EXT) then begin
@vkGetPhysicalDeviceSurfaceCapabilities2EXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceCapabilities2EXT'));
@vk.fCommands.GetPhysicalDeviceSurfaceCapabilities2EXT:=addr(vkGetPhysicalDeviceSurfaceCapabilities2EXT);
end;
if not assigned(vkEnumeratePhysicalDeviceGroups) then begin
@vkEnumeratePhysicalDeviceGroups:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumeratePhysicalDeviceGroups'));
@vk.fCommands.EnumeratePhysicalDeviceGroups:=addr(vkEnumeratePhysicalDeviceGroups);
end;
if not assigned(vkEnumeratePhysicalDeviceGroupsKHR) then begin
@vkEnumeratePhysicalDeviceGroupsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumeratePhysicalDeviceGroupsKHR'));
@vk.fCommands.EnumeratePhysicalDeviceGroupsKHR:=addr(vkEnumeratePhysicalDeviceGroupsKHR);
end;
if not assigned(vkGetDeviceGroupPeerMemoryFeatures) then begin
@vkGetDeviceGroupPeerMemoryFeatures:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceGroupPeerMemoryFeatures'));
@vk.fCommands.GetDeviceGroupPeerMemoryFeatures:=addr(vkGetDeviceGroupPeerMemoryFeatures);
end;
if not assigned(vkGetDeviceGroupPeerMemoryFeaturesKHR) then begin
@vkGetDeviceGroupPeerMemoryFeaturesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceGroupPeerMemoryFeaturesKHR'));
@vk.fCommands.GetDeviceGroupPeerMemoryFeaturesKHR:=addr(vkGetDeviceGroupPeerMemoryFeaturesKHR);
end;
if not assigned(vkBindBufferMemory2) then begin
@vkBindBufferMemory2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindBufferMemory2'));
@vk.fCommands.BindBufferMemory2:=addr(vkBindBufferMemory2);
end;
if not assigned(vkBindBufferMemory2KHR) then begin
@vkBindBufferMemory2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindBufferMemory2KHR'));
@vk.fCommands.BindBufferMemory2KHR:=addr(vkBindBufferMemory2KHR);
end;
if not assigned(vkBindImageMemory2) then begin
@vkBindImageMemory2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindImageMemory2'));
@vk.fCommands.BindImageMemory2:=addr(vkBindImageMemory2);
end;
if not assigned(vkBindImageMemory2KHR) then begin
@vkBindImageMemory2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindImageMemory2KHR'));
@vk.fCommands.BindImageMemory2KHR:=addr(vkBindImageMemory2KHR);
end;
if not assigned(vkCmdSetDeviceMask) then begin
@vkCmdSetDeviceMask:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDeviceMask'));
@vk.fCommands.CmdSetDeviceMask:=addr(vkCmdSetDeviceMask);
end;
if not assigned(vkCmdSetDeviceMaskKHR) then begin
@vkCmdSetDeviceMaskKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDeviceMaskKHR'));
@vk.fCommands.CmdSetDeviceMaskKHR:=addr(vkCmdSetDeviceMaskKHR);
end;
if not assigned(vkGetDeviceGroupPresentCapabilitiesKHR) then begin
@vkGetDeviceGroupPresentCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceGroupPresentCapabilitiesKHR'));
@vk.fCommands.GetDeviceGroupPresentCapabilitiesKHR:=addr(vkGetDeviceGroupPresentCapabilitiesKHR);
end;
if not assigned(vkGetDeviceGroupSurfacePresentModesKHR) then begin
@vkGetDeviceGroupSurfacePresentModesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceGroupSurfacePresentModesKHR'));
@vk.fCommands.GetDeviceGroupSurfacePresentModesKHR:=addr(vkGetDeviceGroupSurfacePresentModesKHR);
end;
if not assigned(vkAcquireNextImage2KHR) then begin
@vkAcquireNextImage2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireNextImage2KHR'));
@vk.fCommands.AcquireNextImage2KHR:=addr(vkAcquireNextImage2KHR);
end;
if not assigned(vkCmdDispatchBase) then begin
@vkCmdDispatchBase:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDispatchBase'));
@vk.fCommands.CmdDispatchBase:=addr(vkCmdDispatchBase);
end;
if not assigned(vkCmdDispatchBaseKHR) then begin
@vkCmdDispatchBaseKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDispatchBaseKHR'));
@vk.fCommands.CmdDispatchBaseKHR:=addr(vkCmdDispatchBaseKHR);
end;
if not assigned(vkGetPhysicalDevicePresentRectanglesKHR) then begin
@vkGetPhysicalDevicePresentRectanglesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDevicePresentRectanglesKHR'));
@vk.fCommands.GetPhysicalDevicePresentRectanglesKHR:=addr(vkGetPhysicalDevicePresentRectanglesKHR);
end;
if not assigned(vkCreateDescriptorUpdateTemplate) then begin
@vkCreateDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDescriptorUpdateTemplate'));
@vk.fCommands.CreateDescriptorUpdateTemplate:=addr(vkCreateDescriptorUpdateTemplate);
end;
if not assigned(vkCreateDescriptorUpdateTemplateKHR) then begin
@vkCreateDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDescriptorUpdateTemplateKHR'));
@vk.fCommands.CreateDescriptorUpdateTemplateKHR:=addr(vkCreateDescriptorUpdateTemplateKHR);
end;
if not assigned(vkDestroyDescriptorUpdateTemplate) then begin
@vkDestroyDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDescriptorUpdateTemplate'));
@vk.fCommands.DestroyDescriptorUpdateTemplate:=addr(vkDestroyDescriptorUpdateTemplate);
end;
if not assigned(vkDestroyDescriptorUpdateTemplateKHR) then begin
@vkDestroyDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDescriptorUpdateTemplateKHR'));
@vk.fCommands.DestroyDescriptorUpdateTemplateKHR:=addr(vkDestroyDescriptorUpdateTemplateKHR);
end;
if not assigned(vkUpdateDescriptorSetWithTemplate) then begin
@vkUpdateDescriptorSetWithTemplate:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUpdateDescriptorSetWithTemplate'));
@vk.fCommands.UpdateDescriptorSetWithTemplate:=addr(vkUpdateDescriptorSetWithTemplate);
end;
if not assigned(vkUpdateDescriptorSetWithTemplateKHR) then begin
@vkUpdateDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUpdateDescriptorSetWithTemplateKHR'));
@vk.fCommands.UpdateDescriptorSetWithTemplateKHR:=addr(vkUpdateDescriptorSetWithTemplateKHR);
end;
if not assigned(vkCmdPushDescriptorSetWithTemplateKHR) then begin
@vkCmdPushDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPushDescriptorSetWithTemplateKHR'));
@vk.fCommands.CmdPushDescriptorSetWithTemplateKHR:=addr(vkCmdPushDescriptorSetWithTemplateKHR);
end;
if not assigned(vkSetHdrMetadataEXT) then begin
@vkSetHdrMetadataEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetHdrMetadataEXT'));
@vk.fCommands.SetHdrMetadataEXT:=addr(vkSetHdrMetadataEXT);
end;
if not assigned(vkGetSwapchainStatusKHR) then begin
@vkGetSwapchainStatusKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSwapchainStatusKHR'));
@vk.fCommands.GetSwapchainStatusKHR:=addr(vkGetSwapchainStatusKHR);
end;
if not assigned(vkGetRefreshCycleDurationGOOGLE) then begin
@vkGetRefreshCycleDurationGOOGLE:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRefreshCycleDurationGOOGLE'));
@vk.fCommands.GetRefreshCycleDurationGOOGLE:=addr(vkGetRefreshCycleDurationGOOGLE);
end;
if not assigned(vkGetPastPresentationTimingGOOGLE) then begin
@vkGetPastPresentationTimingGOOGLE:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPastPresentationTimingGOOGLE'));
@vk.fCommands.GetPastPresentationTimingGOOGLE:=addr(vkGetPastPresentationTimingGOOGLE);
end;
{$ifdef MoltenVK_IOS}
if not assigned(vkCreateIOSSurfaceMVK) then begin
@vkCreateIOSSurfaceMVK:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateIOSSurfaceMVK'));
@vk.fCommands.CreateIOSSurfaceMVK:=addr(vkCreateIOSSurfaceMVK);
end;
{$endif}
{$ifdef MoltenVK_MacOS}
if not assigned(vkCreateMacOSSurfaceMVK) then begin
@vkCreateMacOSSurfaceMVK:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateMacOSSurfaceMVK'));
@vk.fCommands.CreateMacOSSurfaceMVK:=addr(vkCreateMacOSSurfaceMVK);
end;
{$endif}
if not assigned(vkCreateMetalSurfaceEXT) then begin
@vkCreateMetalSurfaceEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateMetalSurfaceEXT'));
@vk.fCommands.CreateMetalSurfaceEXT:=addr(vkCreateMetalSurfaceEXT);
end;
if not assigned(vkCmdSetViewportWScalingNV) then begin
@vkCmdSetViewportWScalingNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetViewportWScalingNV'));
@vk.fCommands.CmdSetViewportWScalingNV:=addr(vkCmdSetViewportWScalingNV);
end;
if not assigned(vkCmdSetDiscardRectangleEXT) then begin
@vkCmdSetDiscardRectangleEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDiscardRectangleEXT'));
@vk.fCommands.CmdSetDiscardRectangleEXT:=addr(vkCmdSetDiscardRectangleEXT);
end;
if not assigned(vkCmdSetSampleLocationsEXT) then begin
@vkCmdSetSampleLocationsEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetSampleLocationsEXT'));
@vk.fCommands.CmdSetSampleLocationsEXT:=addr(vkCmdSetSampleLocationsEXT);
end;
if not assigned(vkGetPhysicalDeviceMultisamplePropertiesEXT) then begin
@vkGetPhysicalDeviceMultisamplePropertiesEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceMultisamplePropertiesEXT'));
@vk.fCommands.GetPhysicalDeviceMultisamplePropertiesEXT:=addr(vkGetPhysicalDeviceMultisamplePropertiesEXT);
end;
if not assigned(vkGetPhysicalDeviceSurfaceCapabilities2KHR) then begin
@vkGetPhysicalDeviceSurfaceCapabilities2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceCapabilities2KHR'));
@vk.fCommands.GetPhysicalDeviceSurfaceCapabilities2KHR:=addr(vkGetPhysicalDeviceSurfaceCapabilities2KHR);
end;
if not assigned(vkGetPhysicalDeviceSurfaceFormats2KHR) then begin
@vkGetPhysicalDeviceSurfaceFormats2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfaceFormats2KHR'));
@vk.fCommands.GetPhysicalDeviceSurfaceFormats2KHR:=addr(vkGetPhysicalDeviceSurfaceFormats2KHR);
end;
if not assigned(vkGetPhysicalDeviceDisplayProperties2KHR) then begin
@vkGetPhysicalDeviceDisplayProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceDisplayProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceDisplayProperties2KHR:=addr(vkGetPhysicalDeviceDisplayProperties2KHR);
end;
if not assigned(vkGetPhysicalDeviceDisplayPlaneProperties2KHR) then begin
@vkGetPhysicalDeviceDisplayPlaneProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceDisplayPlaneProperties2KHR'));
@vk.fCommands.GetPhysicalDeviceDisplayPlaneProperties2KHR:=addr(vkGetPhysicalDeviceDisplayPlaneProperties2KHR);
end;
if not assigned(vkGetDisplayModeProperties2KHR) then begin
@vkGetDisplayModeProperties2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDisplayModeProperties2KHR'));
@vk.fCommands.GetDisplayModeProperties2KHR:=addr(vkGetDisplayModeProperties2KHR);
end;
if not assigned(vkGetDisplayPlaneCapabilities2KHR) then begin
@vkGetDisplayPlaneCapabilities2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDisplayPlaneCapabilities2KHR'));
@vk.fCommands.GetDisplayPlaneCapabilities2KHR:=addr(vkGetDisplayPlaneCapabilities2KHR);
end;
if not assigned(vkGetBufferMemoryRequirements2) then begin
@vkGetBufferMemoryRequirements2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferMemoryRequirements2'));
@vk.fCommands.GetBufferMemoryRequirements2:=addr(vkGetBufferMemoryRequirements2);
end;
if not assigned(vkGetBufferMemoryRequirements2KHR) then begin
@vkGetBufferMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferMemoryRequirements2KHR'));
@vk.fCommands.GetBufferMemoryRequirements2KHR:=addr(vkGetBufferMemoryRequirements2KHR);
end;
if not assigned(vkGetImageMemoryRequirements2) then begin
@vkGetImageMemoryRequirements2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageMemoryRequirements2'));
@vk.fCommands.GetImageMemoryRequirements2:=addr(vkGetImageMemoryRequirements2);
end;
if not assigned(vkGetImageMemoryRequirements2KHR) then begin
@vkGetImageMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageMemoryRequirements2KHR'));
@vk.fCommands.GetImageMemoryRequirements2KHR:=addr(vkGetImageMemoryRequirements2KHR);
end;
if not assigned(vkGetImageSparseMemoryRequirements2) then begin
@vkGetImageSparseMemoryRequirements2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageSparseMemoryRequirements2'));
@vk.fCommands.GetImageSparseMemoryRequirements2:=addr(vkGetImageSparseMemoryRequirements2);
end;
if not assigned(vkGetImageSparseMemoryRequirements2KHR) then begin
@vkGetImageSparseMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageSparseMemoryRequirements2KHR'));
@vk.fCommands.GetImageSparseMemoryRequirements2KHR:=addr(vkGetImageSparseMemoryRequirements2KHR);
end;
if not assigned(vkCreateSamplerYcbcrConversion) then begin
@vkCreateSamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSamplerYcbcrConversion'));
@vk.fCommands.CreateSamplerYcbcrConversion:=addr(vkCreateSamplerYcbcrConversion);
end;
if not assigned(vkCreateSamplerYcbcrConversionKHR) then begin
@vkCreateSamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateSamplerYcbcrConversionKHR'));
@vk.fCommands.CreateSamplerYcbcrConversionKHR:=addr(vkCreateSamplerYcbcrConversionKHR);
end;
if not assigned(vkDestroySamplerYcbcrConversion) then begin
@vkDestroySamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySamplerYcbcrConversion'));
@vk.fCommands.DestroySamplerYcbcrConversion:=addr(vkDestroySamplerYcbcrConversion);
end;
if not assigned(vkDestroySamplerYcbcrConversionKHR) then begin
@vkDestroySamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroySamplerYcbcrConversionKHR'));
@vk.fCommands.DestroySamplerYcbcrConversionKHR:=addr(vkDestroySamplerYcbcrConversionKHR);
end;
if not assigned(vkGetDeviceQueue2) then begin
@vkGetDeviceQueue2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceQueue2'));
@vk.fCommands.GetDeviceQueue2:=addr(vkGetDeviceQueue2);
end;
if not assigned(vkCreateValidationCacheEXT) then begin
@vkCreateValidationCacheEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateValidationCacheEXT'));
@vk.fCommands.CreateValidationCacheEXT:=addr(vkCreateValidationCacheEXT);
end;
if not assigned(vkDestroyValidationCacheEXT) then begin
@vkDestroyValidationCacheEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyValidationCacheEXT'));
@vk.fCommands.DestroyValidationCacheEXT:=addr(vkDestroyValidationCacheEXT);
end;
if not assigned(vkGetValidationCacheDataEXT) then begin
@vkGetValidationCacheDataEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetValidationCacheDataEXT'));
@vk.fCommands.GetValidationCacheDataEXT:=addr(vkGetValidationCacheDataEXT);
end;
if not assigned(vkMergeValidationCachesEXT) then begin
@vkMergeValidationCachesEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkMergeValidationCachesEXT'));
@vk.fCommands.MergeValidationCachesEXT:=addr(vkMergeValidationCachesEXT);
end;
if not assigned(vkGetDescriptorSetLayoutSupport) then begin
@vkGetDescriptorSetLayoutSupport:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDescriptorSetLayoutSupport'));
@vk.fCommands.GetDescriptorSetLayoutSupport:=addr(vkGetDescriptorSetLayoutSupport);
end;
if not assigned(vkGetDescriptorSetLayoutSupportKHR) then begin
@vkGetDescriptorSetLayoutSupportKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDescriptorSetLayoutSupportKHR'));
@vk.fCommands.GetDescriptorSetLayoutSupportKHR:=addr(vkGetDescriptorSetLayoutSupportKHR);
end;
if not assigned(vkGetSwapchainGrallocUsageANDROID) then begin
@vkGetSwapchainGrallocUsageANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSwapchainGrallocUsageANDROID'));
@vk.fCommands.GetSwapchainGrallocUsageANDROID:=addr(vkGetSwapchainGrallocUsageANDROID);
end;
{$ifdef Android}
if not assigned(vkGetSwapchainGrallocUsage2ANDROID) then begin
@vkGetSwapchainGrallocUsage2ANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSwapchainGrallocUsage2ANDROID'));
@vk.fCommands.GetSwapchainGrallocUsage2ANDROID:=addr(vkGetSwapchainGrallocUsage2ANDROID);
end;
{$endif}
if not assigned(vkAcquireImageANDROID) then begin
@vkAcquireImageANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireImageANDROID'));
@vk.fCommands.AcquireImageANDROID:=addr(vkAcquireImageANDROID);
end;
if not assigned(vkQueueSignalReleaseImageANDROID) then begin
@vkQueueSignalReleaseImageANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueSignalReleaseImageANDROID'));
@vk.fCommands.QueueSignalReleaseImageANDROID:=addr(vkQueueSignalReleaseImageANDROID);
end;
if not assigned(vkGetShaderInfoAMD) then begin
@vkGetShaderInfoAMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetShaderInfoAMD'));
@vk.fCommands.GetShaderInfoAMD:=addr(vkGetShaderInfoAMD);
end;
if not assigned(vkSetLocalDimmingAMD) then begin
@vkSetLocalDimmingAMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetLocalDimmingAMD'));
@vk.fCommands.SetLocalDimmingAMD:=addr(vkSetLocalDimmingAMD);
end;
if not assigned(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) then begin
@vkGetPhysicalDeviceCalibrateableTimeDomainsEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceCalibrateableTimeDomainsEXT'));
@vk.fCommands.GetPhysicalDeviceCalibrateableTimeDomainsEXT:=addr(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
end;
if not assigned(vkGetCalibratedTimestampsEXT) then begin
@vkGetCalibratedTimestampsEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetCalibratedTimestampsEXT'));
@vk.fCommands.GetCalibratedTimestampsEXT:=addr(vkGetCalibratedTimestampsEXT);
end;
if not assigned(vkSetDebugUtilsObjectNameEXT) then begin
@vkSetDebugUtilsObjectNameEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetDebugUtilsObjectNameEXT'));
@vk.fCommands.SetDebugUtilsObjectNameEXT:=addr(vkSetDebugUtilsObjectNameEXT);
end;
if not assigned(vkSetDebugUtilsObjectTagEXT) then begin
@vkSetDebugUtilsObjectTagEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetDebugUtilsObjectTagEXT'));
@vk.fCommands.SetDebugUtilsObjectTagEXT:=addr(vkSetDebugUtilsObjectTagEXT);
end;
if not assigned(vkQueueBeginDebugUtilsLabelEXT) then begin
@vkQueueBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueBeginDebugUtilsLabelEXT'));
@vk.fCommands.QueueBeginDebugUtilsLabelEXT:=addr(vkQueueBeginDebugUtilsLabelEXT);
end;
if not assigned(vkQueueEndDebugUtilsLabelEXT) then begin
@vkQueueEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueEndDebugUtilsLabelEXT'));
@vk.fCommands.QueueEndDebugUtilsLabelEXT:=addr(vkQueueEndDebugUtilsLabelEXT);
end;
if not assigned(vkQueueInsertDebugUtilsLabelEXT) then begin
@vkQueueInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueInsertDebugUtilsLabelEXT'));
@vk.fCommands.QueueInsertDebugUtilsLabelEXT:=addr(vkQueueInsertDebugUtilsLabelEXT);
end;
if not assigned(vkCmdBeginDebugUtilsLabelEXT) then begin
@vkCmdBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginDebugUtilsLabelEXT'));
@vk.fCommands.CmdBeginDebugUtilsLabelEXT:=addr(vkCmdBeginDebugUtilsLabelEXT);
end;
if not assigned(vkCmdEndDebugUtilsLabelEXT) then begin
@vkCmdEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndDebugUtilsLabelEXT'));
@vk.fCommands.CmdEndDebugUtilsLabelEXT:=addr(vkCmdEndDebugUtilsLabelEXT);
end;
if not assigned(vkCmdInsertDebugUtilsLabelEXT) then begin
@vkCmdInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdInsertDebugUtilsLabelEXT'));
@vk.fCommands.CmdInsertDebugUtilsLabelEXT:=addr(vkCmdInsertDebugUtilsLabelEXT);
end;
if not assigned(vkCreateDebugUtilsMessengerEXT) then begin
@vkCreateDebugUtilsMessengerEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDebugUtilsMessengerEXT'));
@vk.fCommands.CreateDebugUtilsMessengerEXT:=addr(vkCreateDebugUtilsMessengerEXT);
end;
if not assigned(vkDestroyDebugUtilsMessengerEXT) then begin
@vkDestroyDebugUtilsMessengerEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDebugUtilsMessengerEXT'));
@vk.fCommands.DestroyDebugUtilsMessengerEXT:=addr(vkDestroyDebugUtilsMessengerEXT);
end;
if not assigned(vkSubmitDebugUtilsMessageEXT) then begin
@vkSubmitDebugUtilsMessageEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSubmitDebugUtilsMessageEXT'));
@vk.fCommands.SubmitDebugUtilsMessageEXT:=addr(vkSubmitDebugUtilsMessageEXT);
end;
if not assigned(vkGetMemoryHostPointerPropertiesEXT) then begin
@vkGetMemoryHostPointerPropertiesEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryHostPointerPropertiesEXT'));
@vk.fCommands.GetMemoryHostPointerPropertiesEXT:=addr(vkGetMemoryHostPointerPropertiesEXT);
end;
if not assigned(vkCmdWriteBufferMarkerAMD) then begin
@vkCmdWriteBufferMarkerAMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteBufferMarkerAMD'));
@vk.fCommands.CmdWriteBufferMarkerAMD:=addr(vkCmdWriteBufferMarkerAMD);
end;
if not assigned(vkCreateRenderPass2) then begin
@vkCreateRenderPass2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateRenderPass2'));
@vk.fCommands.CreateRenderPass2:=addr(vkCreateRenderPass2);
end;
if not assigned(vkCreateRenderPass2KHR) then begin
@vkCreateRenderPass2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateRenderPass2KHR'));
@vk.fCommands.CreateRenderPass2KHR:=addr(vkCreateRenderPass2KHR);
end;
if not assigned(vkCmdBeginRenderPass2) then begin
@vkCmdBeginRenderPass2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginRenderPass2'));
@vk.fCommands.CmdBeginRenderPass2:=addr(vkCmdBeginRenderPass2);
end;
if not assigned(vkCmdBeginRenderPass2KHR) then begin
@vkCmdBeginRenderPass2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginRenderPass2KHR'));
@vk.fCommands.CmdBeginRenderPass2KHR:=addr(vkCmdBeginRenderPass2KHR);
end;
if not assigned(vkCmdNextSubpass2) then begin
@vkCmdNextSubpass2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdNextSubpass2'));
@vk.fCommands.CmdNextSubpass2:=addr(vkCmdNextSubpass2);
end;
if not assigned(vkCmdNextSubpass2KHR) then begin
@vkCmdNextSubpass2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdNextSubpass2KHR'));
@vk.fCommands.CmdNextSubpass2KHR:=addr(vkCmdNextSubpass2KHR);
end;
if not assigned(vkCmdEndRenderPass2) then begin
@vkCmdEndRenderPass2:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndRenderPass2'));
@vk.fCommands.CmdEndRenderPass2:=addr(vkCmdEndRenderPass2);
end;
if not assigned(vkCmdEndRenderPass2KHR) then begin
@vkCmdEndRenderPass2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndRenderPass2KHR'));
@vk.fCommands.CmdEndRenderPass2KHR:=addr(vkCmdEndRenderPass2KHR);
end;
if not assigned(vkGetSemaphoreCounterValue) then begin
@vkGetSemaphoreCounterValue:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSemaphoreCounterValue'));
@vk.fCommands.GetSemaphoreCounterValue:=addr(vkGetSemaphoreCounterValue);
end;
if not assigned(vkGetSemaphoreCounterValueKHR) then begin
@vkGetSemaphoreCounterValueKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetSemaphoreCounterValueKHR'));
@vk.fCommands.GetSemaphoreCounterValueKHR:=addr(vkGetSemaphoreCounterValueKHR);
end;
if not assigned(vkWaitSemaphores) then begin
@vkWaitSemaphores:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkWaitSemaphores'));
@vk.fCommands.WaitSemaphores:=addr(vkWaitSemaphores);
end;
if not assigned(vkWaitSemaphoresKHR) then begin
@vkWaitSemaphoresKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkWaitSemaphoresKHR'));
@vk.fCommands.WaitSemaphoresKHR:=addr(vkWaitSemaphoresKHR);
end;
if not assigned(vkSignalSemaphore) then begin
@vkSignalSemaphore:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSignalSemaphore'));
@vk.fCommands.SignalSemaphore:=addr(vkSignalSemaphore);
end;
if not assigned(vkSignalSemaphoreKHR) then begin
@vkSignalSemaphoreKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSignalSemaphoreKHR'));
@vk.fCommands.SignalSemaphoreKHR:=addr(vkSignalSemaphoreKHR);
end;
{$ifdef Android}
if not assigned(vkGetAndroidHardwareBufferPropertiesANDROID) then begin
@vkGetAndroidHardwareBufferPropertiesANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetAndroidHardwareBufferPropertiesANDROID'));
@vk.fCommands.GetAndroidHardwareBufferPropertiesANDROID:=addr(vkGetAndroidHardwareBufferPropertiesANDROID);
end;
{$endif}
{$ifdef Android}
if not assigned(vkGetMemoryAndroidHardwareBufferANDROID) then begin
@vkGetMemoryAndroidHardwareBufferANDROID:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetMemoryAndroidHardwareBufferANDROID'));
@vk.fCommands.GetMemoryAndroidHardwareBufferANDROID:=addr(vkGetMemoryAndroidHardwareBufferANDROID);
end;
{$endif}
if not assigned(vkCmdDrawIndirectCount) then begin
@vkCmdDrawIndirectCount:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndirectCount'));
@vk.fCommands.CmdDrawIndirectCount:=addr(vkCmdDrawIndirectCount);
end;
if not assigned(vkCmdDrawIndirectCountKHR) then begin
@vkCmdDrawIndirectCountKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndirectCountKHR'));
@vk.fCommands.CmdDrawIndirectCountKHR:=addr(vkCmdDrawIndirectCountKHR);
end;
if not assigned(vkCmdDrawIndirectCountAMD) then begin
@vkCmdDrawIndirectCountAMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndirectCountAMD'));
@vk.fCommands.CmdDrawIndirectCountAMD:=addr(vkCmdDrawIndirectCountAMD);
end;
if not assigned(vkCmdDrawIndexedIndirectCount) then begin
@vkCmdDrawIndexedIndirectCount:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndexedIndirectCount'));
@vk.fCommands.CmdDrawIndexedIndirectCount:=addr(vkCmdDrawIndexedIndirectCount);
end;
if not assigned(vkCmdDrawIndexedIndirectCountKHR) then begin
@vkCmdDrawIndexedIndirectCountKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndexedIndirectCountKHR'));
@vk.fCommands.CmdDrawIndexedIndirectCountKHR:=addr(vkCmdDrawIndexedIndirectCountKHR);
end;
if not assigned(vkCmdDrawIndexedIndirectCountAMD) then begin
@vkCmdDrawIndexedIndirectCountAMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndexedIndirectCountAMD'));
@vk.fCommands.CmdDrawIndexedIndirectCountAMD:=addr(vkCmdDrawIndexedIndirectCountAMD);
end;
if not assigned(vkCmdSetCheckpointNV) then begin
@vkCmdSetCheckpointNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetCheckpointNV'));
@vk.fCommands.CmdSetCheckpointNV:=addr(vkCmdSetCheckpointNV);
end;
if not assigned(vkGetQueueCheckpointDataNV) then begin
@vkGetQueueCheckpointDataNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetQueueCheckpointDataNV'));
@vk.fCommands.GetQueueCheckpointDataNV:=addr(vkGetQueueCheckpointDataNV);
end;
if not assigned(vkCmdBindTransformFeedbackBuffersEXT) then begin
@vkCmdBindTransformFeedbackBuffersEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindTransformFeedbackBuffersEXT'));
@vk.fCommands.CmdBindTransformFeedbackBuffersEXT:=addr(vkCmdBindTransformFeedbackBuffersEXT);
end;
if not assigned(vkCmdBeginTransformFeedbackEXT) then begin
@vkCmdBeginTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginTransformFeedbackEXT'));
@vk.fCommands.CmdBeginTransformFeedbackEXT:=addr(vkCmdBeginTransformFeedbackEXT);
end;
if not assigned(vkCmdEndTransformFeedbackEXT) then begin
@vkCmdEndTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndTransformFeedbackEXT'));
@vk.fCommands.CmdEndTransformFeedbackEXT:=addr(vkCmdEndTransformFeedbackEXT);
end;
if not assigned(vkCmdBeginQueryIndexedEXT) then begin
@vkCmdBeginQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginQueryIndexedEXT'));
@vk.fCommands.CmdBeginQueryIndexedEXT:=addr(vkCmdBeginQueryIndexedEXT);
end;
if not assigned(vkCmdEndQueryIndexedEXT) then begin
@vkCmdEndQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndQueryIndexedEXT'));
@vk.fCommands.CmdEndQueryIndexedEXT:=addr(vkCmdEndQueryIndexedEXT);
end;
if not assigned(vkCmdDrawIndirectByteCountEXT) then begin
@vkCmdDrawIndirectByteCountEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawIndirectByteCountEXT'));
@vk.fCommands.CmdDrawIndirectByteCountEXT:=addr(vkCmdDrawIndirectByteCountEXT);
end;
if not assigned(vkCmdSetExclusiveScissorNV) then begin
@vkCmdSetExclusiveScissorNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetExclusiveScissorNV'));
@vk.fCommands.CmdSetExclusiveScissorNV:=addr(vkCmdSetExclusiveScissorNV);
end;
if not assigned(vkCmdBindShadingRateImageNV) then begin
@vkCmdBindShadingRateImageNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindShadingRateImageNV'));
@vk.fCommands.CmdBindShadingRateImageNV:=addr(vkCmdBindShadingRateImageNV);
end;
if not assigned(vkCmdSetViewportShadingRatePaletteNV) then begin
@vkCmdSetViewportShadingRatePaletteNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetViewportShadingRatePaletteNV'));
@vk.fCommands.CmdSetViewportShadingRatePaletteNV:=addr(vkCmdSetViewportShadingRatePaletteNV);
end;
if not assigned(vkCmdSetCoarseSampleOrderNV) then begin
@vkCmdSetCoarseSampleOrderNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetCoarseSampleOrderNV'));
@vk.fCommands.CmdSetCoarseSampleOrderNV:=addr(vkCmdSetCoarseSampleOrderNV);
end;
if not assigned(vkCmdDrawMeshTasksNV) then begin
@vkCmdDrawMeshTasksNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawMeshTasksNV'));
@vk.fCommands.CmdDrawMeshTasksNV:=addr(vkCmdDrawMeshTasksNV);
end;
if not assigned(vkCmdDrawMeshTasksIndirectNV) then begin
@vkCmdDrawMeshTasksIndirectNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawMeshTasksIndirectNV'));
@vk.fCommands.CmdDrawMeshTasksIndirectNV:=addr(vkCmdDrawMeshTasksIndirectNV);
end;
if not assigned(vkCmdDrawMeshTasksIndirectCountNV) then begin
@vkCmdDrawMeshTasksIndirectCountNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDrawMeshTasksIndirectCountNV'));
@vk.fCommands.CmdDrawMeshTasksIndirectCountNV:=addr(vkCmdDrawMeshTasksIndirectCountNV);
end;
if not assigned(vkCompileDeferredNV) then begin
@vkCompileDeferredNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCompileDeferredNV'));
@vk.fCommands.CompileDeferredNV:=addr(vkCompileDeferredNV);
end;
if not assigned(vkCreateAccelerationStructureNV) then begin
@vkCreateAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateAccelerationStructureNV'));
@vk.fCommands.CreateAccelerationStructureNV:=addr(vkCreateAccelerationStructureNV);
end;
if not assigned(vkCmdBindInvocationMaskHUAWEI) then begin
@vkCmdBindInvocationMaskHUAWEI:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindInvocationMaskHUAWEI'));
@vk.fCommands.CmdBindInvocationMaskHUAWEI:=addr(vkCmdBindInvocationMaskHUAWEI);
end;
if not assigned(vkDestroyAccelerationStructureKHR) then begin
@vkDestroyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyAccelerationStructureKHR'));
@vk.fCommands.DestroyAccelerationStructureKHR:=addr(vkDestroyAccelerationStructureKHR);
end;
if not assigned(vkDestroyAccelerationStructureNV) then begin
@vkDestroyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyAccelerationStructureNV'));
@vk.fCommands.DestroyAccelerationStructureNV:=addr(vkDestroyAccelerationStructureNV);
end;
if not assigned(vkGetAccelerationStructureMemoryRequirementsNV) then begin
@vkGetAccelerationStructureMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetAccelerationStructureMemoryRequirementsNV'));
@vk.fCommands.GetAccelerationStructureMemoryRequirementsNV:=addr(vkGetAccelerationStructureMemoryRequirementsNV);
end;
if not assigned(vkBindAccelerationStructureMemoryNV) then begin
@vkBindAccelerationStructureMemoryNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindAccelerationStructureMemoryNV'));
@vk.fCommands.BindAccelerationStructureMemoryNV:=addr(vkBindAccelerationStructureMemoryNV);
end;
if not assigned(vkCmdCopyAccelerationStructureNV) then begin
@vkCmdCopyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyAccelerationStructureNV'));
@vk.fCommands.CmdCopyAccelerationStructureNV:=addr(vkCmdCopyAccelerationStructureNV);
end;
if not assigned(vkCmdCopyAccelerationStructureKHR) then begin
@vkCmdCopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyAccelerationStructureKHR'));
@vk.fCommands.CmdCopyAccelerationStructureKHR:=addr(vkCmdCopyAccelerationStructureKHR);
end;
if not assigned(vkCopyAccelerationStructureKHR) then begin
@vkCopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCopyAccelerationStructureKHR'));
@vk.fCommands.CopyAccelerationStructureKHR:=addr(vkCopyAccelerationStructureKHR);
end;
if not assigned(vkCmdCopyAccelerationStructureToMemoryKHR) then begin
@vkCmdCopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyAccelerationStructureToMemoryKHR'));
@vk.fCommands.CmdCopyAccelerationStructureToMemoryKHR:=addr(vkCmdCopyAccelerationStructureToMemoryKHR);
end;
if not assigned(vkCopyAccelerationStructureToMemoryKHR) then begin
@vkCopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCopyAccelerationStructureToMemoryKHR'));
@vk.fCommands.CopyAccelerationStructureToMemoryKHR:=addr(vkCopyAccelerationStructureToMemoryKHR);
end;
if not assigned(vkCmdCopyMemoryToAccelerationStructureKHR) then begin
@vkCmdCopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyMemoryToAccelerationStructureKHR'));
@vk.fCommands.CmdCopyMemoryToAccelerationStructureKHR:=addr(vkCmdCopyMemoryToAccelerationStructureKHR);
end;
if not assigned(vkCopyMemoryToAccelerationStructureKHR) then begin
@vkCopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCopyMemoryToAccelerationStructureKHR'));
@vk.fCommands.CopyMemoryToAccelerationStructureKHR:=addr(vkCopyMemoryToAccelerationStructureKHR);
end;
if not assigned(vkCmdWriteAccelerationStructuresPropertiesKHR) then begin
@vkCmdWriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteAccelerationStructuresPropertiesKHR'));
@vk.fCommands.CmdWriteAccelerationStructuresPropertiesKHR:=addr(vkCmdWriteAccelerationStructuresPropertiesKHR);
end;
if not assigned(vkCmdWriteAccelerationStructuresPropertiesNV) then begin
@vkCmdWriteAccelerationStructuresPropertiesNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteAccelerationStructuresPropertiesNV'));
@vk.fCommands.CmdWriteAccelerationStructuresPropertiesNV:=addr(vkCmdWriteAccelerationStructuresPropertiesNV);
end;
if not assigned(vkCmdBuildAccelerationStructureNV) then begin
@vkCmdBuildAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBuildAccelerationStructureNV'));
@vk.fCommands.CmdBuildAccelerationStructureNV:=addr(vkCmdBuildAccelerationStructureNV);
end;
if not assigned(vkWriteAccelerationStructuresPropertiesKHR) then begin
@vkWriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkWriteAccelerationStructuresPropertiesKHR'));
@vk.fCommands.WriteAccelerationStructuresPropertiesKHR:=addr(vkWriteAccelerationStructuresPropertiesKHR);
end;
if not assigned(vkCmdTraceRaysKHR) then begin
@vkCmdTraceRaysKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdTraceRaysKHR'));
@vk.fCommands.CmdTraceRaysKHR:=addr(vkCmdTraceRaysKHR);
end;
if not assigned(vkCmdTraceRaysNV) then begin
@vkCmdTraceRaysNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdTraceRaysNV'));
@vk.fCommands.CmdTraceRaysNV:=addr(vkCmdTraceRaysNV);
end;
if not assigned(vkGetRayTracingShaderGroupHandlesKHR) then begin
@vkGetRayTracingShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRayTracingShaderGroupHandlesKHR'));
@vk.fCommands.GetRayTracingShaderGroupHandlesKHR:=addr(vkGetRayTracingShaderGroupHandlesKHR);
end;
if not assigned(vkGetRayTracingShaderGroupHandlesNV) then begin
@vkGetRayTracingShaderGroupHandlesNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRayTracingShaderGroupHandlesNV'));
@vk.fCommands.GetRayTracingShaderGroupHandlesNV:=addr(vkGetRayTracingShaderGroupHandlesNV);
end;
if not assigned(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR) then begin
@vkGetRayTracingCaptureReplayShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRayTracingCaptureReplayShaderGroupHandlesKHR'));
@vk.fCommands.GetRayTracingCaptureReplayShaderGroupHandlesKHR:=addr(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR);
end;
if not assigned(vkGetAccelerationStructureHandleNV) then begin
@vkGetAccelerationStructureHandleNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetAccelerationStructureHandleNV'));
@vk.fCommands.GetAccelerationStructureHandleNV:=addr(vkGetAccelerationStructureHandleNV);
end;
if not assigned(vkCreateRayTracingPipelinesNV) then begin
@vkCreateRayTracingPipelinesNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateRayTracingPipelinesNV'));
@vk.fCommands.CreateRayTracingPipelinesNV:=addr(vkCreateRayTracingPipelinesNV);
end;
if not assigned(vkCreateRayTracingPipelinesKHR) then begin
@vkCreateRayTracingPipelinesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateRayTracingPipelinesKHR'));
@vk.fCommands.CreateRayTracingPipelinesKHR:=addr(vkCreateRayTracingPipelinesKHR);
end;
if not assigned(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV) then begin
@vkGetPhysicalDeviceCooperativeMatrixPropertiesNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceCooperativeMatrixPropertiesNV'));
@vk.fCommands.GetPhysicalDeviceCooperativeMatrixPropertiesNV:=addr(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV);
end;
if not assigned(vkCmdTraceRaysIndirectKHR) then begin
@vkCmdTraceRaysIndirectKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdTraceRaysIndirectKHR'));
@vk.fCommands.CmdTraceRaysIndirectKHR:=addr(vkCmdTraceRaysIndirectKHR);
end;
if not assigned(vkGetDeviceAccelerationStructureCompatibilityKHR) then begin
@vkGetDeviceAccelerationStructureCompatibilityKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceAccelerationStructureCompatibilityKHR'));
@vk.fCommands.GetDeviceAccelerationStructureCompatibilityKHR:=addr(vkGetDeviceAccelerationStructureCompatibilityKHR);
end;
if not assigned(vkGetRayTracingShaderGroupStackSizeKHR) then begin
@vkGetRayTracingShaderGroupStackSizeKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetRayTracingShaderGroupStackSizeKHR'));
@vk.fCommands.GetRayTracingShaderGroupStackSizeKHR:=addr(vkGetRayTracingShaderGroupStackSizeKHR);
end;
if not assigned(vkCmdSetRayTracingPipelineStackSizeKHR) then begin
@vkCmdSetRayTracingPipelineStackSizeKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetRayTracingPipelineStackSizeKHR'));
@vk.fCommands.CmdSetRayTracingPipelineStackSizeKHR:=addr(vkCmdSetRayTracingPipelineStackSizeKHR);
end;
if not assigned(vkGetImageViewHandleNVX) then begin
@vkGetImageViewHandleNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageViewHandleNVX'));
@vk.fCommands.GetImageViewHandleNVX:=addr(vkGetImageViewHandleNVX);
end;
if not assigned(vkGetImageViewAddressNVX) then begin
@vkGetImageViewAddressNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageViewAddressNVX'));
@vk.fCommands.GetImageViewAddressNVX:=addr(vkGetImageViewAddressNVX);
end;
if not assigned(vkGetPhysicalDeviceSurfacePresentModes2EXT) then begin
@vkGetPhysicalDeviceSurfacePresentModes2EXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSurfacePresentModes2EXT'));
@vk.fCommands.GetPhysicalDeviceSurfacePresentModes2EXT:=addr(vkGetPhysicalDeviceSurfacePresentModes2EXT);
end;
if not assigned(vkGetDeviceGroupSurfacePresentModes2EXT) then begin
@vkGetDeviceGroupSurfacePresentModes2EXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceGroupSurfacePresentModes2EXT'));
@vk.fCommands.GetDeviceGroupSurfacePresentModes2EXT:=addr(vkGetDeviceGroupSurfacePresentModes2EXT);
end;
if not assigned(vkAcquireFullScreenExclusiveModeEXT) then begin
@vkAcquireFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireFullScreenExclusiveModeEXT'));
@vk.fCommands.AcquireFullScreenExclusiveModeEXT:=addr(vkAcquireFullScreenExclusiveModeEXT);
end;
if not assigned(vkReleaseFullScreenExclusiveModeEXT) then begin
@vkReleaseFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkReleaseFullScreenExclusiveModeEXT'));
@vk.fCommands.ReleaseFullScreenExclusiveModeEXT:=addr(vkReleaseFullScreenExclusiveModeEXT);
end;
if not assigned(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) then begin
@vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR'));
@vk.fCommands.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:=addr(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
end;
if not assigned(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) then begin
@vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'));
@vk.fCommands.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:=addr(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
end;
if not assigned(vkAcquireProfilingLockKHR) then begin
@vkAcquireProfilingLockKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireProfilingLockKHR'));
@vk.fCommands.AcquireProfilingLockKHR:=addr(vkAcquireProfilingLockKHR);
end;
if not assigned(vkReleaseProfilingLockKHR) then begin
@vkReleaseProfilingLockKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkReleaseProfilingLockKHR'));
@vk.fCommands.ReleaseProfilingLockKHR:=addr(vkReleaseProfilingLockKHR);
end;
if not assigned(vkGetImageDrmFormatModifierPropertiesEXT) then begin
@vkGetImageDrmFormatModifierPropertiesEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetImageDrmFormatModifierPropertiesEXT'));
@vk.fCommands.GetImageDrmFormatModifierPropertiesEXT:=addr(vkGetImageDrmFormatModifierPropertiesEXT);
end;
if not assigned(vkGetBufferOpaqueCaptureAddress) then begin
@vkGetBufferOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferOpaqueCaptureAddress'));
@vk.fCommands.GetBufferOpaqueCaptureAddress:=addr(vkGetBufferOpaqueCaptureAddress);
end;
if not assigned(vkGetBufferOpaqueCaptureAddressKHR) then begin
@vkGetBufferOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferOpaqueCaptureAddressKHR'));
@vk.fCommands.GetBufferOpaqueCaptureAddressKHR:=addr(vkGetBufferOpaqueCaptureAddressKHR);
end;
if not assigned(vkGetBufferDeviceAddress) then begin
@vkGetBufferDeviceAddress:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferDeviceAddress'));
@vk.fCommands.GetBufferDeviceAddress:=addr(vkGetBufferDeviceAddress);
end;
if not assigned(vkGetBufferDeviceAddressKHR) then begin
@vkGetBufferDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferDeviceAddressKHR'));
@vk.fCommands.GetBufferDeviceAddressKHR:=addr(vkGetBufferDeviceAddressKHR);
end;
if not assigned(vkGetBufferDeviceAddressEXT) then begin
@vkGetBufferDeviceAddressEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetBufferDeviceAddressEXT'));
@vk.fCommands.GetBufferDeviceAddressEXT:=addr(vkGetBufferDeviceAddressEXT);
end;
if not assigned(vkCreateHeadlessSurfaceEXT) then begin
@vkCreateHeadlessSurfaceEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateHeadlessSurfaceEXT'));
@vk.fCommands.CreateHeadlessSurfaceEXT:=addr(vkCreateHeadlessSurfaceEXT);
end;
if not assigned(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) then begin
@vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'));
@vk.fCommands.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:=addr(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
end;
if not assigned(vkInitializePerformanceApiINTEL) then begin
@vkInitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkInitializePerformanceApiINTEL'));
@vk.fCommands.InitializePerformanceApiINTEL:=addr(vkInitializePerformanceApiINTEL);
end;
if not assigned(vkUninitializePerformanceApiINTEL) then begin
@vkUninitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUninitializePerformanceApiINTEL'));
@vk.fCommands.UninitializePerformanceApiINTEL:=addr(vkUninitializePerformanceApiINTEL);
end;
if not assigned(vkCmdSetPerformanceMarkerINTEL) then begin
@vkCmdSetPerformanceMarkerINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPerformanceMarkerINTEL'));
@vk.fCommands.CmdSetPerformanceMarkerINTEL:=addr(vkCmdSetPerformanceMarkerINTEL);
end;
if not assigned(vkCmdSetPerformanceStreamMarkerINTEL) then begin
@vkCmdSetPerformanceStreamMarkerINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPerformanceStreamMarkerINTEL'));
@vk.fCommands.CmdSetPerformanceStreamMarkerINTEL:=addr(vkCmdSetPerformanceStreamMarkerINTEL);
end;
if not assigned(vkCmdSetPerformanceOverrideINTEL) then begin
@vkCmdSetPerformanceOverrideINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPerformanceOverrideINTEL'));
@vk.fCommands.CmdSetPerformanceOverrideINTEL:=addr(vkCmdSetPerformanceOverrideINTEL);
end;
if not assigned(vkAcquirePerformanceConfigurationINTEL) then begin
@vkAcquirePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquirePerformanceConfigurationINTEL'));
@vk.fCommands.AcquirePerformanceConfigurationINTEL:=addr(vkAcquirePerformanceConfigurationINTEL);
end;
if not assigned(vkReleasePerformanceConfigurationINTEL) then begin
@vkReleasePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkReleasePerformanceConfigurationINTEL'));
@vk.fCommands.ReleasePerformanceConfigurationINTEL:=addr(vkReleasePerformanceConfigurationINTEL);
end;
if not assigned(vkQueueSetPerformanceConfigurationINTEL) then begin
@vkQueueSetPerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueSetPerformanceConfigurationINTEL'));
@vk.fCommands.QueueSetPerformanceConfigurationINTEL:=addr(vkQueueSetPerformanceConfigurationINTEL);
end;
if not assigned(vkGetPerformanceParameterINTEL) then begin
@vkGetPerformanceParameterINTEL:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPerformanceParameterINTEL'));
@vk.fCommands.GetPerformanceParameterINTEL:=addr(vkGetPerformanceParameterINTEL);
end;
if not assigned(vkGetDeviceMemoryOpaqueCaptureAddress) then begin
@vkGetDeviceMemoryOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceMemoryOpaqueCaptureAddress'));
@vk.fCommands.GetDeviceMemoryOpaqueCaptureAddress:=addr(vkGetDeviceMemoryOpaqueCaptureAddress);
end;
if not assigned(vkGetDeviceMemoryOpaqueCaptureAddressKHR) then begin
@vkGetDeviceMemoryOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeviceMemoryOpaqueCaptureAddressKHR'));
@vk.fCommands.GetDeviceMemoryOpaqueCaptureAddressKHR:=addr(vkGetDeviceMemoryOpaqueCaptureAddressKHR);
end;
if not assigned(vkGetPipelineExecutablePropertiesKHR) then begin
@vkGetPipelineExecutablePropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPipelineExecutablePropertiesKHR'));
@vk.fCommands.GetPipelineExecutablePropertiesKHR:=addr(vkGetPipelineExecutablePropertiesKHR);
end;
if not assigned(vkGetPipelineExecutableStatisticsKHR) then begin
@vkGetPipelineExecutableStatisticsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPipelineExecutableStatisticsKHR'));
@vk.fCommands.GetPipelineExecutableStatisticsKHR:=addr(vkGetPipelineExecutableStatisticsKHR);
end;
if not assigned(vkGetPipelineExecutableInternalRepresentationsKHR) then begin
@vkGetPipelineExecutableInternalRepresentationsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPipelineExecutableInternalRepresentationsKHR'));
@vk.fCommands.GetPipelineExecutableInternalRepresentationsKHR:=addr(vkGetPipelineExecutableInternalRepresentationsKHR);
end;
if not assigned(vkCmdSetLineStippleEXT) then begin
@vkCmdSetLineStippleEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetLineStippleEXT'));
@vk.fCommands.CmdSetLineStippleEXT:=addr(vkCmdSetLineStippleEXT);
end;
if not assigned(vkGetPhysicalDeviceToolPropertiesEXT) then begin
@vkGetPhysicalDeviceToolPropertiesEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceToolPropertiesEXT'));
@vk.fCommands.GetPhysicalDeviceToolPropertiesEXT:=addr(vkGetPhysicalDeviceToolPropertiesEXT);
end;
if not assigned(vkCreateAccelerationStructureKHR) then begin
@vkCreateAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateAccelerationStructureKHR'));
@vk.fCommands.CreateAccelerationStructureKHR:=addr(vkCreateAccelerationStructureKHR);
end;
if not assigned(vkCmdBuildAccelerationStructuresKHR) then begin
@vkCmdBuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBuildAccelerationStructuresKHR'));
@vk.fCommands.CmdBuildAccelerationStructuresKHR:=addr(vkCmdBuildAccelerationStructuresKHR);
end;
if not assigned(vkCmdBuildAccelerationStructuresIndirectKHR) then begin
@vkCmdBuildAccelerationStructuresIndirectKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBuildAccelerationStructuresIndirectKHR'));
@vk.fCommands.CmdBuildAccelerationStructuresIndirectKHR:=addr(vkCmdBuildAccelerationStructuresIndirectKHR);
end;
if not assigned(vkBuildAccelerationStructuresKHR) then begin
@vkBuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBuildAccelerationStructuresKHR'));
@vk.fCommands.BuildAccelerationStructuresKHR:=addr(vkBuildAccelerationStructuresKHR);
end;
if not assigned(vkGetAccelerationStructureDeviceAddressKHR) then begin
@vkGetAccelerationStructureDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetAccelerationStructureDeviceAddressKHR'));
@vk.fCommands.GetAccelerationStructureDeviceAddressKHR:=addr(vkGetAccelerationStructureDeviceAddressKHR);
end;
if not assigned(vkCreateDeferredOperationKHR) then begin
@vkCreateDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateDeferredOperationKHR'));
@vk.fCommands.CreateDeferredOperationKHR:=addr(vkCreateDeferredOperationKHR);
end;
if not assigned(vkDestroyDeferredOperationKHR) then begin
@vkDestroyDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyDeferredOperationKHR'));
@vk.fCommands.DestroyDeferredOperationKHR:=addr(vkDestroyDeferredOperationKHR);
end;
if not assigned(vkGetDeferredOperationMaxConcurrencyKHR) then begin
@vkGetDeferredOperationMaxConcurrencyKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeferredOperationMaxConcurrencyKHR'));
@vk.fCommands.GetDeferredOperationMaxConcurrencyKHR:=addr(vkGetDeferredOperationMaxConcurrencyKHR);
end;
if not assigned(vkGetDeferredOperationResultKHR) then begin
@vkGetDeferredOperationResultKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDeferredOperationResultKHR'));
@vk.fCommands.GetDeferredOperationResultKHR:=addr(vkGetDeferredOperationResultKHR);
end;
if not assigned(vkDeferredOperationJoinKHR) then begin
@vkDeferredOperationJoinKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDeferredOperationJoinKHR'));
@vk.fCommands.DeferredOperationJoinKHR:=addr(vkDeferredOperationJoinKHR);
end;
if not assigned(vkCmdSetCullModeEXT) then begin
@vkCmdSetCullModeEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetCullModeEXT'));
@vk.fCommands.CmdSetCullModeEXT:=addr(vkCmdSetCullModeEXT);
end;
if not assigned(vkCmdSetFrontFaceEXT) then begin
@vkCmdSetFrontFaceEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetFrontFaceEXT'));
@vk.fCommands.CmdSetFrontFaceEXT:=addr(vkCmdSetFrontFaceEXT);
end;
if not assigned(vkCmdSetPrimitiveTopologyEXT) then begin
@vkCmdSetPrimitiveTopologyEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPrimitiveTopologyEXT'));
@vk.fCommands.CmdSetPrimitiveTopologyEXT:=addr(vkCmdSetPrimitiveTopologyEXT);
end;
if not assigned(vkCmdSetViewportWithCountEXT) then begin
@vkCmdSetViewportWithCountEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetViewportWithCountEXT'));
@vk.fCommands.CmdSetViewportWithCountEXT:=addr(vkCmdSetViewportWithCountEXT);
end;
if not assigned(vkCmdSetScissorWithCountEXT) then begin
@vkCmdSetScissorWithCountEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetScissorWithCountEXT'));
@vk.fCommands.CmdSetScissorWithCountEXT:=addr(vkCmdSetScissorWithCountEXT);
end;
if not assigned(vkCmdBindVertexBuffers2EXT) then begin
@vkCmdBindVertexBuffers2EXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBindVertexBuffers2EXT'));
@vk.fCommands.CmdBindVertexBuffers2EXT:=addr(vkCmdBindVertexBuffers2EXT);
end;
if not assigned(vkCmdSetDepthTestEnableEXT) then begin
@vkCmdSetDepthTestEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthTestEnableEXT'));
@vk.fCommands.CmdSetDepthTestEnableEXT:=addr(vkCmdSetDepthTestEnableEXT);
end;
if not assigned(vkCmdSetDepthWriteEnableEXT) then begin
@vkCmdSetDepthWriteEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthWriteEnableEXT'));
@vk.fCommands.CmdSetDepthWriteEnableEXT:=addr(vkCmdSetDepthWriteEnableEXT);
end;
if not assigned(vkCmdSetDepthCompareOpEXT) then begin
@vkCmdSetDepthCompareOpEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthCompareOpEXT'));
@vk.fCommands.CmdSetDepthCompareOpEXT:=addr(vkCmdSetDepthCompareOpEXT);
end;
if not assigned(vkCmdSetDepthBoundsTestEnableEXT) then begin
@vkCmdSetDepthBoundsTestEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthBoundsTestEnableEXT'));
@vk.fCommands.CmdSetDepthBoundsTestEnableEXT:=addr(vkCmdSetDepthBoundsTestEnableEXT);
end;
if not assigned(vkCmdSetStencilTestEnableEXT) then begin
@vkCmdSetStencilTestEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetStencilTestEnableEXT'));
@vk.fCommands.CmdSetStencilTestEnableEXT:=addr(vkCmdSetStencilTestEnableEXT);
end;
if not assigned(vkCmdSetStencilOpEXT) then begin
@vkCmdSetStencilOpEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetStencilOpEXT'));
@vk.fCommands.CmdSetStencilOpEXT:=addr(vkCmdSetStencilOpEXT);
end;
if not assigned(vkCmdSetPatchControlPointsEXT) then begin
@vkCmdSetPatchControlPointsEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPatchControlPointsEXT'));
@vk.fCommands.CmdSetPatchControlPointsEXT:=addr(vkCmdSetPatchControlPointsEXT);
end;
if not assigned(vkCmdSetRasterizerDiscardEnableEXT) then begin
@vkCmdSetRasterizerDiscardEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetRasterizerDiscardEnableEXT'));
@vk.fCommands.CmdSetRasterizerDiscardEnableEXT:=addr(vkCmdSetRasterizerDiscardEnableEXT);
end;
if not assigned(vkCmdSetDepthBiasEnableEXT) then begin
@vkCmdSetDepthBiasEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetDepthBiasEnableEXT'));
@vk.fCommands.CmdSetDepthBiasEnableEXT:=addr(vkCmdSetDepthBiasEnableEXT);
end;
if not assigned(vkCmdSetLogicOpEXT) then begin
@vkCmdSetLogicOpEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetLogicOpEXT'));
@vk.fCommands.CmdSetLogicOpEXT:=addr(vkCmdSetLogicOpEXT);
end;
if not assigned(vkCmdSetPrimitiveRestartEnableEXT) then begin
@vkCmdSetPrimitiveRestartEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetPrimitiveRestartEnableEXT'));
@vk.fCommands.CmdSetPrimitiveRestartEnableEXT:=addr(vkCmdSetPrimitiveRestartEnableEXT);
end;
if not assigned(vkCreatePrivateDataSlotEXT) then begin
@vkCreatePrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreatePrivateDataSlotEXT'));
@vk.fCommands.CreatePrivateDataSlotEXT:=addr(vkCreatePrivateDataSlotEXT);
end;
if not assigned(vkDestroyPrivateDataSlotEXT) then begin
@vkDestroyPrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyPrivateDataSlotEXT'));
@vk.fCommands.DestroyPrivateDataSlotEXT:=addr(vkDestroyPrivateDataSlotEXT);
end;
if not assigned(vkSetPrivateDataEXT) then begin
@vkSetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkSetPrivateDataEXT'));
@vk.fCommands.SetPrivateDataEXT:=addr(vkSetPrivateDataEXT);
end;
if not assigned(vkGetPrivateDataEXT) then begin
@vkGetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPrivateDataEXT'));
@vk.fCommands.GetPrivateDataEXT:=addr(vkGetPrivateDataEXT);
end;
if not assigned(vkCmdCopyBuffer2KHR) then begin
@vkCmdCopyBuffer2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyBuffer2KHR'));
@vk.fCommands.CmdCopyBuffer2KHR:=addr(vkCmdCopyBuffer2KHR);
end;
if not assigned(vkCmdCopyImage2KHR) then begin
@vkCmdCopyImage2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyImage2KHR'));
@vk.fCommands.CmdCopyImage2KHR:=addr(vkCmdCopyImage2KHR);
end;
if not assigned(vkCmdBlitImage2KHR) then begin
@vkCmdBlitImage2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBlitImage2KHR'));
@vk.fCommands.CmdBlitImage2KHR:=addr(vkCmdBlitImage2KHR);
end;
if not assigned(vkCmdCopyBufferToImage2KHR) then begin
@vkCmdCopyBufferToImage2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyBufferToImage2KHR'));
@vk.fCommands.CmdCopyBufferToImage2KHR:=addr(vkCmdCopyBufferToImage2KHR);
end;
if not assigned(vkCmdCopyImageToBuffer2KHR) then begin
@vkCmdCopyImageToBuffer2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCopyImageToBuffer2KHR'));
@vk.fCommands.CmdCopyImageToBuffer2KHR:=addr(vkCmdCopyImageToBuffer2KHR);
end;
if not assigned(vkCmdResolveImage2KHR) then begin
@vkCmdResolveImage2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdResolveImage2KHR'));
@vk.fCommands.CmdResolveImage2KHR:=addr(vkCmdResolveImage2KHR);
end;
if not assigned(vkCmdSetFragmentShadingRateKHR) then begin
@vkCmdSetFragmentShadingRateKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetFragmentShadingRateKHR'));
@vk.fCommands.CmdSetFragmentShadingRateKHR:=addr(vkCmdSetFragmentShadingRateKHR);
end;
if not assigned(vkGetPhysicalDeviceFragmentShadingRatesKHR) then begin
@vkGetPhysicalDeviceFragmentShadingRatesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceFragmentShadingRatesKHR'));
@vk.fCommands.GetPhysicalDeviceFragmentShadingRatesKHR:=addr(vkGetPhysicalDeviceFragmentShadingRatesKHR);
end;
if not assigned(vkCmdSetFragmentShadingRateEnumNV) then begin
@vkCmdSetFragmentShadingRateEnumNV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetFragmentShadingRateEnumNV'));
@vk.fCommands.CmdSetFragmentShadingRateEnumNV:=addr(vkCmdSetFragmentShadingRateEnumNV);
end;
if not assigned(vkGetAccelerationStructureBuildSizesKHR) then begin
@vkGetAccelerationStructureBuildSizesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetAccelerationStructureBuildSizesKHR'));
@vk.fCommands.GetAccelerationStructureBuildSizesKHR:=addr(vkGetAccelerationStructureBuildSizesKHR);
end;
if not assigned(vkCmdSetVertexInputEXT) then begin
@vkCmdSetVertexInputEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetVertexInputEXT'));
@vk.fCommands.CmdSetVertexInputEXT:=addr(vkCmdSetVertexInputEXT);
end;
if not assigned(vkCmdSetColorWriteEnableEXT) then begin
@vkCmdSetColorWriteEnableEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetColorWriteEnableEXT'));
@vk.fCommands.CmdSetColorWriteEnableEXT:=addr(vkCmdSetColorWriteEnableEXT);
end;
if not assigned(vkCmdSetEvent2KHR) then begin
@vkCmdSetEvent2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdSetEvent2KHR'));
@vk.fCommands.CmdSetEvent2KHR:=addr(vkCmdSetEvent2KHR);
end;
if not assigned(vkCmdResetEvent2KHR) then begin
@vkCmdResetEvent2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdResetEvent2KHR'));
@vk.fCommands.CmdResetEvent2KHR:=addr(vkCmdResetEvent2KHR);
end;
if not assigned(vkCmdWaitEvents2KHR) then begin
@vkCmdWaitEvents2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWaitEvents2KHR'));
@vk.fCommands.CmdWaitEvents2KHR:=addr(vkCmdWaitEvents2KHR);
end;
if not assigned(vkCmdPipelineBarrier2KHR) then begin
@vkCmdPipelineBarrier2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdPipelineBarrier2KHR'));
@vk.fCommands.CmdPipelineBarrier2KHR:=addr(vkCmdPipelineBarrier2KHR);
end;
if not assigned(vkQueueSubmit2KHR) then begin
@vkQueueSubmit2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkQueueSubmit2KHR'));
@vk.fCommands.QueueSubmit2KHR:=addr(vkQueueSubmit2KHR);
end;
if not assigned(vkCmdWriteTimestamp2KHR) then begin
@vkCmdWriteTimestamp2KHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteTimestamp2KHR'));
@vk.fCommands.CmdWriteTimestamp2KHR:=addr(vkCmdWriteTimestamp2KHR);
end;
if not assigned(vkCmdWriteBufferMarker2AMD) then begin
@vkCmdWriteBufferMarker2AMD:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdWriteBufferMarker2AMD'));
@vk.fCommands.CmdWriteBufferMarker2AMD:=addr(vkCmdWriteBufferMarker2AMD);
end;
if not assigned(vkGetQueueCheckpointData2NV) then begin
@vkGetQueueCheckpointData2NV:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetQueueCheckpointData2NV'));
@vk.fCommands.GetQueueCheckpointData2NV:=addr(vkGetQueueCheckpointData2NV);
end;
{$ifdef VkVideo}
if not assigned(vkGetPhysicalDeviceVideoCapabilitiesKHR) then begin
@vkGetPhysicalDeviceVideoCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceVideoCapabilitiesKHR'));
@vk.fCommands.GetPhysicalDeviceVideoCapabilitiesKHR:=addr(vkGetPhysicalDeviceVideoCapabilitiesKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkGetPhysicalDeviceVideoFormatPropertiesKHR) then begin
@vkGetPhysicalDeviceVideoFormatPropertiesKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetPhysicalDeviceVideoFormatPropertiesKHR'));
@vk.fCommands.GetPhysicalDeviceVideoFormatPropertiesKHR:=addr(vkGetPhysicalDeviceVideoFormatPropertiesKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCreateVideoSessionKHR) then begin
@vkCreateVideoSessionKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateVideoSessionKHR'));
@vk.fCommands.CreateVideoSessionKHR:=addr(vkCreateVideoSessionKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkDestroyVideoSessionKHR) then begin
@vkDestroyVideoSessionKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyVideoSessionKHR'));
@vk.fCommands.DestroyVideoSessionKHR:=addr(vkDestroyVideoSessionKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCreateVideoSessionParametersKHR) then begin
@vkCreateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateVideoSessionParametersKHR'));
@vk.fCommands.CreateVideoSessionParametersKHR:=addr(vkCreateVideoSessionParametersKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkUpdateVideoSessionParametersKHR) then begin
@vkUpdateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkUpdateVideoSessionParametersKHR'));
@vk.fCommands.UpdateVideoSessionParametersKHR:=addr(vkUpdateVideoSessionParametersKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkDestroyVideoSessionParametersKHR) then begin
@vkDestroyVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyVideoSessionParametersKHR'));
@vk.fCommands.DestroyVideoSessionParametersKHR:=addr(vkDestroyVideoSessionParametersKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkGetVideoSessionMemoryRequirementsKHR) then begin
@vkGetVideoSessionMemoryRequirementsKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetVideoSessionMemoryRequirementsKHR'));
@vk.fCommands.GetVideoSessionMemoryRequirementsKHR:=addr(vkGetVideoSessionMemoryRequirementsKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkBindVideoSessionMemoryKHR) then begin
@vkBindVideoSessionMemoryKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkBindVideoSessionMemoryKHR'));
@vk.fCommands.BindVideoSessionMemoryKHR:=addr(vkBindVideoSessionMemoryKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCmdDecodeVideoKHR) then begin
@vkCmdDecodeVideoKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdDecodeVideoKHR'));
@vk.fCommands.CmdDecodeVideoKHR:=addr(vkCmdDecodeVideoKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCmdBeginVideoCodingKHR) then begin
@vkCmdBeginVideoCodingKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdBeginVideoCodingKHR'));
@vk.fCommands.CmdBeginVideoCodingKHR:=addr(vkCmdBeginVideoCodingKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCmdControlVideoCodingKHR) then begin
@vkCmdControlVideoCodingKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdControlVideoCodingKHR'));
@vk.fCommands.CmdControlVideoCodingKHR:=addr(vkCmdControlVideoCodingKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCmdEndVideoCodingKHR) then begin
@vkCmdEndVideoCodingKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEndVideoCodingKHR'));
@vk.fCommands.CmdEndVideoCodingKHR:=addr(vkCmdEndVideoCodingKHR);
end;
{$endif}
{$ifdef VkVideo}
if not assigned(vkCmdEncodeVideoKHR) then begin
@vkCmdEncodeVideoKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdEncodeVideoKHR'));
@vk.fCommands.CmdEncodeVideoKHR:=addr(vkCmdEncodeVideoKHR);
end;
{$endif}
if not assigned(vkCreateCuModuleNVX) then begin
@vkCreateCuModuleNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateCuModuleNVX'));
@vk.fCommands.CreateCuModuleNVX:=addr(vkCreateCuModuleNVX);
end;
if not assigned(vkCreateCuFunctionNVX) then begin
@vkCreateCuFunctionNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCreateCuFunctionNVX'));
@vk.fCommands.CreateCuFunctionNVX:=addr(vkCreateCuFunctionNVX);
end;
if not assigned(vkDestroyCuModuleNVX) then begin
@vkDestroyCuModuleNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyCuModuleNVX'));
@vk.fCommands.DestroyCuModuleNVX:=addr(vkDestroyCuModuleNVX);
end;
if not assigned(vkDestroyCuFunctionNVX) then begin
@vkDestroyCuFunctionNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkDestroyCuFunctionNVX'));
@vk.fCommands.DestroyCuFunctionNVX:=addr(vkDestroyCuFunctionNVX);
end;
if not assigned(vkCmdCuLaunchKernelNVX) then begin
@vkCmdCuLaunchKernelNVX:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkCmdCuLaunchKernelNVX'));
@vk.fCommands.CmdCuLaunchKernelNVX:=addr(vkCmdCuLaunchKernelNVX);
end;
if not assigned(vkAcquireDrmDisplayEXT) then begin
@vkAcquireDrmDisplayEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkAcquireDrmDisplayEXT'));
@vk.fCommands.AcquireDrmDisplayEXT:=addr(vkAcquireDrmDisplayEXT);
end;
if not assigned(vkGetDrmDisplayEXT) then begin
@vkGetDrmDisplayEXT:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkGetDrmDisplayEXT'));
@vk.fCommands.GetDrmDisplayEXT:=addr(vkGetDrmDisplayEXT);
end;
if not assigned(vkWaitForPresentKHR) then begin
@vkWaitForPresentKHR:=vkVoidFunctionToPointer(vkGetProcAddress(LibVulkan,'vkWaitForPresentKHR'));
@vk.fCommands.WaitForPresentKHR:=addr(vkWaitForPresentKHR);
end;
result:=assigned(vkCreateInstance);
end;
end;
function LoadVulkanInstanceCommands(const GetInstanceProcAddr:TvkGetInstanceProcAddr;const Instance:TVkInstance;out InstanceCommands:TVulkanCommands):boolean;
begin
FillChar(InstanceCommands,SizeOf(TVulkanCommands),#0);
result:=assigned(GetInstanceProcAddr);
if result then begin
@InstanceCommands.CreateInstance:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateInstance')));
@InstanceCommands.DestroyInstance:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyInstance')));
@InstanceCommands.EnumeratePhysicalDevices:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumeratePhysicalDevices')));
@InstanceCommands.GetDeviceProcAddr:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceProcAddr')));
@InstanceCommands.GetInstanceProcAddr:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetInstanceProcAddr')));
@InstanceCommands.GetPhysicalDeviceProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceProperties')));
@InstanceCommands.GetPhysicalDeviceQueueFamilyProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceQueueFamilyProperties')));
@InstanceCommands.GetPhysicalDeviceMemoryProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceMemoryProperties')));
@InstanceCommands.GetPhysicalDeviceFeatures:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFeatures')));
@InstanceCommands.GetPhysicalDeviceFormatProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFormatProperties')));
@InstanceCommands.GetPhysicalDeviceImageFormatProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceImageFormatProperties')));
@InstanceCommands.CreateDevice:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDevice')));
@InstanceCommands.DestroyDevice:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDevice')));
@InstanceCommands.EnumerateInstanceVersion:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumerateInstanceVersion')));
@InstanceCommands.EnumerateInstanceLayerProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumerateInstanceLayerProperties')));
@InstanceCommands.EnumerateInstanceExtensionProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumerateInstanceExtensionProperties')));
@InstanceCommands.EnumerateDeviceLayerProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumerateDeviceLayerProperties')));
@InstanceCommands.EnumerateDeviceExtensionProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumerateDeviceExtensionProperties')));
@InstanceCommands.GetDeviceQueue:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceQueue')));
@InstanceCommands.QueueSubmit:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueSubmit')));
@InstanceCommands.QueueWaitIdle:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueWaitIdle')));
@InstanceCommands.DeviceWaitIdle:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDeviceWaitIdle')));
@InstanceCommands.AllocateMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAllocateMemory')));
@InstanceCommands.FreeMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkFreeMemory')));
@InstanceCommands.MapMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkMapMemory')));
@InstanceCommands.UnmapMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUnmapMemory')));
@InstanceCommands.FlushMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkFlushMappedMemoryRanges')));
@InstanceCommands.InvalidateMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkInvalidateMappedMemoryRanges')));
@InstanceCommands.GetDeviceMemoryCommitment:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceMemoryCommitment')));
@InstanceCommands.GetBufferMemoryRequirements:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferMemoryRequirements')));
@InstanceCommands.BindBufferMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindBufferMemory')));
@InstanceCommands.GetImageMemoryRequirements:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageMemoryRequirements')));
@InstanceCommands.BindImageMemory:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindImageMemory')));
@InstanceCommands.GetImageSparseMemoryRequirements:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageSparseMemoryRequirements')));
@InstanceCommands.GetPhysicalDeviceSparseImageFormatProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSparseImageFormatProperties')));
@InstanceCommands.QueueBindSparse:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueBindSparse')));
@InstanceCommands.CreateFence:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateFence')));
@InstanceCommands.DestroyFence:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyFence')));
@InstanceCommands.ResetFences:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetFences')));
@InstanceCommands.GetFenceStatus:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetFenceStatus')));
@InstanceCommands.WaitForFences:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkWaitForFences')));
@InstanceCommands.CreateSemaphore:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSemaphore')));
@InstanceCommands.DestroySemaphore:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySemaphore')));
@InstanceCommands.CreateEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateEvent')));
@InstanceCommands.DestroyEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyEvent')));
@InstanceCommands.GetEventStatus:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetEventStatus')));
@InstanceCommands.SetEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetEvent')));
@InstanceCommands.ResetEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetEvent')));
@InstanceCommands.CreateQueryPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateQueryPool')));
@InstanceCommands.DestroyQueryPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyQueryPool')));
@InstanceCommands.GetQueryPoolResults:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetQueryPoolResults')));
@InstanceCommands.ResetQueryPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetQueryPool')));
@InstanceCommands.ResetQueryPoolEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetQueryPoolEXT')));
@InstanceCommands.CreateBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateBuffer')));
@InstanceCommands.DestroyBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyBuffer')));
@InstanceCommands.CreateBufferView:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateBufferView')));
@InstanceCommands.DestroyBufferView:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyBufferView')));
@InstanceCommands.CreateImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateImage')));
@InstanceCommands.DestroyImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyImage')));
@InstanceCommands.GetImageSubresourceLayout:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageSubresourceLayout')));
@InstanceCommands.CreateImageView:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateImageView')));
@InstanceCommands.DestroyImageView:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyImageView')));
@InstanceCommands.CreateShaderModule:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateShaderModule')));
@InstanceCommands.DestroyShaderModule:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyShaderModule')));
@InstanceCommands.CreatePipelineCache:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreatePipelineCache')));
@InstanceCommands.DestroyPipelineCache:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyPipelineCache')));
@InstanceCommands.GetPipelineCacheData:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPipelineCacheData')));
@InstanceCommands.MergePipelineCaches:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkMergePipelineCaches')));
@InstanceCommands.CreateGraphicsPipelines:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateGraphicsPipelines')));
@InstanceCommands.CreateComputePipelines:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateComputePipelines')));
@InstanceCommands.GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI')));
@InstanceCommands.DestroyPipeline:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyPipeline')));
@InstanceCommands.CreatePipelineLayout:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreatePipelineLayout')));
@InstanceCommands.DestroyPipelineLayout:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyPipelineLayout')));
@InstanceCommands.CreateSampler:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSampler')));
@InstanceCommands.DestroySampler:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySampler')));
@InstanceCommands.CreateDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDescriptorSetLayout')));
@InstanceCommands.DestroyDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDescriptorSetLayout')));
@InstanceCommands.CreateDescriptorPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDescriptorPool')));
@InstanceCommands.DestroyDescriptorPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDescriptorPool')));
@InstanceCommands.ResetDescriptorPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetDescriptorPool')));
@InstanceCommands.AllocateDescriptorSets:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAllocateDescriptorSets')));
@InstanceCommands.FreeDescriptorSets:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkFreeDescriptorSets')));
@InstanceCommands.UpdateDescriptorSets:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUpdateDescriptorSets')));
@InstanceCommands.CreateFramebuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateFramebuffer')));
@InstanceCommands.DestroyFramebuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyFramebuffer')));
@InstanceCommands.CreateRenderPass:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateRenderPass')));
@InstanceCommands.DestroyRenderPass:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyRenderPass')));
@InstanceCommands.GetRenderAreaGranularity:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRenderAreaGranularity')));
@InstanceCommands.CreateCommandPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateCommandPool')));
@InstanceCommands.DestroyCommandPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyCommandPool')));
@InstanceCommands.ResetCommandPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetCommandPool')));
@InstanceCommands.AllocateCommandBuffers:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAllocateCommandBuffers')));
@InstanceCommands.FreeCommandBuffers:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkFreeCommandBuffers')));
@InstanceCommands.BeginCommandBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBeginCommandBuffer')));
@InstanceCommands.EndCommandBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEndCommandBuffer')));
@InstanceCommands.ResetCommandBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkResetCommandBuffer')));
@InstanceCommands.CmdBindPipeline:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindPipeline')));
@InstanceCommands.CmdSetViewport:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetViewport')));
@InstanceCommands.CmdSetScissor:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetScissor')));
@InstanceCommands.CmdSetLineWidth:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetLineWidth')));
@InstanceCommands.CmdSetDepthBias:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthBias')));
@InstanceCommands.CmdSetBlendConstants:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetBlendConstants')));
@InstanceCommands.CmdSetDepthBounds:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthBounds')));
@InstanceCommands.CmdSetStencilCompareMask:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetStencilCompareMask')));
@InstanceCommands.CmdSetStencilWriteMask:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetStencilWriteMask')));
@InstanceCommands.CmdSetStencilReference:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetStencilReference')));
@InstanceCommands.CmdBindDescriptorSets:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindDescriptorSets')));
@InstanceCommands.CmdBindIndexBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindIndexBuffer')));
@InstanceCommands.CmdBindVertexBuffers:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindVertexBuffers')));
@InstanceCommands.CmdDraw:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDraw')));
@InstanceCommands.CmdDrawIndexed:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndexed')));
@InstanceCommands.CmdDrawMultiEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawMultiEXT')));
@InstanceCommands.CmdDrawMultiIndexedEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawMultiIndexedEXT')));
@InstanceCommands.CmdDrawIndirect:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndirect')));
@InstanceCommands.CmdDrawIndexedIndirect:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndexedIndirect')));
@InstanceCommands.CmdDispatch:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDispatch')));
@InstanceCommands.CmdDispatchIndirect:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDispatchIndirect')));
@InstanceCommands.CmdSubpassShadingHUAWEI:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSubpassShadingHUAWEI')));
@InstanceCommands.CmdCopyBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyBuffer')));
@InstanceCommands.CmdCopyImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyImage')));
@InstanceCommands.CmdBlitImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBlitImage')));
@InstanceCommands.CmdCopyBufferToImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyBufferToImage')));
@InstanceCommands.CmdCopyImageToBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyImageToBuffer')));
@InstanceCommands.CmdUpdateBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdUpdateBuffer')));
@InstanceCommands.CmdFillBuffer:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdFillBuffer')));
@InstanceCommands.CmdClearColorImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdClearColorImage')));
@InstanceCommands.CmdClearDepthStencilImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdClearDepthStencilImage')));
@InstanceCommands.CmdClearAttachments:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdClearAttachments')));
@InstanceCommands.CmdResolveImage:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdResolveImage')));
@InstanceCommands.CmdSetEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetEvent')));
@InstanceCommands.CmdResetEvent:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdResetEvent')));
@InstanceCommands.CmdWaitEvents:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWaitEvents')));
@InstanceCommands.CmdPipelineBarrier:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPipelineBarrier')));
@InstanceCommands.CmdBeginQuery:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginQuery')));
@InstanceCommands.CmdEndQuery:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndQuery')));
@InstanceCommands.CmdBeginConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginConditionalRenderingEXT')));
@InstanceCommands.CmdEndConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndConditionalRenderingEXT')));
@InstanceCommands.CmdResetQueryPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdResetQueryPool')));
@InstanceCommands.CmdWriteTimestamp:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteTimestamp')));
@InstanceCommands.CmdCopyQueryPoolResults:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyQueryPoolResults')));
@InstanceCommands.CmdPushConstants:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPushConstants')));
@InstanceCommands.CmdBeginRenderPass:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginRenderPass')));
@InstanceCommands.CmdNextSubpass:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdNextSubpass')));
@InstanceCommands.CmdEndRenderPass:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndRenderPass')));
@InstanceCommands.CmdExecuteCommands:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdExecuteCommands')));
{$ifdef Android}
@InstanceCommands.CreateAndroidSurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateAndroidSurfaceKHR')));
{$endif}
@InstanceCommands.GetPhysicalDeviceDisplayPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceDisplayPropertiesKHR')));
@InstanceCommands.GetPhysicalDeviceDisplayPlanePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceDisplayPlanePropertiesKHR')));
@InstanceCommands.GetDisplayPlaneSupportedDisplaysKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDisplayPlaneSupportedDisplaysKHR')));
@InstanceCommands.GetDisplayModePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDisplayModePropertiesKHR')));
@InstanceCommands.CreateDisplayModeKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDisplayModeKHR')));
@InstanceCommands.GetDisplayPlaneCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDisplayPlaneCapabilitiesKHR')));
@InstanceCommands.CreateDisplayPlaneSurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDisplayPlaneSurfaceKHR')));
@InstanceCommands.CreateSharedSwapchainsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSharedSwapchainsKHR')));
@InstanceCommands.DestroySurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySurfaceKHR')));
@InstanceCommands.GetPhysicalDeviceSurfaceSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceSupportKHR')));
@InstanceCommands.GetPhysicalDeviceSurfaceCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceCapabilitiesKHR')));
@InstanceCommands.GetPhysicalDeviceSurfaceFormatsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceFormatsKHR')));
@InstanceCommands.GetPhysicalDeviceSurfacePresentModesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfacePresentModesKHR')));
@InstanceCommands.CreateSwapchainKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSwapchainKHR')));
@InstanceCommands.DestroySwapchainKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySwapchainKHR')));
@InstanceCommands.GetSwapchainImagesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSwapchainImagesKHR')));
@InstanceCommands.AcquireNextImageKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireNextImageKHR')));
@InstanceCommands.QueuePresentKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueuePresentKHR')));
@InstanceCommands.CreateViSurfaceNN:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateViSurfaceNN')));
{$ifdef Wayland}
@InstanceCommands.CreateWaylandSurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateWaylandSurfaceKHR')));
{$endif}
{$ifdef Wayland}
@InstanceCommands.GetPhysicalDeviceWaylandPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceWaylandPresentationSupportKHR')));
{$endif}
{$ifdef Windows}
@InstanceCommands.CreateWin32SurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateWin32SurfaceKHR')));
{$endif}
{$ifdef Windows}
@InstanceCommands.GetPhysicalDeviceWin32PresentationSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceWin32PresentationSupportKHR')));
{$endif}
{$ifdef XLIB}
@InstanceCommands.CreateXlibSurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateXlibSurfaceKHR')));
{$endif}
{$ifdef XLIB}
@InstanceCommands.GetPhysicalDeviceXlibPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceXlibPresentationSupportKHR')));
{$endif}
{$ifdef XCB}
@InstanceCommands.CreateXcbSurfaceKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateXcbSurfaceKHR')));
{$endif}
{$ifdef XCB}
@InstanceCommands.GetPhysicalDeviceXcbPresentationSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceXcbPresentationSupportKHR')));
{$endif}
{$ifdef DirectFB}
@InstanceCommands.CreateDirectFBSurfaceEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDirectFBSurfaceEXT')));
{$endif}
{$ifdef DirectFB}
@InstanceCommands.GetPhysicalDeviceDirectFBPresentationSupportEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceDirectFBPresentationSupportEXT')));
{$endif}
{$ifdef Fuchsia}
@InstanceCommands.CreateImagePipeSurfaceFUCHSIA:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateImagePipeSurfaceFUCHSIA')));
{$endif}
@InstanceCommands.CreateStreamDescriptorSurfaceGGP:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateStreamDescriptorSurfaceGGP')));
{$ifdef QNX}
@InstanceCommands.CreateScreenSurfaceQNX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateScreenSurfaceQNX')));
{$endif}
{$ifdef QNX}
@InstanceCommands.GetPhysicalDeviceScreenPresentationSupportQNX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceScreenPresentationSupportQNX')));
{$endif}
@InstanceCommands.CreateDebugReportCallbackEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDebugReportCallbackEXT')));
@InstanceCommands.DestroyDebugReportCallbackEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDebugReportCallbackEXT')));
@InstanceCommands.DebugReportMessageEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDebugReportMessageEXT')));
@InstanceCommands.DebugMarkerSetObjectNameEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDebugMarkerSetObjectNameEXT')));
@InstanceCommands.DebugMarkerSetObjectTagEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDebugMarkerSetObjectTagEXT')));
@InstanceCommands.CmdDebugMarkerBeginEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDebugMarkerBeginEXT')));
@InstanceCommands.CmdDebugMarkerEndEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDebugMarkerEndEXT')));
@InstanceCommands.CmdDebugMarkerInsertEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDebugMarkerInsertEXT')));
@InstanceCommands.GetPhysicalDeviceExternalImageFormatPropertiesNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalImageFormatPropertiesNV')));
{$ifdef Windows}
@InstanceCommands.GetMemoryWin32HandleNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryWin32HandleNV')));
{$endif}
@InstanceCommands.CmdExecuteGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdExecuteGeneratedCommandsNV')));
@InstanceCommands.CmdPreprocessGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPreprocessGeneratedCommandsNV')));
@InstanceCommands.CmdBindPipelineShaderGroupNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindPipelineShaderGroupNV')));
@InstanceCommands.GetGeneratedCommandsMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetGeneratedCommandsMemoryRequirementsNV')));
@InstanceCommands.CreateIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateIndirectCommandsLayoutNV')));
@InstanceCommands.DestroyIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyIndirectCommandsLayoutNV')));
@InstanceCommands.GetPhysicalDeviceFeatures2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFeatures2')));
@InstanceCommands.GetPhysicalDeviceFeatures2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFeatures2KHR')));
@InstanceCommands.GetPhysicalDeviceProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceProperties2')));
@InstanceCommands.GetPhysicalDeviceProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceFormatProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFormatProperties2')));
@InstanceCommands.GetPhysicalDeviceFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFormatProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceImageFormatProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceImageFormatProperties2')));
@InstanceCommands.GetPhysicalDeviceImageFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceImageFormatProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceQueueFamilyProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceQueueFamilyProperties2')));
@InstanceCommands.GetPhysicalDeviceQueueFamilyProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceQueueFamilyProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceMemoryProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceMemoryProperties2')));
@InstanceCommands.GetPhysicalDeviceMemoryProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceMemoryProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceSparseImageFormatProperties2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSparseImageFormatProperties2')));
@InstanceCommands.GetPhysicalDeviceSparseImageFormatProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSparseImageFormatProperties2KHR')));
@InstanceCommands.CmdPushDescriptorSetKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPushDescriptorSetKHR')));
@InstanceCommands.TrimCommandPool:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkTrimCommandPool')));
@InstanceCommands.TrimCommandPoolKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkTrimCommandPoolKHR')));
@InstanceCommands.GetPhysicalDeviceExternalBufferProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalBufferProperties')));
@InstanceCommands.GetPhysicalDeviceExternalBufferPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalBufferPropertiesKHR')));
{$ifdef Windows}
@InstanceCommands.GetMemoryWin32HandleKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@InstanceCommands.GetMemoryWin32HandlePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryWin32HandlePropertiesKHR')));
{$endif}
@InstanceCommands.GetMemoryFdKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryFdKHR')));
@InstanceCommands.GetMemoryFdPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryFdPropertiesKHR')));
{$ifdef Fuchsia}
@InstanceCommands.GetMemoryZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryZirconHandleFUCHSIA')));
{$endif}
{$ifdef Fuchsia}
@InstanceCommands.GetMemoryZirconHandlePropertiesFUCHSIA:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryZirconHandlePropertiesFUCHSIA')));
{$endif}
@InstanceCommands.GetMemoryRemoteAddressNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryRemoteAddressNV')));
@InstanceCommands.GetPhysicalDeviceExternalSemaphoreProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalSemaphoreProperties')));
@InstanceCommands.GetPhysicalDeviceExternalSemaphorePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalSemaphorePropertiesKHR')));
{$ifdef Windows}
@InstanceCommands.GetSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSemaphoreWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@InstanceCommands.ImportSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkImportSemaphoreWin32HandleKHR')));
{$endif}
@InstanceCommands.GetSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSemaphoreFdKHR')));
@InstanceCommands.ImportSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkImportSemaphoreFdKHR')));
{$ifdef Fuchsia}
@InstanceCommands.GetSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSemaphoreZirconHandleFUCHSIA')));
{$endif}
{$ifdef Fuchsia}
@InstanceCommands.ImportSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkImportSemaphoreZirconHandleFUCHSIA')));
{$endif}
@InstanceCommands.GetPhysicalDeviceExternalFenceProperties:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalFenceProperties')));
@InstanceCommands.GetPhysicalDeviceExternalFencePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceExternalFencePropertiesKHR')));
{$ifdef Windows}
@InstanceCommands.GetFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetFenceWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@InstanceCommands.ImportFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkImportFenceWin32HandleKHR')));
{$endif}
@InstanceCommands.GetFenceFdKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetFenceFdKHR')));
@InstanceCommands.ImportFenceFdKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkImportFenceFdKHR')));
@InstanceCommands.ReleaseDisplayEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkReleaseDisplayEXT')));
{$ifdef XLIB}
@InstanceCommands.AcquireXlibDisplayEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireXlibDisplayEXT')));
{$endif}
{$ifdef RandR}
@InstanceCommands.GetRandROutputDisplayEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRandROutputDisplayEXT')));
{$endif}
@InstanceCommands.AcquireWinrtDisplayNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireWinrtDisplayNV')));
@InstanceCommands.GetWinrtDisplayNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetWinrtDisplayNV')));
@InstanceCommands.DisplayPowerControlEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDisplayPowerControlEXT')));
@InstanceCommands.RegisterDeviceEventEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkRegisterDeviceEventEXT')));
@InstanceCommands.RegisterDisplayEventEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkRegisterDisplayEventEXT')));
@InstanceCommands.GetSwapchainCounterEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSwapchainCounterEXT')));
@InstanceCommands.GetPhysicalDeviceSurfaceCapabilities2EXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceCapabilities2EXT')));
@InstanceCommands.EnumeratePhysicalDeviceGroups:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumeratePhysicalDeviceGroups')));
@InstanceCommands.EnumeratePhysicalDeviceGroupsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumeratePhysicalDeviceGroupsKHR')));
@InstanceCommands.GetDeviceGroupPeerMemoryFeatures:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceGroupPeerMemoryFeatures')));
@InstanceCommands.GetDeviceGroupPeerMemoryFeaturesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceGroupPeerMemoryFeaturesKHR')));
@InstanceCommands.BindBufferMemory2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindBufferMemory2')));
@InstanceCommands.BindBufferMemory2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindBufferMemory2KHR')));
@InstanceCommands.BindImageMemory2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindImageMemory2')));
@InstanceCommands.BindImageMemory2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindImageMemory2KHR')));
@InstanceCommands.CmdSetDeviceMask:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDeviceMask')));
@InstanceCommands.CmdSetDeviceMaskKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDeviceMaskKHR')));
@InstanceCommands.GetDeviceGroupPresentCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceGroupPresentCapabilitiesKHR')));
@InstanceCommands.GetDeviceGroupSurfacePresentModesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceGroupSurfacePresentModesKHR')));
@InstanceCommands.AcquireNextImage2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireNextImage2KHR')));
@InstanceCommands.CmdDispatchBase:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDispatchBase')));
@InstanceCommands.CmdDispatchBaseKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDispatchBaseKHR')));
@InstanceCommands.GetPhysicalDevicePresentRectanglesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDevicePresentRectanglesKHR')));
@InstanceCommands.CreateDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDescriptorUpdateTemplate')));
@InstanceCommands.CreateDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDescriptorUpdateTemplateKHR')));
@InstanceCommands.DestroyDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDescriptorUpdateTemplate')));
@InstanceCommands.DestroyDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDescriptorUpdateTemplateKHR')));
@InstanceCommands.UpdateDescriptorSetWithTemplate:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUpdateDescriptorSetWithTemplate')));
@InstanceCommands.UpdateDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUpdateDescriptorSetWithTemplateKHR')));
@InstanceCommands.CmdPushDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPushDescriptorSetWithTemplateKHR')));
@InstanceCommands.SetHdrMetadataEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetHdrMetadataEXT')));
@InstanceCommands.GetSwapchainStatusKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSwapchainStatusKHR')));
@InstanceCommands.GetRefreshCycleDurationGOOGLE:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRefreshCycleDurationGOOGLE')));
@InstanceCommands.GetPastPresentationTimingGOOGLE:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPastPresentationTimingGOOGLE')));
{$ifdef MoltenVK_IOS}
@InstanceCommands.CreateIOSSurfaceMVK:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateIOSSurfaceMVK')));
{$endif}
{$ifdef MoltenVK_MacOS}
@InstanceCommands.CreateMacOSSurfaceMVK:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateMacOSSurfaceMVK')));
{$endif}
@InstanceCommands.CreateMetalSurfaceEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateMetalSurfaceEXT')));
@InstanceCommands.CmdSetViewportWScalingNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetViewportWScalingNV')));
@InstanceCommands.CmdSetDiscardRectangleEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDiscardRectangleEXT')));
@InstanceCommands.CmdSetSampleLocationsEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetSampleLocationsEXT')));
@InstanceCommands.GetPhysicalDeviceMultisamplePropertiesEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceMultisamplePropertiesEXT')));
@InstanceCommands.GetPhysicalDeviceSurfaceCapabilities2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceCapabilities2KHR')));
@InstanceCommands.GetPhysicalDeviceSurfaceFormats2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfaceFormats2KHR')));
@InstanceCommands.GetPhysicalDeviceDisplayProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceDisplayProperties2KHR')));
@InstanceCommands.GetPhysicalDeviceDisplayPlaneProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceDisplayPlaneProperties2KHR')));
@InstanceCommands.GetDisplayModeProperties2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDisplayModeProperties2KHR')));
@InstanceCommands.GetDisplayPlaneCapabilities2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDisplayPlaneCapabilities2KHR')));
@InstanceCommands.GetBufferMemoryRequirements2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferMemoryRequirements2')));
@InstanceCommands.GetBufferMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferMemoryRequirements2KHR')));
@InstanceCommands.GetImageMemoryRequirements2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageMemoryRequirements2')));
@InstanceCommands.GetImageMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageMemoryRequirements2KHR')));
@InstanceCommands.GetImageSparseMemoryRequirements2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageSparseMemoryRequirements2')));
@InstanceCommands.GetImageSparseMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageSparseMemoryRequirements2KHR')));
@InstanceCommands.CreateSamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSamplerYcbcrConversion')));
@InstanceCommands.CreateSamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateSamplerYcbcrConversionKHR')));
@InstanceCommands.DestroySamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySamplerYcbcrConversion')));
@InstanceCommands.DestroySamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroySamplerYcbcrConversionKHR')));
@InstanceCommands.GetDeviceQueue2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceQueue2')));
@InstanceCommands.CreateValidationCacheEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateValidationCacheEXT')));
@InstanceCommands.DestroyValidationCacheEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyValidationCacheEXT')));
@InstanceCommands.GetValidationCacheDataEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetValidationCacheDataEXT')));
@InstanceCommands.MergeValidationCachesEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkMergeValidationCachesEXT')));
@InstanceCommands.GetDescriptorSetLayoutSupport:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDescriptorSetLayoutSupport')));
@InstanceCommands.GetDescriptorSetLayoutSupportKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDescriptorSetLayoutSupportKHR')));
@InstanceCommands.GetSwapchainGrallocUsageANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSwapchainGrallocUsageANDROID')));
{$ifdef Android}
@InstanceCommands.GetSwapchainGrallocUsage2ANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSwapchainGrallocUsage2ANDROID')));
{$endif}
@InstanceCommands.AcquireImageANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireImageANDROID')));
@InstanceCommands.QueueSignalReleaseImageANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueSignalReleaseImageANDROID')));
@InstanceCommands.GetShaderInfoAMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetShaderInfoAMD')));
@InstanceCommands.SetLocalDimmingAMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetLocalDimmingAMD')));
@InstanceCommands.GetPhysicalDeviceCalibrateableTimeDomainsEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceCalibrateableTimeDomainsEXT')));
@InstanceCommands.GetCalibratedTimestampsEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetCalibratedTimestampsEXT')));
@InstanceCommands.SetDebugUtilsObjectNameEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetDebugUtilsObjectNameEXT')));
@InstanceCommands.SetDebugUtilsObjectTagEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetDebugUtilsObjectTagEXT')));
@InstanceCommands.QueueBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueBeginDebugUtilsLabelEXT')));
@InstanceCommands.QueueEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueEndDebugUtilsLabelEXT')));
@InstanceCommands.QueueInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueInsertDebugUtilsLabelEXT')));
@InstanceCommands.CmdBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginDebugUtilsLabelEXT')));
@InstanceCommands.CmdEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndDebugUtilsLabelEXT')));
@InstanceCommands.CmdInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdInsertDebugUtilsLabelEXT')));
@InstanceCommands.CreateDebugUtilsMessengerEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDebugUtilsMessengerEXT')));
@InstanceCommands.DestroyDebugUtilsMessengerEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDebugUtilsMessengerEXT')));
@InstanceCommands.SubmitDebugUtilsMessageEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSubmitDebugUtilsMessageEXT')));
@InstanceCommands.GetMemoryHostPointerPropertiesEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryHostPointerPropertiesEXT')));
@InstanceCommands.CmdWriteBufferMarkerAMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteBufferMarkerAMD')));
@InstanceCommands.CreateRenderPass2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateRenderPass2')));
@InstanceCommands.CreateRenderPass2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateRenderPass2KHR')));
@InstanceCommands.CmdBeginRenderPass2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginRenderPass2')));
@InstanceCommands.CmdBeginRenderPass2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginRenderPass2KHR')));
@InstanceCommands.CmdNextSubpass2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdNextSubpass2')));
@InstanceCommands.CmdNextSubpass2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdNextSubpass2KHR')));
@InstanceCommands.CmdEndRenderPass2:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndRenderPass2')));
@InstanceCommands.CmdEndRenderPass2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndRenderPass2KHR')));
@InstanceCommands.GetSemaphoreCounterValue:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSemaphoreCounterValue')));
@InstanceCommands.GetSemaphoreCounterValueKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetSemaphoreCounterValueKHR')));
@InstanceCommands.WaitSemaphores:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkWaitSemaphores')));
@InstanceCommands.WaitSemaphoresKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkWaitSemaphoresKHR')));
@InstanceCommands.SignalSemaphore:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSignalSemaphore')));
@InstanceCommands.SignalSemaphoreKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSignalSemaphoreKHR')));
{$ifdef Android}
@InstanceCommands.GetAndroidHardwareBufferPropertiesANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetAndroidHardwareBufferPropertiesANDROID')));
{$endif}
{$ifdef Android}
@InstanceCommands.GetMemoryAndroidHardwareBufferANDROID:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetMemoryAndroidHardwareBufferANDROID')));
{$endif}
@InstanceCommands.CmdDrawIndirectCount:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndirectCount')));
@InstanceCommands.CmdDrawIndirectCountKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndirectCountKHR')));
@InstanceCommands.CmdDrawIndirectCountAMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndirectCountAMD')));
@InstanceCommands.CmdDrawIndexedIndirectCount:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndexedIndirectCount')));
@InstanceCommands.CmdDrawIndexedIndirectCountKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndexedIndirectCountKHR')));
@InstanceCommands.CmdDrawIndexedIndirectCountAMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndexedIndirectCountAMD')));
@InstanceCommands.CmdSetCheckpointNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetCheckpointNV')));
@InstanceCommands.GetQueueCheckpointDataNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetQueueCheckpointDataNV')));
@InstanceCommands.CmdBindTransformFeedbackBuffersEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindTransformFeedbackBuffersEXT')));
@InstanceCommands.CmdBeginTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginTransformFeedbackEXT')));
@InstanceCommands.CmdEndTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndTransformFeedbackEXT')));
@InstanceCommands.CmdBeginQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginQueryIndexedEXT')));
@InstanceCommands.CmdEndQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndQueryIndexedEXT')));
@InstanceCommands.CmdDrawIndirectByteCountEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawIndirectByteCountEXT')));
@InstanceCommands.CmdSetExclusiveScissorNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetExclusiveScissorNV')));
@InstanceCommands.CmdBindShadingRateImageNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindShadingRateImageNV')));
@InstanceCommands.CmdSetViewportShadingRatePaletteNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetViewportShadingRatePaletteNV')));
@InstanceCommands.CmdSetCoarseSampleOrderNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetCoarseSampleOrderNV')));
@InstanceCommands.CmdDrawMeshTasksNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawMeshTasksNV')));
@InstanceCommands.CmdDrawMeshTasksIndirectNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawMeshTasksIndirectNV')));
@InstanceCommands.CmdDrawMeshTasksIndirectCountNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDrawMeshTasksIndirectCountNV')));
@InstanceCommands.CompileDeferredNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCompileDeferredNV')));
@InstanceCommands.CreateAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateAccelerationStructureNV')));
@InstanceCommands.CmdBindInvocationMaskHUAWEI:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindInvocationMaskHUAWEI')));
@InstanceCommands.DestroyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyAccelerationStructureKHR')));
@InstanceCommands.DestroyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyAccelerationStructureNV')));
@InstanceCommands.GetAccelerationStructureMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetAccelerationStructureMemoryRequirementsNV')));
@InstanceCommands.BindAccelerationStructureMemoryNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindAccelerationStructureMemoryNV')));
@InstanceCommands.CmdCopyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyAccelerationStructureNV')));
@InstanceCommands.CmdCopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyAccelerationStructureKHR')));
@InstanceCommands.CopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCopyAccelerationStructureKHR')));
@InstanceCommands.CmdCopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyAccelerationStructureToMemoryKHR')));
@InstanceCommands.CopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCopyAccelerationStructureToMemoryKHR')));
@InstanceCommands.CmdCopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyMemoryToAccelerationStructureKHR')));
@InstanceCommands.CopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCopyMemoryToAccelerationStructureKHR')));
@InstanceCommands.CmdWriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteAccelerationStructuresPropertiesKHR')));
@InstanceCommands.CmdWriteAccelerationStructuresPropertiesNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteAccelerationStructuresPropertiesNV')));
@InstanceCommands.CmdBuildAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBuildAccelerationStructureNV')));
@InstanceCommands.WriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkWriteAccelerationStructuresPropertiesKHR')));
@InstanceCommands.CmdTraceRaysKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdTraceRaysKHR')));
@InstanceCommands.CmdTraceRaysNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdTraceRaysNV')));
@InstanceCommands.GetRayTracingShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRayTracingShaderGroupHandlesKHR')));
@InstanceCommands.GetRayTracingShaderGroupHandlesNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRayTracingShaderGroupHandlesNV')));
@InstanceCommands.GetRayTracingCaptureReplayShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRayTracingCaptureReplayShaderGroupHandlesKHR')));
@InstanceCommands.GetAccelerationStructureHandleNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetAccelerationStructureHandleNV')));
@InstanceCommands.CreateRayTracingPipelinesNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateRayTracingPipelinesNV')));
@InstanceCommands.CreateRayTracingPipelinesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateRayTracingPipelinesKHR')));
@InstanceCommands.GetPhysicalDeviceCooperativeMatrixPropertiesNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceCooperativeMatrixPropertiesNV')));
@InstanceCommands.CmdTraceRaysIndirectKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdTraceRaysIndirectKHR')));
@InstanceCommands.GetDeviceAccelerationStructureCompatibilityKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceAccelerationStructureCompatibilityKHR')));
@InstanceCommands.GetRayTracingShaderGroupStackSizeKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetRayTracingShaderGroupStackSizeKHR')));
@InstanceCommands.CmdSetRayTracingPipelineStackSizeKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetRayTracingPipelineStackSizeKHR')));
@InstanceCommands.GetImageViewHandleNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageViewHandleNVX')));
@InstanceCommands.GetImageViewAddressNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageViewAddressNVX')));
@InstanceCommands.GetPhysicalDeviceSurfacePresentModes2EXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSurfacePresentModes2EXT')));
@InstanceCommands.GetDeviceGroupSurfacePresentModes2EXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceGroupSurfacePresentModes2EXT')));
@InstanceCommands.AcquireFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireFullScreenExclusiveModeEXT')));
@InstanceCommands.ReleaseFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkReleaseFullScreenExclusiveModeEXT')));
@InstanceCommands.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR')));
@InstanceCommands.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR')));
@InstanceCommands.AcquireProfilingLockKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireProfilingLockKHR')));
@InstanceCommands.ReleaseProfilingLockKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkReleaseProfilingLockKHR')));
@InstanceCommands.GetImageDrmFormatModifierPropertiesEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetImageDrmFormatModifierPropertiesEXT')));
@InstanceCommands.GetBufferOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferOpaqueCaptureAddress')));
@InstanceCommands.GetBufferOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferOpaqueCaptureAddressKHR')));
@InstanceCommands.GetBufferDeviceAddress:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferDeviceAddress')));
@InstanceCommands.GetBufferDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferDeviceAddressKHR')));
@InstanceCommands.GetBufferDeviceAddressEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetBufferDeviceAddressEXT')));
@InstanceCommands.CreateHeadlessSurfaceEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateHeadlessSurfaceEXT')));
@InstanceCommands.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV')));
@InstanceCommands.InitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkInitializePerformanceApiINTEL')));
@InstanceCommands.UninitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUninitializePerformanceApiINTEL')));
@InstanceCommands.CmdSetPerformanceMarkerINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPerformanceMarkerINTEL')));
@InstanceCommands.CmdSetPerformanceStreamMarkerINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPerformanceStreamMarkerINTEL')));
@InstanceCommands.CmdSetPerformanceOverrideINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPerformanceOverrideINTEL')));
@InstanceCommands.AcquirePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquirePerformanceConfigurationINTEL')));
@InstanceCommands.ReleasePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkReleasePerformanceConfigurationINTEL')));
@InstanceCommands.QueueSetPerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueSetPerformanceConfigurationINTEL')));
@InstanceCommands.GetPerformanceParameterINTEL:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPerformanceParameterINTEL')));
@InstanceCommands.GetDeviceMemoryOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceMemoryOpaqueCaptureAddress')));
@InstanceCommands.GetDeviceMemoryOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeviceMemoryOpaqueCaptureAddressKHR')));
@InstanceCommands.GetPipelineExecutablePropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPipelineExecutablePropertiesKHR')));
@InstanceCommands.GetPipelineExecutableStatisticsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPipelineExecutableStatisticsKHR')));
@InstanceCommands.GetPipelineExecutableInternalRepresentationsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPipelineExecutableInternalRepresentationsKHR')));
@InstanceCommands.CmdSetLineStippleEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetLineStippleEXT')));
@InstanceCommands.GetPhysicalDeviceToolPropertiesEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceToolPropertiesEXT')));
@InstanceCommands.CreateAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateAccelerationStructureKHR')));
@InstanceCommands.CmdBuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBuildAccelerationStructuresKHR')));
@InstanceCommands.CmdBuildAccelerationStructuresIndirectKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBuildAccelerationStructuresIndirectKHR')));
@InstanceCommands.BuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBuildAccelerationStructuresKHR')));
@InstanceCommands.GetAccelerationStructureDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetAccelerationStructureDeviceAddressKHR')));
@InstanceCommands.CreateDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateDeferredOperationKHR')));
@InstanceCommands.DestroyDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyDeferredOperationKHR')));
@InstanceCommands.GetDeferredOperationMaxConcurrencyKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeferredOperationMaxConcurrencyKHR')));
@InstanceCommands.GetDeferredOperationResultKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDeferredOperationResultKHR')));
@InstanceCommands.DeferredOperationJoinKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDeferredOperationJoinKHR')));
@InstanceCommands.CmdSetCullModeEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetCullModeEXT')));
@InstanceCommands.CmdSetFrontFaceEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetFrontFaceEXT')));
@InstanceCommands.CmdSetPrimitiveTopologyEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPrimitiveTopologyEXT')));
@InstanceCommands.CmdSetViewportWithCountEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetViewportWithCountEXT')));
@InstanceCommands.CmdSetScissorWithCountEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetScissorWithCountEXT')));
@InstanceCommands.CmdBindVertexBuffers2EXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBindVertexBuffers2EXT')));
@InstanceCommands.CmdSetDepthTestEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthTestEnableEXT')));
@InstanceCommands.CmdSetDepthWriteEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthWriteEnableEXT')));
@InstanceCommands.CmdSetDepthCompareOpEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthCompareOpEXT')));
@InstanceCommands.CmdSetDepthBoundsTestEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthBoundsTestEnableEXT')));
@InstanceCommands.CmdSetStencilTestEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetStencilTestEnableEXT')));
@InstanceCommands.CmdSetStencilOpEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetStencilOpEXT')));
@InstanceCommands.CmdSetPatchControlPointsEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPatchControlPointsEXT')));
@InstanceCommands.CmdSetRasterizerDiscardEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetRasterizerDiscardEnableEXT')));
@InstanceCommands.CmdSetDepthBiasEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetDepthBiasEnableEXT')));
@InstanceCommands.CmdSetLogicOpEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetLogicOpEXT')));
@InstanceCommands.CmdSetPrimitiveRestartEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetPrimitiveRestartEnableEXT')));
@InstanceCommands.CreatePrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreatePrivateDataSlotEXT')));
@InstanceCommands.DestroyPrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyPrivateDataSlotEXT')));
@InstanceCommands.SetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkSetPrivateDataEXT')));
@InstanceCommands.GetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPrivateDataEXT')));
@InstanceCommands.CmdCopyBuffer2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyBuffer2KHR')));
@InstanceCommands.CmdCopyImage2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyImage2KHR')));
@InstanceCommands.CmdBlitImage2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBlitImage2KHR')));
@InstanceCommands.CmdCopyBufferToImage2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyBufferToImage2KHR')));
@InstanceCommands.CmdCopyImageToBuffer2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCopyImageToBuffer2KHR')));
@InstanceCommands.CmdResolveImage2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdResolveImage2KHR')));
@InstanceCommands.CmdSetFragmentShadingRateKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetFragmentShadingRateKHR')));
@InstanceCommands.GetPhysicalDeviceFragmentShadingRatesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceFragmentShadingRatesKHR')));
@InstanceCommands.CmdSetFragmentShadingRateEnumNV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetFragmentShadingRateEnumNV')));
@InstanceCommands.GetAccelerationStructureBuildSizesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetAccelerationStructureBuildSizesKHR')));
@InstanceCommands.CmdSetVertexInputEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetVertexInputEXT')));
@InstanceCommands.CmdSetColorWriteEnableEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetColorWriteEnableEXT')));
@InstanceCommands.CmdSetEvent2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdSetEvent2KHR')));
@InstanceCommands.CmdResetEvent2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdResetEvent2KHR')));
@InstanceCommands.CmdWaitEvents2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWaitEvents2KHR')));
@InstanceCommands.CmdPipelineBarrier2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdPipelineBarrier2KHR')));
@InstanceCommands.QueueSubmit2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkQueueSubmit2KHR')));
@InstanceCommands.CmdWriteTimestamp2KHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteTimestamp2KHR')));
@InstanceCommands.CmdWriteBufferMarker2AMD:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdWriteBufferMarker2AMD')));
@InstanceCommands.GetQueueCheckpointData2NV:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetQueueCheckpointData2NV')));
{$ifdef VkVideo}
@InstanceCommands.GetPhysicalDeviceVideoCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceVideoCapabilitiesKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.GetPhysicalDeviceVideoFormatPropertiesKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetPhysicalDeviceVideoFormatPropertiesKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CreateVideoSessionKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateVideoSessionKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.DestroyVideoSessionKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyVideoSessionKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CreateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.UpdateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkUpdateVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.DestroyVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.GetVideoSessionMemoryRequirementsKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetVideoSessionMemoryRequirementsKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.BindVideoSessionMemoryKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkBindVideoSessionMemoryKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CmdDecodeVideoKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdDecodeVideoKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CmdBeginVideoCodingKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdBeginVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CmdControlVideoCodingKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdControlVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CmdEndVideoCodingKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEndVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@InstanceCommands.CmdEncodeVideoKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdEncodeVideoKHR')));
{$endif}
@InstanceCommands.CreateCuModuleNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateCuModuleNVX')));
@InstanceCommands.CreateCuFunctionNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCreateCuFunctionNVX')));
@InstanceCommands.DestroyCuModuleNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyCuModuleNVX')));
@InstanceCommands.DestroyCuFunctionNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkDestroyCuFunctionNVX')));
@InstanceCommands.CmdCuLaunchKernelNVX:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkCmdCuLaunchKernelNVX')));
@InstanceCommands.AcquireDrmDisplayEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkAcquireDrmDisplayEXT')));
@InstanceCommands.GetDrmDisplayEXT:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkGetDrmDisplayEXT')));
@InstanceCommands.WaitForPresentKHR:=vkVoidFunctionToPointer(vkGetInstanceProcAddr(Instance,PVkChar('vkWaitForPresentKHR')));
if not assigned(InstanceCommands.EnumerateInstanceExtensionProperties) then begin
InstanceCommands.EnumerateInstanceExtensionProperties:=addr(vkEnumerateInstanceExtensionProperties);
end;
if not assigned(InstanceCommands.EnumerateInstanceLayerProperties) then begin
InstanceCommands.EnumerateInstanceLayerProperties:=addr(vkEnumerateInstanceLayerProperties);
end;
if not assigned(InstanceCommands.CreateInstance) then begin
InstanceCommands.CreateInstance:=addr(vkCreateInstance);
end;
result:=assigned(InstanceCommands.DestroyInstance);
end;
end;
function LoadVulkanDeviceCommands(const GetDeviceProcAddr:TvkGetDeviceProcAddr;const Device:TVkDevice;out DeviceCommands:TVulkanCommands):boolean;
begin
FillChar(DeviceCommands,SizeOf(TVulkanCommands),#0);
result:=assigned(GetDeviceProcAddr);
if result then begin
// Device commands of any Vulkan command whose first parameter is one of: vkDevice, VkQueue, VkCommandBuffer
@DeviceCommands.GetDeviceProcAddr:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceProcAddr')));
@DeviceCommands.DestroyDevice:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDevice')));
@DeviceCommands.GetDeviceQueue:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceQueue')));
@DeviceCommands.QueueSubmit:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueSubmit')));
@DeviceCommands.QueueWaitIdle:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueWaitIdle')));
@DeviceCommands.DeviceWaitIdle:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDeviceWaitIdle')));
@DeviceCommands.AllocateMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAllocateMemory')));
@DeviceCommands.FreeMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkFreeMemory')));
@DeviceCommands.MapMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkMapMemory')));
@DeviceCommands.UnmapMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUnmapMemory')));
@DeviceCommands.FlushMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkFlushMappedMemoryRanges')));
@DeviceCommands.InvalidateMappedMemoryRanges:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkInvalidateMappedMemoryRanges')));
@DeviceCommands.GetDeviceMemoryCommitment:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceMemoryCommitment')));
@DeviceCommands.GetBufferMemoryRequirements:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferMemoryRequirements')));
@DeviceCommands.BindBufferMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindBufferMemory')));
@DeviceCommands.GetImageMemoryRequirements:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageMemoryRequirements')));
@DeviceCommands.BindImageMemory:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindImageMemory')));
@DeviceCommands.GetImageSparseMemoryRequirements:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageSparseMemoryRequirements')));
@DeviceCommands.QueueBindSparse:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueBindSparse')));
@DeviceCommands.CreateFence:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateFence')));
@DeviceCommands.DestroyFence:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyFence')));
@DeviceCommands.ResetFences:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetFences')));
@DeviceCommands.GetFenceStatus:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetFenceStatus')));
@DeviceCommands.WaitForFences:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkWaitForFences')));
@DeviceCommands.CreateSemaphore:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSemaphore')));
@DeviceCommands.DestroySemaphore:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroySemaphore')));
@DeviceCommands.CreateEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateEvent')));
@DeviceCommands.DestroyEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyEvent')));
@DeviceCommands.GetEventStatus:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetEventStatus')));
@DeviceCommands.SetEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetEvent')));
@DeviceCommands.ResetEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetEvent')));
@DeviceCommands.CreateQueryPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateQueryPool')));
@DeviceCommands.DestroyQueryPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyQueryPool')));
@DeviceCommands.GetQueryPoolResults:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetQueryPoolResults')));
@DeviceCommands.ResetQueryPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetQueryPool')));
@DeviceCommands.ResetQueryPoolEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetQueryPoolEXT')));
@DeviceCommands.CreateBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateBuffer')));
@DeviceCommands.DestroyBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyBuffer')));
@DeviceCommands.CreateBufferView:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateBufferView')));
@DeviceCommands.DestroyBufferView:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyBufferView')));
@DeviceCommands.CreateImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateImage')));
@DeviceCommands.DestroyImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyImage')));
@DeviceCommands.GetImageSubresourceLayout:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageSubresourceLayout')));
@DeviceCommands.CreateImageView:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateImageView')));
@DeviceCommands.DestroyImageView:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyImageView')));
@DeviceCommands.CreateShaderModule:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateShaderModule')));
@DeviceCommands.DestroyShaderModule:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyShaderModule')));
@DeviceCommands.CreatePipelineCache:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreatePipelineCache')));
@DeviceCommands.DestroyPipelineCache:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyPipelineCache')));
@DeviceCommands.GetPipelineCacheData:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPipelineCacheData')));
@DeviceCommands.MergePipelineCaches:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkMergePipelineCaches')));
@DeviceCommands.CreateGraphicsPipelines:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateGraphicsPipelines')));
@DeviceCommands.CreateComputePipelines:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateComputePipelines')));
@DeviceCommands.GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI')));
@DeviceCommands.DestroyPipeline:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyPipeline')));
@DeviceCommands.CreatePipelineLayout:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreatePipelineLayout')));
@DeviceCommands.DestroyPipelineLayout:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyPipelineLayout')));
@DeviceCommands.CreateSampler:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSampler')));
@DeviceCommands.DestroySampler:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroySampler')));
@DeviceCommands.CreateDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateDescriptorSetLayout')));
@DeviceCommands.DestroyDescriptorSetLayout:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDescriptorSetLayout')));
@DeviceCommands.CreateDescriptorPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateDescriptorPool')));
@DeviceCommands.DestroyDescriptorPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDescriptorPool')));
@DeviceCommands.ResetDescriptorPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetDescriptorPool')));
@DeviceCommands.AllocateDescriptorSets:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAllocateDescriptorSets')));
@DeviceCommands.FreeDescriptorSets:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkFreeDescriptorSets')));
@DeviceCommands.UpdateDescriptorSets:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUpdateDescriptorSets')));
@DeviceCommands.CreateFramebuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateFramebuffer')));
@DeviceCommands.DestroyFramebuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyFramebuffer')));
@DeviceCommands.CreateRenderPass:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateRenderPass')));
@DeviceCommands.DestroyRenderPass:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyRenderPass')));
@DeviceCommands.GetRenderAreaGranularity:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRenderAreaGranularity')));
@DeviceCommands.CreateCommandPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateCommandPool')));
@DeviceCommands.DestroyCommandPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyCommandPool')));
@DeviceCommands.ResetCommandPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetCommandPool')));
@DeviceCommands.AllocateCommandBuffers:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAllocateCommandBuffers')));
@DeviceCommands.FreeCommandBuffers:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkFreeCommandBuffers')));
@DeviceCommands.BeginCommandBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBeginCommandBuffer')));
@DeviceCommands.EndCommandBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkEndCommandBuffer')));
@DeviceCommands.ResetCommandBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkResetCommandBuffer')));
@DeviceCommands.CmdBindPipeline:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindPipeline')));
@DeviceCommands.CmdSetViewport:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetViewport')));
@DeviceCommands.CmdSetScissor:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetScissor')));
@DeviceCommands.CmdSetLineWidth:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetLineWidth')));
@DeviceCommands.CmdSetDepthBias:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthBias')));
@DeviceCommands.CmdSetBlendConstants:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetBlendConstants')));
@DeviceCommands.CmdSetDepthBounds:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthBounds')));
@DeviceCommands.CmdSetStencilCompareMask:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetStencilCompareMask')));
@DeviceCommands.CmdSetStencilWriteMask:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetStencilWriteMask')));
@DeviceCommands.CmdSetStencilReference:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetStencilReference')));
@DeviceCommands.CmdBindDescriptorSets:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindDescriptorSets')));
@DeviceCommands.CmdBindIndexBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindIndexBuffer')));
@DeviceCommands.CmdBindVertexBuffers:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindVertexBuffers')));
@DeviceCommands.CmdDraw:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDraw')));
@DeviceCommands.CmdDrawIndexed:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndexed')));
@DeviceCommands.CmdDrawMultiEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawMultiEXT')));
@DeviceCommands.CmdDrawMultiIndexedEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawMultiIndexedEXT')));
@DeviceCommands.CmdDrawIndirect:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndirect')));
@DeviceCommands.CmdDrawIndexedIndirect:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndexedIndirect')));
@DeviceCommands.CmdDispatch:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDispatch')));
@DeviceCommands.CmdDispatchIndirect:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDispatchIndirect')));
@DeviceCommands.CmdSubpassShadingHUAWEI:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSubpassShadingHUAWEI')));
@DeviceCommands.CmdCopyBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyBuffer')));
@DeviceCommands.CmdCopyImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyImage')));
@DeviceCommands.CmdBlitImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBlitImage')));
@DeviceCommands.CmdCopyBufferToImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyBufferToImage')));
@DeviceCommands.CmdCopyImageToBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyImageToBuffer')));
@DeviceCommands.CmdUpdateBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdUpdateBuffer')));
@DeviceCommands.CmdFillBuffer:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdFillBuffer')));
@DeviceCommands.CmdClearColorImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdClearColorImage')));
@DeviceCommands.CmdClearDepthStencilImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdClearDepthStencilImage')));
@DeviceCommands.CmdClearAttachments:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdClearAttachments')));
@DeviceCommands.CmdResolveImage:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdResolveImage')));
@DeviceCommands.CmdSetEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetEvent')));
@DeviceCommands.CmdResetEvent:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdResetEvent')));
@DeviceCommands.CmdWaitEvents:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWaitEvents')));
@DeviceCommands.CmdPipelineBarrier:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPipelineBarrier')));
@DeviceCommands.CmdBeginQuery:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginQuery')));
@DeviceCommands.CmdEndQuery:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndQuery')));
@DeviceCommands.CmdBeginConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginConditionalRenderingEXT')));
@DeviceCommands.CmdEndConditionalRenderingEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndConditionalRenderingEXT')));
@DeviceCommands.CmdResetQueryPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdResetQueryPool')));
@DeviceCommands.CmdWriteTimestamp:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteTimestamp')));
@DeviceCommands.CmdCopyQueryPoolResults:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyQueryPoolResults')));
@DeviceCommands.CmdPushConstants:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPushConstants')));
@DeviceCommands.CmdBeginRenderPass:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginRenderPass')));
@DeviceCommands.CmdNextSubpass:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdNextSubpass')));
@DeviceCommands.CmdEndRenderPass:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndRenderPass')));
@DeviceCommands.CmdExecuteCommands:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdExecuteCommands')));
@DeviceCommands.CreateSharedSwapchainsKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSharedSwapchainsKHR')));
@DeviceCommands.CreateSwapchainKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSwapchainKHR')));
@DeviceCommands.DestroySwapchainKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroySwapchainKHR')));
@DeviceCommands.GetSwapchainImagesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSwapchainImagesKHR')));
@DeviceCommands.AcquireNextImageKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquireNextImageKHR')));
@DeviceCommands.QueuePresentKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueuePresentKHR')));
@DeviceCommands.DebugMarkerSetObjectNameEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDebugMarkerSetObjectNameEXT')));
@DeviceCommands.DebugMarkerSetObjectTagEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDebugMarkerSetObjectTagEXT')));
@DeviceCommands.CmdDebugMarkerBeginEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDebugMarkerBeginEXT')));
@DeviceCommands.CmdDebugMarkerEndEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDebugMarkerEndEXT')));
@DeviceCommands.CmdDebugMarkerInsertEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDebugMarkerInsertEXT')));
{$ifdef Windows}
@DeviceCommands.GetMemoryWin32HandleNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryWin32HandleNV')));
{$endif}
@DeviceCommands.CmdExecuteGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdExecuteGeneratedCommandsNV')));
@DeviceCommands.CmdPreprocessGeneratedCommandsNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPreprocessGeneratedCommandsNV')));
@DeviceCommands.CmdBindPipelineShaderGroupNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindPipelineShaderGroupNV')));
@DeviceCommands.GetGeneratedCommandsMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetGeneratedCommandsMemoryRequirementsNV')));
@DeviceCommands.CreateIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateIndirectCommandsLayoutNV')));
@DeviceCommands.DestroyIndirectCommandsLayoutNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyIndirectCommandsLayoutNV')));
@DeviceCommands.CmdPushDescriptorSetKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPushDescriptorSetKHR')));
@DeviceCommands.TrimCommandPool:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkTrimCommandPool')));
@DeviceCommands.TrimCommandPoolKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkTrimCommandPoolKHR')));
{$ifdef Windows}
@DeviceCommands.GetMemoryWin32HandleKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@DeviceCommands.GetMemoryWin32HandlePropertiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryWin32HandlePropertiesKHR')));
{$endif}
@DeviceCommands.GetMemoryFdKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryFdKHR')));
@DeviceCommands.GetMemoryFdPropertiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryFdPropertiesKHR')));
{$ifdef Fuchsia}
@DeviceCommands.GetMemoryZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryZirconHandleFUCHSIA')));
{$endif}
{$ifdef Fuchsia}
@DeviceCommands.GetMemoryZirconHandlePropertiesFUCHSIA:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryZirconHandlePropertiesFUCHSIA')));
{$endif}
@DeviceCommands.GetMemoryRemoteAddressNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryRemoteAddressNV')));
{$ifdef Windows}
@DeviceCommands.GetSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSemaphoreWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@DeviceCommands.ImportSemaphoreWin32HandleKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkImportSemaphoreWin32HandleKHR')));
{$endif}
@DeviceCommands.GetSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSemaphoreFdKHR')));
@DeviceCommands.ImportSemaphoreFdKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkImportSemaphoreFdKHR')));
{$ifdef Fuchsia}
@DeviceCommands.GetSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSemaphoreZirconHandleFUCHSIA')));
{$endif}
{$ifdef Fuchsia}
@DeviceCommands.ImportSemaphoreZirconHandleFUCHSIA:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkImportSemaphoreZirconHandleFUCHSIA')));
{$endif}
{$ifdef Windows}
@DeviceCommands.GetFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetFenceWin32HandleKHR')));
{$endif}
{$ifdef Windows}
@DeviceCommands.ImportFenceWin32HandleKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkImportFenceWin32HandleKHR')));
{$endif}
@DeviceCommands.GetFenceFdKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetFenceFdKHR')));
@DeviceCommands.ImportFenceFdKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkImportFenceFdKHR')));
@DeviceCommands.DisplayPowerControlEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDisplayPowerControlEXT')));
@DeviceCommands.RegisterDeviceEventEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkRegisterDeviceEventEXT')));
@DeviceCommands.RegisterDisplayEventEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkRegisterDisplayEventEXT')));
@DeviceCommands.GetSwapchainCounterEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSwapchainCounterEXT')));
@DeviceCommands.GetDeviceGroupPeerMemoryFeatures:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceGroupPeerMemoryFeatures')));
@DeviceCommands.GetDeviceGroupPeerMemoryFeaturesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceGroupPeerMemoryFeaturesKHR')));
@DeviceCommands.BindBufferMemory2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindBufferMemory2')));
@DeviceCommands.BindBufferMemory2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindBufferMemory2KHR')));
@DeviceCommands.BindImageMemory2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindImageMemory2')));
@DeviceCommands.BindImageMemory2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindImageMemory2KHR')));
@DeviceCommands.CmdSetDeviceMask:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDeviceMask')));
@DeviceCommands.CmdSetDeviceMaskKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDeviceMaskKHR')));
@DeviceCommands.GetDeviceGroupPresentCapabilitiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceGroupPresentCapabilitiesKHR')));
@DeviceCommands.GetDeviceGroupSurfacePresentModesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceGroupSurfacePresentModesKHR')));
@DeviceCommands.AcquireNextImage2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquireNextImage2KHR')));
@DeviceCommands.CmdDispatchBase:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDispatchBase')));
@DeviceCommands.CmdDispatchBaseKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDispatchBaseKHR')));
@DeviceCommands.CreateDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateDescriptorUpdateTemplate')));
@DeviceCommands.CreateDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateDescriptorUpdateTemplateKHR')));
@DeviceCommands.DestroyDescriptorUpdateTemplate:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDescriptorUpdateTemplate')));
@DeviceCommands.DestroyDescriptorUpdateTemplateKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDescriptorUpdateTemplateKHR')));
@DeviceCommands.UpdateDescriptorSetWithTemplate:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUpdateDescriptorSetWithTemplate')));
@DeviceCommands.UpdateDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUpdateDescriptorSetWithTemplateKHR')));
@DeviceCommands.CmdPushDescriptorSetWithTemplateKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPushDescriptorSetWithTemplateKHR')));
@DeviceCommands.SetHdrMetadataEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetHdrMetadataEXT')));
@DeviceCommands.GetSwapchainStatusKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSwapchainStatusKHR')));
@DeviceCommands.GetRefreshCycleDurationGOOGLE:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRefreshCycleDurationGOOGLE')));
@DeviceCommands.GetPastPresentationTimingGOOGLE:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPastPresentationTimingGOOGLE')));
@DeviceCommands.CmdSetViewportWScalingNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetViewportWScalingNV')));
@DeviceCommands.CmdSetDiscardRectangleEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDiscardRectangleEXT')));
@DeviceCommands.CmdSetSampleLocationsEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetSampleLocationsEXT')));
@DeviceCommands.GetBufferMemoryRequirements2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferMemoryRequirements2')));
@DeviceCommands.GetBufferMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferMemoryRequirements2KHR')));
@DeviceCommands.GetImageMemoryRequirements2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageMemoryRequirements2')));
@DeviceCommands.GetImageMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageMemoryRequirements2KHR')));
@DeviceCommands.GetImageSparseMemoryRequirements2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageSparseMemoryRequirements2')));
@DeviceCommands.GetImageSparseMemoryRequirements2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageSparseMemoryRequirements2KHR')));
@DeviceCommands.CreateSamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSamplerYcbcrConversion')));
@DeviceCommands.CreateSamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateSamplerYcbcrConversionKHR')));
@DeviceCommands.DestroySamplerYcbcrConversion:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroySamplerYcbcrConversion')));
@DeviceCommands.DestroySamplerYcbcrConversionKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroySamplerYcbcrConversionKHR')));
@DeviceCommands.GetDeviceQueue2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceQueue2')));
@DeviceCommands.CreateValidationCacheEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateValidationCacheEXT')));
@DeviceCommands.DestroyValidationCacheEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyValidationCacheEXT')));
@DeviceCommands.GetValidationCacheDataEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetValidationCacheDataEXT')));
@DeviceCommands.MergeValidationCachesEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkMergeValidationCachesEXT')));
@DeviceCommands.GetDescriptorSetLayoutSupport:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDescriptorSetLayoutSupport')));
@DeviceCommands.GetDescriptorSetLayoutSupportKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDescriptorSetLayoutSupportKHR')));
@DeviceCommands.GetSwapchainGrallocUsageANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSwapchainGrallocUsageANDROID')));
{$ifdef Android}
@DeviceCommands.GetSwapchainGrallocUsage2ANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSwapchainGrallocUsage2ANDROID')));
{$endif}
@DeviceCommands.AcquireImageANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquireImageANDROID')));
@DeviceCommands.QueueSignalReleaseImageANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueSignalReleaseImageANDROID')));
@DeviceCommands.GetShaderInfoAMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetShaderInfoAMD')));
@DeviceCommands.SetLocalDimmingAMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetLocalDimmingAMD')));
@DeviceCommands.GetCalibratedTimestampsEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetCalibratedTimestampsEXT')));
@DeviceCommands.SetDebugUtilsObjectNameEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetDebugUtilsObjectNameEXT')));
@DeviceCommands.SetDebugUtilsObjectTagEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetDebugUtilsObjectTagEXT')));
@DeviceCommands.QueueBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueBeginDebugUtilsLabelEXT')));
@DeviceCommands.QueueEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueEndDebugUtilsLabelEXT')));
@DeviceCommands.QueueInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueInsertDebugUtilsLabelEXT')));
@DeviceCommands.CmdBeginDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginDebugUtilsLabelEXT')));
@DeviceCommands.CmdEndDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndDebugUtilsLabelEXT')));
@DeviceCommands.CmdInsertDebugUtilsLabelEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdInsertDebugUtilsLabelEXT')));
@DeviceCommands.GetMemoryHostPointerPropertiesEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryHostPointerPropertiesEXT')));
@DeviceCommands.CmdWriteBufferMarkerAMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteBufferMarkerAMD')));
@DeviceCommands.CreateRenderPass2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateRenderPass2')));
@DeviceCommands.CreateRenderPass2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateRenderPass2KHR')));
@DeviceCommands.CmdBeginRenderPass2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginRenderPass2')));
@DeviceCommands.CmdBeginRenderPass2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginRenderPass2KHR')));
@DeviceCommands.CmdNextSubpass2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdNextSubpass2')));
@DeviceCommands.CmdNextSubpass2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdNextSubpass2KHR')));
@DeviceCommands.CmdEndRenderPass2:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndRenderPass2')));
@DeviceCommands.CmdEndRenderPass2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndRenderPass2KHR')));
@DeviceCommands.GetSemaphoreCounterValue:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSemaphoreCounterValue')));
@DeviceCommands.GetSemaphoreCounterValueKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetSemaphoreCounterValueKHR')));
@DeviceCommands.WaitSemaphores:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkWaitSemaphores')));
@DeviceCommands.WaitSemaphoresKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkWaitSemaphoresKHR')));
@DeviceCommands.SignalSemaphore:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSignalSemaphore')));
@DeviceCommands.SignalSemaphoreKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSignalSemaphoreKHR')));
{$ifdef Android}
@DeviceCommands.GetAndroidHardwareBufferPropertiesANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetAndroidHardwareBufferPropertiesANDROID')));
{$endif}
{$ifdef Android}
@DeviceCommands.GetMemoryAndroidHardwareBufferANDROID:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetMemoryAndroidHardwareBufferANDROID')));
{$endif}
@DeviceCommands.CmdDrawIndirectCount:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndirectCount')));
@DeviceCommands.CmdDrawIndirectCountKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndirectCountKHR')));
@DeviceCommands.CmdDrawIndirectCountAMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndirectCountAMD')));
@DeviceCommands.CmdDrawIndexedIndirectCount:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndexedIndirectCount')));
@DeviceCommands.CmdDrawIndexedIndirectCountKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndexedIndirectCountKHR')));
@DeviceCommands.CmdDrawIndexedIndirectCountAMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndexedIndirectCountAMD')));
@DeviceCommands.CmdSetCheckpointNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetCheckpointNV')));
@DeviceCommands.GetQueueCheckpointDataNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetQueueCheckpointDataNV')));
@DeviceCommands.CmdBindTransformFeedbackBuffersEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindTransformFeedbackBuffersEXT')));
@DeviceCommands.CmdBeginTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginTransformFeedbackEXT')));
@DeviceCommands.CmdEndTransformFeedbackEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndTransformFeedbackEXT')));
@DeviceCommands.CmdBeginQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginQueryIndexedEXT')));
@DeviceCommands.CmdEndQueryIndexedEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndQueryIndexedEXT')));
@DeviceCommands.CmdDrawIndirectByteCountEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawIndirectByteCountEXT')));
@DeviceCommands.CmdSetExclusiveScissorNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetExclusiveScissorNV')));
@DeviceCommands.CmdBindShadingRateImageNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindShadingRateImageNV')));
@DeviceCommands.CmdSetViewportShadingRatePaletteNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetViewportShadingRatePaletteNV')));
@DeviceCommands.CmdSetCoarseSampleOrderNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetCoarseSampleOrderNV')));
@DeviceCommands.CmdDrawMeshTasksNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawMeshTasksNV')));
@DeviceCommands.CmdDrawMeshTasksIndirectNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawMeshTasksIndirectNV')));
@DeviceCommands.CmdDrawMeshTasksIndirectCountNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDrawMeshTasksIndirectCountNV')));
@DeviceCommands.CompileDeferredNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCompileDeferredNV')));
@DeviceCommands.CreateAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateAccelerationStructureNV')));
@DeviceCommands.CmdBindInvocationMaskHUAWEI:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindInvocationMaskHUAWEI')));
@DeviceCommands.DestroyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyAccelerationStructureKHR')));
@DeviceCommands.DestroyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyAccelerationStructureNV')));
@DeviceCommands.GetAccelerationStructureMemoryRequirementsNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetAccelerationStructureMemoryRequirementsNV')));
@DeviceCommands.BindAccelerationStructureMemoryNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindAccelerationStructureMemoryNV')));
@DeviceCommands.CmdCopyAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyAccelerationStructureNV')));
@DeviceCommands.CmdCopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyAccelerationStructureKHR')));
@DeviceCommands.CopyAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCopyAccelerationStructureKHR')));
@DeviceCommands.CmdCopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyAccelerationStructureToMemoryKHR')));
@DeviceCommands.CopyAccelerationStructureToMemoryKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCopyAccelerationStructureToMemoryKHR')));
@DeviceCommands.CmdCopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyMemoryToAccelerationStructureKHR')));
@DeviceCommands.CopyMemoryToAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCopyMemoryToAccelerationStructureKHR')));
@DeviceCommands.CmdWriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteAccelerationStructuresPropertiesKHR')));
@DeviceCommands.CmdWriteAccelerationStructuresPropertiesNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteAccelerationStructuresPropertiesNV')));
@DeviceCommands.CmdBuildAccelerationStructureNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBuildAccelerationStructureNV')));
@DeviceCommands.WriteAccelerationStructuresPropertiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkWriteAccelerationStructuresPropertiesKHR')));
@DeviceCommands.CmdTraceRaysKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdTraceRaysKHR')));
@DeviceCommands.CmdTraceRaysNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdTraceRaysNV')));
@DeviceCommands.GetRayTracingShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRayTracingShaderGroupHandlesKHR')));
@DeviceCommands.GetRayTracingShaderGroupHandlesNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRayTracingShaderGroupHandlesNV')));
@DeviceCommands.GetRayTracingCaptureReplayShaderGroupHandlesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRayTracingCaptureReplayShaderGroupHandlesKHR')));
@DeviceCommands.GetAccelerationStructureHandleNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetAccelerationStructureHandleNV')));
@DeviceCommands.CreateRayTracingPipelinesNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateRayTracingPipelinesNV')));
@DeviceCommands.CreateRayTracingPipelinesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateRayTracingPipelinesKHR')));
@DeviceCommands.CmdTraceRaysIndirectKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdTraceRaysIndirectKHR')));
@DeviceCommands.GetDeviceAccelerationStructureCompatibilityKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceAccelerationStructureCompatibilityKHR')));
@DeviceCommands.GetRayTracingShaderGroupStackSizeKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetRayTracingShaderGroupStackSizeKHR')));
@DeviceCommands.CmdSetRayTracingPipelineStackSizeKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetRayTracingPipelineStackSizeKHR')));
@DeviceCommands.GetImageViewHandleNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageViewHandleNVX')));
@DeviceCommands.GetImageViewAddressNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageViewAddressNVX')));
@DeviceCommands.GetDeviceGroupSurfacePresentModes2EXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceGroupSurfacePresentModes2EXT')));
@DeviceCommands.AcquireFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquireFullScreenExclusiveModeEXT')));
@DeviceCommands.ReleaseFullScreenExclusiveModeEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkReleaseFullScreenExclusiveModeEXT')));
@DeviceCommands.AcquireProfilingLockKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquireProfilingLockKHR')));
@DeviceCommands.ReleaseProfilingLockKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkReleaseProfilingLockKHR')));
@DeviceCommands.GetImageDrmFormatModifierPropertiesEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetImageDrmFormatModifierPropertiesEXT')));
@DeviceCommands.GetBufferOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferOpaqueCaptureAddress')));
@DeviceCommands.GetBufferOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferOpaqueCaptureAddressKHR')));
@DeviceCommands.GetBufferDeviceAddress:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferDeviceAddress')));
@DeviceCommands.GetBufferDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferDeviceAddressKHR')));
@DeviceCommands.GetBufferDeviceAddressEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetBufferDeviceAddressEXT')));
@DeviceCommands.InitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkInitializePerformanceApiINTEL')));
@DeviceCommands.UninitializePerformanceApiINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUninitializePerformanceApiINTEL')));
@DeviceCommands.CmdSetPerformanceMarkerINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPerformanceMarkerINTEL')));
@DeviceCommands.CmdSetPerformanceStreamMarkerINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPerformanceStreamMarkerINTEL')));
@DeviceCommands.CmdSetPerformanceOverrideINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPerformanceOverrideINTEL')));
@DeviceCommands.AcquirePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkAcquirePerformanceConfigurationINTEL')));
@DeviceCommands.ReleasePerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkReleasePerformanceConfigurationINTEL')));
@DeviceCommands.QueueSetPerformanceConfigurationINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueSetPerformanceConfigurationINTEL')));
@DeviceCommands.GetPerformanceParameterINTEL:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPerformanceParameterINTEL')));
@DeviceCommands.GetDeviceMemoryOpaqueCaptureAddress:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceMemoryOpaqueCaptureAddress')));
@DeviceCommands.GetDeviceMemoryOpaqueCaptureAddressKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeviceMemoryOpaqueCaptureAddressKHR')));
@DeviceCommands.GetPipelineExecutablePropertiesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPipelineExecutablePropertiesKHR')));
@DeviceCommands.GetPipelineExecutableStatisticsKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPipelineExecutableStatisticsKHR')));
@DeviceCommands.GetPipelineExecutableInternalRepresentationsKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPipelineExecutableInternalRepresentationsKHR')));
@DeviceCommands.CmdSetLineStippleEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetLineStippleEXT')));
@DeviceCommands.CreateAccelerationStructureKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateAccelerationStructureKHR')));
@DeviceCommands.CmdBuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBuildAccelerationStructuresKHR')));
@DeviceCommands.CmdBuildAccelerationStructuresIndirectKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBuildAccelerationStructuresIndirectKHR')));
@DeviceCommands.BuildAccelerationStructuresKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBuildAccelerationStructuresKHR')));
@DeviceCommands.GetAccelerationStructureDeviceAddressKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetAccelerationStructureDeviceAddressKHR')));
@DeviceCommands.CreateDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateDeferredOperationKHR')));
@DeviceCommands.DestroyDeferredOperationKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyDeferredOperationKHR')));
@DeviceCommands.GetDeferredOperationMaxConcurrencyKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeferredOperationMaxConcurrencyKHR')));
@DeviceCommands.GetDeferredOperationResultKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetDeferredOperationResultKHR')));
@DeviceCommands.DeferredOperationJoinKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDeferredOperationJoinKHR')));
@DeviceCommands.CmdSetCullModeEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetCullModeEXT')));
@DeviceCommands.CmdSetFrontFaceEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetFrontFaceEXT')));
@DeviceCommands.CmdSetPrimitiveTopologyEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPrimitiveTopologyEXT')));
@DeviceCommands.CmdSetViewportWithCountEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetViewportWithCountEXT')));
@DeviceCommands.CmdSetScissorWithCountEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetScissorWithCountEXT')));
@DeviceCommands.CmdBindVertexBuffers2EXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBindVertexBuffers2EXT')));
@DeviceCommands.CmdSetDepthTestEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthTestEnableEXT')));
@DeviceCommands.CmdSetDepthWriteEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthWriteEnableEXT')));
@DeviceCommands.CmdSetDepthCompareOpEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthCompareOpEXT')));
@DeviceCommands.CmdSetDepthBoundsTestEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthBoundsTestEnableEXT')));
@DeviceCommands.CmdSetStencilTestEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetStencilTestEnableEXT')));
@DeviceCommands.CmdSetStencilOpEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetStencilOpEXT')));
@DeviceCommands.CmdSetPatchControlPointsEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPatchControlPointsEXT')));
@DeviceCommands.CmdSetRasterizerDiscardEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetRasterizerDiscardEnableEXT')));
@DeviceCommands.CmdSetDepthBiasEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetDepthBiasEnableEXT')));
@DeviceCommands.CmdSetLogicOpEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetLogicOpEXT')));
@DeviceCommands.CmdSetPrimitiveRestartEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetPrimitiveRestartEnableEXT')));
@DeviceCommands.CreatePrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreatePrivateDataSlotEXT')));
@DeviceCommands.DestroyPrivateDataSlotEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyPrivateDataSlotEXT')));
@DeviceCommands.SetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkSetPrivateDataEXT')));
@DeviceCommands.GetPrivateDataEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetPrivateDataEXT')));
@DeviceCommands.CmdCopyBuffer2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyBuffer2KHR')));
@DeviceCommands.CmdCopyImage2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyImage2KHR')));
@DeviceCommands.CmdBlitImage2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBlitImage2KHR')));
@DeviceCommands.CmdCopyBufferToImage2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyBufferToImage2KHR')));
@DeviceCommands.CmdCopyImageToBuffer2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCopyImageToBuffer2KHR')));
@DeviceCommands.CmdResolveImage2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdResolveImage2KHR')));
@DeviceCommands.CmdSetFragmentShadingRateKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetFragmentShadingRateKHR')));
@DeviceCommands.CmdSetFragmentShadingRateEnumNV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetFragmentShadingRateEnumNV')));
@DeviceCommands.GetAccelerationStructureBuildSizesKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetAccelerationStructureBuildSizesKHR')));
@DeviceCommands.CmdSetVertexInputEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetVertexInputEXT')));
@DeviceCommands.CmdSetColorWriteEnableEXT:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetColorWriteEnableEXT')));
@DeviceCommands.CmdSetEvent2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdSetEvent2KHR')));
@DeviceCommands.CmdResetEvent2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdResetEvent2KHR')));
@DeviceCommands.CmdWaitEvents2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWaitEvents2KHR')));
@DeviceCommands.CmdPipelineBarrier2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdPipelineBarrier2KHR')));
@DeviceCommands.QueueSubmit2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkQueueSubmit2KHR')));
@DeviceCommands.CmdWriteTimestamp2KHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteTimestamp2KHR')));
@DeviceCommands.CmdWriteBufferMarker2AMD:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdWriteBufferMarker2AMD')));
@DeviceCommands.GetQueueCheckpointData2NV:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetQueueCheckpointData2NV')));
{$ifdef VkVideo}
@DeviceCommands.CreateVideoSessionKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateVideoSessionKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.DestroyVideoSessionKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyVideoSessionKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CreateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.UpdateVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkUpdateVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.DestroyVideoSessionParametersKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyVideoSessionParametersKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.GetVideoSessionMemoryRequirementsKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkGetVideoSessionMemoryRequirementsKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.BindVideoSessionMemoryKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkBindVideoSessionMemoryKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CmdDecodeVideoKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdDecodeVideoKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CmdBeginVideoCodingKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdBeginVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CmdControlVideoCodingKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdControlVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CmdEndVideoCodingKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEndVideoCodingKHR')));
{$endif}
{$ifdef VkVideo}
@DeviceCommands.CmdEncodeVideoKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdEncodeVideoKHR')));
{$endif}
@DeviceCommands.CreateCuModuleNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateCuModuleNVX')));
@DeviceCommands.CreateCuFunctionNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCreateCuFunctionNVX')));
@DeviceCommands.DestroyCuModuleNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyCuModuleNVX')));
@DeviceCommands.DestroyCuFunctionNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkDestroyCuFunctionNVX')));
@DeviceCommands.CmdCuLaunchKernelNVX:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkCmdCuLaunchKernelNVX')));
@DeviceCommands.WaitForPresentKHR:=vkVoidFunctionToPointer(vkGetDeviceProcAddr(Device,PVkChar('vkWaitForPresentKHR')));
result:=assigned(DeviceCommands.DestroyDevice);
end;
end;
{$ifdef HAS_ADVANCED_RECORDS}
constructor TVkDebugUtilsObjectNameInfoEXT.Create(const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aPObjectName:PVkChar);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
pNext:=nil;
objectType:=aObjectType;
objectHandle:=aObjectHandle;
pObjectName:=aPObjectName;
end;
constructor TVkDeviceMemoryReportCallbackDataEXT.Create(const aFlags:TVkDeviceMemoryReportFlagsEXT;
const aType_:TVkDeviceMemoryReportEventTypeEXT;
const aMemoryObjectId:TVkUInt64;
const aSize:TVkDeviceSize;
const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aHeapIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
pNext:=nil;
flags:=aFlags;
type_:=aType_;
memoryObjectId:=aMemoryObjectId;
size:=aSize;
objectType:=aObjectType;
objectHandle:=aObjectHandle;
heapIndex:=aHeapIndex;
end;
constructor TVkOffset2D.Create(const aX:TVkInt32;
const aY:TVkInt32);
begin
x:=aX;
y:=aY;
end;
constructor TVkOffset3D.Create(const aX:TVkInt32;
const aY:TVkInt32;
const aZ:TVkInt32);
begin
x:=aX;
y:=aY;
z:=aZ;
end;
constructor TVkExtent2D.Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32);
begin
width:=aWidth;
height:=aHeight;
end;
constructor TVkExtent3D.Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aDepth:TVkUInt32);
begin
width:=aWidth;
height:=aHeight;
depth:=aDepth;
end;
constructor TVkViewport.Create(const aX:TVkFloat;
const aY:TVkFloat;
const aWidth:TVkFloat;
const aHeight:TVkFloat;
const aMinDepth:TVkFloat;
const aMaxDepth:TVkFloat);
begin
x:=aX;
y:=aY;
width:=aWidth;
height:=aHeight;
minDepth:=aMinDepth;
maxDepth:=aMaxDepth;
end;
constructor TVkRect2D.Create(const aOffset:TVkOffset2D;
const aExtent:TVkExtent2D);
begin
offset:=aOffset;
extent:=aExtent;
end;
constructor TVkClearRect.Create(const aRect:TVkRect2D;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
begin
rect:=aRect;
baseArrayLayer:=aBaseArrayLayer;
layerCount:=aLayerCount;
end;
constructor TVkComponentMapping.Create(const aR:TVkComponentSwizzle;
const aG:TVkComponentSwizzle;
const aB:TVkComponentSwizzle;
const aA:TVkComponentSwizzle);
begin
r:=aR;
g:=aG;
b:=aB;
a:=aA;
end;
constructor TVkPhysicalDeviceSparseProperties.Create(const aResidencyStandard2DBlockShape:TVkBool32;
const aResidencyStandard2DMultisampleBlockShape:TVkBool32;
const aResidencyStandard3DBlockShape:TVkBool32;
const aResidencyAlignedMipSize:TVkBool32;
const aResidencyNonResidentStrict:TVkBool32);
begin
residencyStandard2DBlockShape:=aResidencyStandard2DBlockShape;
residencyStandard2DMultisampleBlockShape:=aResidencyStandard2DMultisampleBlockShape;
residencyStandard3DBlockShape:=aResidencyStandard3DBlockShape;
residencyAlignedMipSize:=aResidencyAlignedMipSize;
residencyNonResidentStrict:=aResidencyNonResidentStrict;
end;
constructor TVkExtensionProperties.Create(const aExtensionName:TVkCharString;
const aSpecVersion:TVkUInt32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkExtensionProperties),#0);
ArrayItemCount:=length(aExtensionName);
if ArrayItemCount>length(extensionName) then begin
ArrayItemCount:=length(extensionName);
end;
if ArrayItemCount>0 then begin
Move(aExtensionName[1],extensionName[0],ArrayItemCount*SizeOf(TVkChar));
end;
specVersion:=aSpecVersion;
end;
constructor TVkLayerProperties.Create(const aLayerName:TVkCharString;
const aSpecVersion:TVkUInt32;
const aImplementationVersion:TVkUInt32;
const aDescription:TVkCharString);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkLayerProperties),#0);
ArrayItemCount:=length(aLayerName);
if ArrayItemCount>length(layerName) then begin
ArrayItemCount:=length(layerName);
end;
if ArrayItemCount>0 then begin
Move(aLayerName[1],layerName[0],ArrayItemCount*SizeOf(TVkChar));
end;
specVersion:=aSpecVersion;
implementationVersion:=aImplementationVersion;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
end;
constructor TVkApplicationInfo.Create(const aPApplicationName:PVkChar;
const aApplicationVersion:TVkUInt32;
const aPEngineName:PVkChar;
const aEngineVersion:TVkUInt32;
const aApiVersion:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_APPLICATION_INFO;
pNext:=nil;
pApplicationName:=aPApplicationName;
applicationVersion:=aApplicationVersion;
pEngineName:=aPEngineName;
engineVersion:=aEngineVersion;
apiVersion:=aApiVersion;
end;
constructor TVkAllocationCallbacks.Create(const aPUserData:PVkVoid;
const aPfnAllocation:TPFN_vkAllocationFunction;
const aPfnReallocation:TPFN_vkReallocationFunction;
const aPfnFree:TPFN_vkFreeFunction;
const aPfnInternalAllocation:TPFN_vkInternalAllocationNotification;
const aPfnInternalFree:TPFN_vkInternalFreeNotification);
begin
pUserData:=aPUserData;
pfnAllocation:=aPfnAllocation;
pfnReallocation:=aPfnReallocation;
pfnFree:=aPfnFree;
pfnInternalAllocation:=aPfnInternalAllocation;
pfnInternalFree:=aPfnInternalFree;
end;
constructor TVkDeviceQueueCreateInfo.Create(const aFlags:TVkDeviceQueueCreateFlags;
const aQueueFamilyIndex:TVkUInt32;
const aQueueCount:TVkUInt32;
const aPQueuePriorities:PVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
queueFamilyIndex:=aQueueFamilyIndex;
queueCount:=aQueueCount;
pQueuePriorities:=aPQueuePriorities;
end;
constructor TVkPhysicalDeviceFeatures.Create(const aRobustBufferAccess:TVkBool32;
const aFullDrawIndexUint32:TVkBool32;
const aImageCubeArray:TVkBool32;
const aIndependentBlend:TVkBool32;
const aGeometryShader:TVkBool32;
const aTessellationShader:TVkBool32;
const aSampleRateShading:TVkBool32;
const aDualSrcBlend:TVkBool32;
const aLogicOp:TVkBool32;
const aMultiDrawIndirect:TVkBool32;
const aDrawIndirectFirstInstance:TVkBool32;
const aDepthClamp:TVkBool32;
const aDepthBiasClamp:TVkBool32;
const aFillModeNonSolid:TVkBool32;
const aDepthBounds:TVkBool32;
const aWideLines:TVkBool32;
const aLargePoints:TVkBool32;
const aAlphaToOne:TVkBool32;
const aMultiViewport:TVkBool32;
const aSamplerAnisotropy:TVkBool32;
const aTextureCompressionETC2:TVkBool32;
const aTextureCompressionASTC_LDR:TVkBool32;
const aTextureCompressionBC:TVkBool32;
const aOcclusionQueryPrecise:TVkBool32;
const aPipelineStatisticsQuery:TVkBool32;
const aVertexPipelineStoresAndAtomics:TVkBool32;
const aFragmentStoresAndAtomics:TVkBool32;
const aShaderTessellationAndGeometryPointSize:TVkBool32;
const aShaderImageGatherExtended:TVkBool32;
const aShaderStorageImageExtendedFormats:TVkBool32;
const aShaderStorageImageMultisample:TVkBool32;
const aShaderStorageImageReadWithoutFormat:TVkBool32;
const aShaderStorageImageWriteWithoutFormat:TVkBool32;
const aShaderUniformBufferArrayDynamicIndexing:TVkBool32;
const aShaderSampledImageArrayDynamicIndexing:TVkBool32;
const aShaderStorageBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageImageArrayDynamicIndexing:TVkBool32;
const aShaderClipDistance:TVkBool32;
const aShaderCullDistance:TVkBool32;
const aShaderFloat64:TVkBool32;
const aShaderInt64:TVkBool32;
const aShaderInt16:TVkBool32;
const aShaderResourceResidency:TVkBool32;
const aShaderResourceMinLod:TVkBool32;
const aSparseBinding:TVkBool32;
const aSparseResidencyBuffer:TVkBool32;
const aSparseResidencyImage2D:TVkBool32;
const aSparseResidencyImage3D:TVkBool32;
const aSparseResidency2Samples:TVkBool32;
const aSparseResidency4Samples:TVkBool32;
const aSparseResidency8Samples:TVkBool32;
const aSparseResidency16Samples:TVkBool32;
const aSparseResidencyAliased:TVkBool32;
const aVariableMultisampleRate:TVkBool32;
const aInheritedQueries:TVkBool32);
begin
robustBufferAccess:=aRobustBufferAccess;
fullDrawIndexUint32:=aFullDrawIndexUint32;
imageCubeArray:=aImageCubeArray;
independentBlend:=aIndependentBlend;
geometryShader:=aGeometryShader;
tessellationShader:=aTessellationShader;
sampleRateShading:=aSampleRateShading;
dualSrcBlend:=aDualSrcBlend;
logicOp:=aLogicOp;
multiDrawIndirect:=aMultiDrawIndirect;
drawIndirectFirstInstance:=aDrawIndirectFirstInstance;
depthClamp:=aDepthClamp;
depthBiasClamp:=aDepthBiasClamp;
fillModeNonSolid:=aFillModeNonSolid;
depthBounds:=aDepthBounds;
wideLines:=aWideLines;
largePoints:=aLargePoints;
alphaToOne:=aAlphaToOne;
multiViewport:=aMultiViewport;
samplerAnisotropy:=aSamplerAnisotropy;
textureCompressionETC2:=aTextureCompressionETC2;
textureCompressionASTC_LDR:=aTextureCompressionASTC_LDR;
textureCompressionBC:=aTextureCompressionBC;
occlusionQueryPrecise:=aOcclusionQueryPrecise;
pipelineStatisticsQuery:=aPipelineStatisticsQuery;
vertexPipelineStoresAndAtomics:=aVertexPipelineStoresAndAtomics;
fragmentStoresAndAtomics:=aFragmentStoresAndAtomics;
shaderTessellationAndGeometryPointSize:=aShaderTessellationAndGeometryPointSize;
shaderImageGatherExtended:=aShaderImageGatherExtended;
shaderStorageImageExtendedFormats:=aShaderStorageImageExtendedFormats;
shaderStorageImageMultisample:=aShaderStorageImageMultisample;
shaderStorageImageReadWithoutFormat:=aShaderStorageImageReadWithoutFormat;
shaderStorageImageWriteWithoutFormat:=aShaderStorageImageWriteWithoutFormat;
shaderUniformBufferArrayDynamicIndexing:=aShaderUniformBufferArrayDynamicIndexing;
shaderSampledImageArrayDynamicIndexing:=aShaderSampledImageArrayDynamicIndexing;
shaderStorageBufferArrayDynamicIndexing:=aShaderStorageBufferArrayDynamicIndexing;
shaderStorageImageArrayDynamicIndexing:=aShaderStorageImageArrayDynamicIndexing;
shaderClipDistance:=aShaderClipDistance;
shaderCullDistance:=aShaderCullDistance;
shaderFloat64:=aShaderFloat64;
shaderInt64:=aShaderInt64;
shaderInt16:=aShaderInt16;
shaderResourceResidency:=aShaderResourceResidency;
shaderResourceMinLod:=aShaderResourceMinLod;
sparseBinding:=aSparseBinding;
sparseResidencyBuffer:=aSparseResidencyBuffer;
sparseResidencyImage2D:=aSparseResidencyImage2D;
sparseResidencyImage3D:=aSparseResidencyImage3D;
sparseResidency2Samples:=aSparseResidency2Samples;
sparseResidency4Samples:=aSparseResidency4Samples;
sparseResidency8Samples:=aSparseResidency8Samples;
sparseResidency16Samples:=aSparseResidency16Samples;
sparseResidencyAliased:=aSparseResidencyAliased;
variableMultisampleRate:=aVariableMultisampleRate;
inheritedQueries:=aInheritedQueries;
end;
constructor TVkInstanceCreateInfo.Create(const aFlags:TVkInstanceCreateFlags;
const aPApplicationInfo:PVkApplicationInfo;
const aEnabledLayerCount:TVkUInt32;
const aPpEnabledLayerNames:PPVkChar;
const aEnabledExtensionCount:TVkUInt32;
const aPpEnabledExtensionNames:PPVkChar);
begin
sType:=VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
pApplicationInfo:=aPApplicationInfo;
enabledLayerCount:=aEnabledLayerCount;
ppEnabledLayerNames:=aPpEnabledLayerNames;
enabledExtensionCount:=aEnabledExtensionCount;
ppEnabledExtensionNames:=aPpEnabledExtensionNames;
end;
constructor TVkQueueFamilyProperties.Create(const aQueueFlags:TVkQueueFlags;
const aQueueCount:TVkUInt32;
const aTimestampValidBits:TVkUInt32;
const aMinImageTransferGranularity:TVkExtent3D);
begin
queueFlags:=aQueueFlags;
queueCount:=aQueueCount;
timestampValidBits:=aTimestampValidBits;
minImageTransferGranularity:=aMinImageTransferGranularity;
end;
constructor TVkMemoryType.Create(const aPropertyFlags:TVkMemoryPropertyFlags;
const aHeapIndex:TVkUInt32);
begin
propertyFlags:=aPropertyFlags;
heapIndex:=aHeapIndex;
end;
constructor TVkMemoryAllocateInfo.Create(const aAllocationSize:TVkDeviceSize;
const aMemoryTypeIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
pNext:=nil;
allocationSize:=aAllocationSize;
memoryTypeIndex:=aMemoryTypeIndex;
end;
constructor TVkMemoryRequirements.Create(const aSize:TVkDeviceSize;
const aAlignment:TVkDeviceSize;
const aMemoryTypeBits:TVkUInt32);
begin
size:=aSize;
alignment:=aAlignment;
memoryTypeBits:=aMemoryTypeBits;
end;
constructor TVkSparseImageFormatProperties.Create(const aAspectMask:TVkImageAspectFlags;
const aImageGranularity:TVkExtent3D;
const aFlags:TVkSparseImageFormatFlags);
begin
aspectMask:=aAspectMask;
imageGranularity:=aImageGranularity;
flags:=aFlags;
end;
constructor TVkSparseImageMemoryRequirements.Create(const aFormatProperties:TVkSparseImageFormatProperties;
const aImageMipTailFirstLod:TVkUInt32;
const aImageMipTailSize:TVkDeviceSize;
const aImageMipTailOffset:TVkDeviceSize;
const aImageMipTailStride:TVkDeviceSize);
begin
formatProperties:=aFormatProperties;
imageMipTailFirstLod:=aImageMipTailFirstLod;
imageMipTailSize:=aImageMipTailSize;
imageMipTailOffset:=aImageMipTailOffset;
imageMipTailStride:=aImageMipTailStride;
end;
constructor TVkMemoryHeap.Create(const aSize:TVkDeviceSize;
const aFlags:TVkMemoryHeapFlags);
begin
size:=aSize;
flags:=aFlags;
end;
constructor TVkPhysicalDeviceMemoryProperties.Create(const aMemoryTypeCount:TVkUInt32;
const aMemoryTypes:array of TVkMemoryType;
const aMemoryHeapCount:TVkUInt32;
const aMemoryHeaps:array of TVkMemoryHeap);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceMemoryProperties),#0);
memoryTypeCount:=aMemoryTypeCount;
ArrayItemCount:=length(aMemoryTypes);
if ArrayItemCount>length(memoryTypes) then begin
ArrayItemCount:=length(memoryTypes);
end;
if ArrayItemCount>0 then begin
Move(aMemoryTypes[0],memoryTypes[0],ArrayItemCount*SizeOf(TVkMemoryType));
end;
memoryHeapCount:=aMemoryHeapCount;
ArrayItemCount:=length(aMemoryHeaps);
if ArrayItemCount>length(memoryHeaps) then begin
ArrayItemCount:=length(memoryHeaps);
end;
if ArrayItemCount>0 then begin
Move(aMemoryHeaps[0],memoryHeaps[0],ArrayItemCount*SizeOf(TVkMemoryHeap));
end;
end;
constructor TVkMappedMemoryRange.Create(const aMemory:TVkDeviceMemory;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
pNext:=nil;
memory:=aMemory;
offset:=aOffset;
size:=aSize;
end;
constructor TVkFormatProperties.Create(const aLinearTilingFeatures:TVkFormatFeatureFlags;
const aOptimalTilingFeatures:TVkFormatFeatureFlags;
const aBufferFeatures:TVkFormatFeatureFlags);
begin
linearTilingFeatures:=aLinearTilingFeatures;
optimalTilingFeatures:=aOptimalTilingFeatures;
bufferFeatures:=aBufferFeatures;
end;
constructor TVkImageFormatProperties.Create(const aMaxExtent:TVkExtent3D;
const aMaxMipLevels:TVkUInt32;
const aMaxArrayLayers:TVkUInt32;
const aSampleCounts:TVkSampleCountFlags;
const aMaxResourceSize:TVkDeviceSize);
begin
maxExtent:=aMaxExtent;
maxMipLevels:=aMaxMipLevels;
maxArrayLayers:=aMaxArrayLayers;
sampleCounts:=aSampleCounts;
maxResourceSize:=aMaxResourceSize;
end;
constructor TVkDescriptorBufferInfo.Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aRange:TVkDeviceSize);
begin
buffer:=aBuffer;
offset:=aOffset;
range:=aRange;
end;
constructor TVkDescriptorImageInfo.Create(const aSampler:TVkSampler;
const aImageView:TVkImageView;
const aImageLayout:TVkImageLayout);
begin
sampler:=aSampler;
imageView:=aImageView;
imageLayout:=aImageLayout;
end;
constructor TVkWriteDescriptorSet.Create(const aDstSet:TVkDescriptorSet;
const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aPImageInfo:PVkDescriptorImageInfo;
const aPBufferInfo:PVkDescriptorBufferInfo;
const aPTexelBufferView:PVkBufferView);
begin
sType:=VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
pNext:=nil;
dstSet:=aDstSet;
dstBinding:=aDstBinding;
dstArrayElement:=aDstArrayElement;
descriptorCount:=aDescriptorCount;
descriptorType:=aDescriptorType;
pImageInfo:=aPImageInfo;
pBufferInfo:=aPBufferInfo;
pTexelBufferView:=aPTexelBufferView;
end;
constructor TVkCopyDescriptorSet.Create(const aSrcSet:TVkDescriptorSet;
const aSrcBinding:TVkUInt32;
const aSrcArrayElement:TVkUInt32;
const aDstSet:TVkDescriptorSet;
const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
pNext:=nil;
srcSet:=aSrcSet;
srcBinding:=aSrcBinding;
srcArrayElement:=aSrcArrayElement;
dstSet:=aDstSet;
dstBinding:=aDstBinding;
dstArrayElement:=aDstArrayElement;
descriptorCount:=aDescriptorCount;
end;
constructor TVkBufferCreateInfo.Create(const aFlags:TVkBufferCreateFlags;
const aSize:TVkDeviceSize;
const aUsage:TVkBufferUsageFlags;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
size:=aSize;
usage:=aUsage;
sharingMode:=aSharingMode;
queueFamilyIndexCount:=aQueueFamilyIndexCount;
pQueueFamilyIndices:=aPQueueFamilyIndices;
end;
constructor TVkBufferViewCreateInfo.Create(const aFlags:TVkBufferViewCreateFlags;
const aBuffer:TVkBuffer;
const aFormat:TVkFormat;
const aOffset:TVkDeviceSize;
const aRange:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
buffer:=aBuffer;
format:=aFormat;
offset:=aOffset;
range:=aRange;
end;
constructor TVkImageSubresource.Create(const aAspectMask:TVkImageAspectFlags;
const aMipLevel:TVkUInt32;
const aArrayLayer:TVkUInt32);
begin
aspectMask:=aAspectMask;
mipLevel:=aMipLevel;
arrayLayer:=aArrayLayer;
end;
constructor TVkImageSubresourceLayers.Create(const aAspectMask:TVkImageAspectFlags;
const aMipLevel:TVkUInt32;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
begin
aspectMask:=aAspectMask;
mipLevel:=aMipLevel;
baseArrayLayer:=aBaseArrayLayer;
layerCount:=aLayerCount;
end;
constructor TVkImageSubresourceRange.Create(const aAspectMask:TVkImageAspectFlags;
const aBaseMipLevel:TVkUInt32;
const aLevelCount:TVkUInt32;
const aBaseArrayLayer:TVkUInt32;
const aLayerCount:TVkUInt32);
begin
aspectMask:=aAspectMask;
baseMipLevel:=aBaseMipLevel;
levelCount:=aLevelCount;
baseArrayLayer:=aBaseArrayLayer;
layerCount:=aLayerCount;
end;
constructor TVkMemoryBarrier.Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_BARRIER;
pNext:=nil;
srcAccessMask:=aSrcAccessMask;
dstAccessMask:=aDstAccessMask;
end;
constructor TVkBufferMemoryBarrier.Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
pNext:=nil;
srcAccessMask:=aSrcAccessMask;
dstAccessMask:=aDstAccessMask;
srcQueueFamilyIndex:=aSrcQueueFamilyIndex;
dstQueueFamilyIndex:=aDstQueueFamilyIndex;
buffer:=aBuffer;
offset:=aOffset;
size:=aSize;
end;
constructor TVkImageMemoryBarrier.Create(const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aOldLayout:TVkImageLayout;
const aNewLayout:TVkImageLayout;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aImage:TVkImage;
const aSubresourceRange:TVkImageSubresourceRange);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
pNext:=nil;
srcAccessMask:=aSrcAccessMask;
dstAccessMask:=aDstAccessMask;
oldLayout:=aOldLayout;
newLayout:=aNewLayout;
srcQueueFamilyIndex:=aSrcQueueFamilyIndex;
dstQueueFamilyIndex:=aDstQueueFamilyIndex;
image:=aImage;
subresourceRange:=aSubresourceRange;
end;
constructor TVkImageCreateInfo.Create(const aFlags:TVkImageCreateFlags;
const aImageType:TVkImageType;
const aFormat:TVkFormat;
const aExtent:TVkExtent3D;
const aMipLevels:TVkUInt32;
const aArrayLayers:TVkUInt32;
const aSamples:TVkSampleCountFlagBits;
const aTiling:TVkImageTiling;
const aUsage:TVkImageUsageFlags;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32;
const aInitialLayout:TVkImageLayout);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
imageType:=aImageType;
format:=aFormat;
extent:=aExtent;
mipLevels:=aMipLevels;
arrayLayers:=aArrayLayers;
samples:=aSamples;
tiling:=aTiling;
usage:=aUsage;
sharingMode:=aSharingMode;
queueFamilyIndexCount:=aQueueFamilyIndexCount;
pQueueFamilyIndices:=aPQueueFamilyIndices;
initialLayout:=aInitialLayout;
end;
constructor TVkSubresourceLayout.Create(const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aRowPitch:TVkDeviceSize;
const aArrayPitch:TVkDeviceSize;
const aDepthPitch:TVkDeviceSize);
begin
offset:=aOffset;
size:=aSize;
rowPitch:=aRowPitch;
arrayPitch:=aArrayPitch;
depthPitch:=aDepthPitch;
end;
constructor TVkImageViewCreateInfo.Create(const aFlags:TVkImageViewCreateFlags;
const aImage:TVkImage;
const aViewType:TVkImageViewType;
const aFormat:TVkFormat;
const aComponents:TVkComponentMapping;
const aSubresourceRange:TVkImageSubresourceRange);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
image:=aImage;
viewType:=aViewType;
format:=aFormat;
components:=aComponents;
subresourceRange:=aSubresourceRange;
end;
constructor TVkBufferCopy.Create(const aSrcOffset:TVkDeviceSize;
const aDstOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
srcOffset:=aSrcOffset;
dstOffset:=aDstOffset;
size:=aSize;
end;
constructor TVkSparseMemoryBind.Create(const aResourceOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aFlags:TVkSparseMemoryBindFlags);
begin
resourceOffset:=aResourceOffset;
size:=aSize;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
flags:=aFlags;
end;
constructor TVkSparseImageMemoryBind.Create(const aSubresource:TVkImageSubresource;
const aOffset:TVkOffset3D;
const aExtent:TVkExtent3D;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aFlags:TVkSparseMemoryBindFlags);
begin
subresource:=aSubresource;
offset:=aOffset;
extent:=aExtent;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
flags:=aFlags;
end;
constructor TVkSparseBufferMemoryBindInfo.Create(const aBuffer:TVkBuffer;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseMemoryBind);
begin
buffer:=aBuffer;
bindCount:=aBindCount;
pBinds:=aPBinds;
end;
constructor TVkSparseImageOpaqueMemoryBindInfo.Create(const aImage:TVkImage;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseMemoryBind);
begin
image:=aImage;
bindCount:=aBindCount;
pBinds:=aPBinds;
end;
constructor TVkSparseImageMemoryBindInfo.Create(const aImage:TVkImage;
const aBindCount:TVkUInt32;
const aPBinds:PVkSparseImageMemoryBind);
begin
image:=aImage;
bindCount:=aBindCount;
pBinds:=aPBinds;
end;
constructor TVkBindSparseInfo.Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aBufferBindCount:TVkUInt32;
const aPBufferBinds:PVkSparseBufferMemoryBindInfo;
const aImageOpaqueBindCount:TVkUInt32;
const aPImageOpaqueBinds:PVkSparseImageOpaqueMemoryBindInfo;
const aImageBindCount:TVkUInt32;
const aPImageBinds:PVkSparseImageMemoryBindInfo;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphores:PVkSemaphore);
begin
sType:=VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
pNext:=nil;
waitSemaphoreCount:=aWaitSemaphoreCount;
pWaitSemaphores:=aPWaitSemaphores;
bufferBindCount:=aBufferBindCount;
pBufferBinds:=aPBufferBinds;
imageOpaqueBindCount:=aImageOpaqueBindCount;
pImageOpaqueBinds:=aPImageOpaqueBinds;
imageBindCount:=aImageBindCount;
pImageBinds:=aPImageBinds;
signalSemaphoreCount:=aSignalSemaphoreCount;
pSignalSemaphores:=aPSignalSemaphores;
end;
constructor TVkImageCopy.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
begin
srcSubresource:=aSrcSubresource;
srcOffset:=aSrcOffset;
dstSubresource:=aDstSubresource;
dstOffset:=aDstOffset;
extent:=aExtent;
end;
constructor TVkImageBlit.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffsets:array of TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffsets:array of TVkOffset3D);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkImageBlit),#0);
srcSubresource:=aSrcSubresource;
ArrayItemCount:=length(aSrcOffsets);
if ArrayItemCount>length(srcOffsets) then begin
ArrayItemCount:=length(srcOffsets);
end;
if ArrayItemCount>0 then begin
Move(aSrcOffsets[0],srcOffsets[0],ArrayItemCount*SizeOf(TVkOffset3D));
end;
dstSubresource:=aDstSubresource;
ArrayItemCount:=length(aDstOffsets);
if ArrayItemCount>length(dstOffsets) then begin
ArrayItemCount:=length(dstOffsets);
end;
if ArrayItemCount>0 then begin
Move(aDstOffsets[0],dstOffsets[0],ArrayItemCount*SizeOf(TVkOffset3D));
end;
end;
constructor TVkBufferImageCopy.Create(const aBufferOffset:TVkDeviceSize;
const aBufferRowLength:TVkUInt32;
const aBufferImageHeight:TVkUInt32;
const aImageSubresource:TVkImageSubresourceLayers;
const aImageOffset:TVkOffset3D;
const aImageExtent:TVkExtent3D);
begin
bufferOffset:=aBufferOffset;
bufferRowLength:=aBufferRowLength;
bufferImageHeight:=aBufferImageHeight;
imageSubresource:=aImageSubresource;
imageOffset:=aImageOffset;
imageExtent:=aImageExtent;
end;
constructor TVkImageResolve.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
begin
srcSubresource:=aSrcSubresource;
srcOffset:=aSrcOffset;
dstSubresource:=aDstSubresource;
dstOffset:=aDstOffset;
extent:=aExtent;
end;
constructor TVkShaderModuleCreateInfo.Create(const aFlags:TVkShaderModuleCreateFlags;
const aCodeSize:TVkSize;
const aPCode:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
codeSize:=aCodeSize;
pCode:=aPCode;
end;
constructor TVkDescriptorSetLayoutBinding.Create(const aBinding:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aDescriptorCount:TVkUInt32;
const aStageFlags:TVkShaderStageFlags;
const aPImmutableSamplers:PVkSampler);
begin
binding:=aBinding;
descriptorType:=aDescriptorType;
descriptorCount:=aDescriptorCount;
stageFlags:=aStageFlags;
pImmutableSamplers:=aPImmutableSamplers;
end;
constructor TVkDescriptorSetLayoutCreateInfo.Create(const aFlags:TVkDescriptorSetLayoutCreateFlags;
const aBindingCount:TVkUInt32;
const aPBindings:PVkDescriptorSetLayoutBinding);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
bindingCount:=aBindingCount;
pBindings:=aPBindings;
end;
constructor TVkDescriptorPoolSize.Create(const aType_:TVkDescriptorType;
const aDescriptorCount:TVkUInt32);
begin
type_:=aType_;
descriptorCount:=aDescriptorCount;
end;
constructor TVkDescriptorPoolCreateInfo.Create(const aFlags:TVkDescriptorPoolCreateFlags;
const aMaxSets:TVkUInt32;
const aPoolSizeCount:TVkUInt32;
const aPPoolSizes:PVkDescriptorPoolSize);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
maxSets:=aMaxSets;
poolSizeCount:=aPoolSizeCount;
pPoolSizes:=aPPoolSizes;
end;
constructor TVkDescriptorSetAllocateInfo.Create(const aDescriptorPool:TVkDescriptorPool;
const aDescriptorSetCount:TVkUInt32;
const aPSetLayouts:PVkDescriptorSetLayout);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
pNext:=nil;
descriptorPool:=aDescriptorPool;
descriptorSetCount:=aDescriptorSetCount;
pSetLayouts:=aPSetLayouts;
end;
constructor TVkSpecializationMapEntry.Create(const aConstantID:TVkUInt32;
const aOffset:TVkUInt32;
const aSize:TVkSize);
begin
constantID:=aConstantID;
offset:=aOffset;
size:=aSize;
end;
constructor TVkSpecializationInfo.Create(const aMapEntryCount:TVkUInt32;
const aPMapEntries:PVkSpecializationMapEntry;
const aDataSize:TVkSize;
const aPData:PVkVoid);
begin
mapEntryCount:=aMapEntryCount;
pMapEntries:=aPMapEntries;
dataSize:=aDataSize;
pData:=aPData;
end;
constructor TVkPipelineShaderStageCreateInfo.Create(const aFlags:TVkPipelineShaderStageCreateFlags;
const aStage:TVkShaderStageFlagBits;
const aModule:TVkShaderModule;
const aPName:PVkChar;
const aPSpecializationInfo:PVkSpecializationInfo);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
stage:=aStage;
module:=aModule;
pName:=aPName;
pSpecializationInfo:=aPSpecializationInfo;
end;
constructor TVkComputePipelineCreateInfo.Create(const aFlags:TVkPipelineCreateFlags;
const aStage:TVkPipelineShaderStageCreateInfo;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
stage:=aStage;
layout:=aLayout;
basePipelineHandle:=aBasePipelineHandle;
basePipelineIndex:=aBasePipelineIndex;
end;
constructor TVkVertexInputBindingDescription.Create(const aBinding:TVkUInt32;
const aStride:TVkUInt32;
const aInputRate:TVkVertexInputRate);
begin
binding:=aBinding;
stride:=aStride;
inputRate:=aInputRate;
end;
constructor TVkVertexInputAttributeDescription.Create(const aLocation:TVkUInt32;
const aBinding:TVkUInt32;
const aFormat:TVkFormat;
const aOffset:TVkUInt32);
begin
location:=aLocation;
binding:=aBinding;
format:=aFormat;
offset:=aOffset;
end;
constructor TVkPipelineVertexInputStateCreateInfo.Create(const aFlags:TVkPipelineVertexInputStateCreateFlags;
const aVertexBindingDescriptionCount:TVkUInt32;
const aPVertexBindingDescriptions:PVkVertexInputBindingDescription;
const aVertexAttributeDescriptionCount:TVkUInt32;
const aPVertexAttributeDescriptions:PVkVertexInputAttributeDescription);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
vertexBindingDescriptionCount:=aVertexBindingDescriptionCount;
pVertexBindingDescriptions:=aPVertexBindingDescriptions;
vertexAttributeDescriptionCount:=aVertexAttributeDescriptionCount;
pVertexAttributeDescriptions:=aPVertexAttributeDescriptions;
end;
constructor TVkPipelineInputAssemblyStateCreateInfo.Create(const aFlags:TVkPipelineInputAssemblyStateCreateFlags;
const aTopology:TVkPrimitiveTopology;
const aPrimitiveRestartEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
topology:=aTopology;
primitiveRestartEnable:=aPrimitiveRestartEnable;
end;
constructor TVkPipelineTessellationStateCreateInfo.Create(const aFlags:TVkPipelineTessellationStateCreateFlags;
const aPatchControlPoints:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
patchControlPoints:=aPatchControlPoints;
end;
constructor TVkPipelineViewportStateCreateInfo.Create(const aFlags:TVkPipelineViewportStateCreateFlags;
const aViewportCount:TVkUInt32;
const aPViewports:PVkViewport;
const aScissorCount:TVkUInt32;
const aPScissors:PVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
viewportCount:=aViewportCount;
pViewports:=aPViewports;
scissorCount:=aScissorCount;
pScissors:=aPScissors;
end;
constructor TVkPipelineRasterizationStateCreateInfo.Create(const aFlags:TVkPipelineRasterizationStateCreateFlags;
const aDepthClampEnable:TVkBool32;
const aRasterizerDiscardEnable:TVkBool32;
const aPolygonMode:TVkPolygonMode;
const aCullMode:TVkCullModeFlags;
const aFrontFace:TVkFrontFace;
const aDepthBiasEnable:TVkBool32;
const aDepthBiasConstantFactor:TVkFloat;
const aDepthBiasClamp:TVkFloat;
const aDepthBiasSlopeFactor:TVkFloat;
const aLineWidth:TVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
depthClampEnable:=aDepthClampEnable;
rasterizerDiscardEnable:=aRasterizerDiscardEnable;
polygonMode:=aPolygonMode;
cullMode:=aCullMode;
frontFace:=aFrontFace;
depthBiasEnable:=aDepthBiasEnable;
depthBiasConstantFactor:=aDepthBiasConstantFactor;
depthBiasClamp:=aDepthBiasClamp;
depthBiasSlopeFactor:=aDepthBiasSlopeFactor;
lineWidth:=aLineWidth;
end;
constructor TVkPipelineMultisampleStateCreateInfo.Create(const aFlags:TVkPipelineMultisampleStateCreateFlags;
const aRasterizationSamples:TVkSampleCountFlagBits;
const aSampleShadingEnable:TVkBool32;
const aMinSampleShading:TVkFloat;
const aPSampleMask:PVkSampleMask;
const aAlphaToCoverageEnable:TVkBool32;
const aAlphaToOneEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
rasterizationSamples:=aRasterizationSamples;
sampleShadingEnable:=aSampleShadingEnable;
minSampleShading:=aMinSampleShading;
pSampleMask:=aPSampleMask;
alphaToCoverageEnable:=aAlphaToCoverageEnable;
alphaToOneEnable:=aAlphaToOneEnable;
end;
constructor TVkPipelineColorBlendAttachmentState.Create(const aBlendEnable:TVkBool32;
const aSrcColorBlendFactor:TVkBlendFactor;
const aDstColorBlendFactor:TVkBlendFactor;
const aColorBlendOp:TVkBlendOp;
const aSrcAlphaBlendFactor:TVkBlendFactor;
const aDstAlphaBlendFactor:TVkBlendFactor;
const aAlphaBlendOp:TVkBlendOp;
const aColorWriteMask:TVkColorComponentFlags);
begin
blendEnable:=aBlendEnable;
srcColorBlendFactor:=aSrcColorBlendFactor;
dstColorBlendFactor:=aDstColorBlendFactor;
colorBlendOp:=aColorBlendOp;
srcAlphaBlendFactor:=aSrcAlphaBlendFactor;
dstAlphaBlendFactor:=aDstAlphaBlendFactor;
alphaBlendOp:=aAlphaBlendOp;
colorWriteMask:=aColorWriteMask;
end;
constructor TVkPipelineColorBlendStateCreateInfo.Create(const aFlags:TVkPipelineColorBlendStateCreateFlags;
const aLogicOpEnable:TVkBool32;
const aLogicOp:TVkLogicOp;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkPipelineColorBlendAttachmentState;
const aBlendConstants:array of TVkFloat);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineColorBlendStateCreateInfo),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
logicOpEnable:=aLogicOpEnable;
logicOp:=aLogicOp;
attachmentCount:=aAttachmentCount;
pAttachments:=aPAttachments;
ArrayItemCount:=length(aBlendConstants);
if ArrayItemCount>length(blendConstants) then begin
ArrayItemCount:=length(blendConstants);
end;
if ArrayItemCount>0 then begin
Move(aBlendConstants[0],blendConstants[0],ArrayItemCount*SizeOf(TVkFloat));
end;
end;
constructor TVkPipelineDynamicStateCreateInfo.Create(const aFlags:TVkPipelineDynamicStateCreateFlags;
const aDynamicStateCount:TVkUInt32;
const aPDynamicStates:PVkDynamicState);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
dynamicStateCount:=aDynamicStateCount;
pDynamicStates:=aPDynamicStates;
end;
constructor TVkStencilOpState.Create(const aFailOp:TVkStencilOp;
const aPassOp:TVkStencilOp;
const aDepthFailOp:TVkStencilOp;
const aCompareOp:TVkCompareOp;
const aCompareMask:TVkUInt32;
const aWriteMask:TVkUInt32;
const aReference:TVkUInt32);
begin
failOp:=aFailOp;
passOp:=aPassOp;
depthFailOp:=aDepthFailOp;
compareOp:=aCompareOp;
compareMask:=aCompareMask;
writeMask:=aWriteMask;
reference:=aReference;
end;
constructor TVkPipelineDepthStencilStateCreateInfo.Create(const aFlags:TVkPipelineDepthStencilStateCreateFlags;
const aDepthTestEnable:TVkBool32;
const aDepthWriteEnable:TVkBool32;
const aDepthCompareOp:TVkCompareOp;
const aDepthBoundsTestEnable:TVkBool32;
const aStencilTestEnable:TVkBool32;
const aFront:TVkStencilOpState;
const aBack:TVkStencilOpState;
const aMinDepthBounds:TVkFloat;
const aMaxDepthBounds:TVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
depthTestEnable:=aDepthTestEnable;
depthWriteEnable:=aDepthWriteEnable;
depthCompareOp:=aDepthCompareOp;
depthBoundsTestEnable:=aDepthBoundsTestEnable;
stencilTestEnable:=aStencilTestEnable;
front:=aFront;
back:=aBack;
minDepthBounds:=aMinDepthBounds;
maxDepthBounds:=aMaxDepthBounds;
end;
constructor TVkGraphicsPipelineCreateInfo.Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aPVertexInputState:PVkPipelineVertexInputStateCreateInfo;
const aPInputAssemblyState:PVkPipelineInputAssemblyStateCreateInfo;
const aPTessellationState:PVkPipelineTessellationStateCreateInfo;
const aPViewportState:PVkPipelineViewportStateCreateInfo;
const aPRasterizationState:PVkPipelineRasterizationStateCreateInfo;
const aPMultisampleState:PVkPipelineMultisampleStateCreateInfo;
const aPDepthStencilState:PVkPipelineDepthStencilStateCreateInfo;
const aPColorBlendState:PVkPipelineColorBlendStateCreateInfo;
const aPDynamicState:PVkPipelineDynamicStateCreateInfo;
const aLayout:TVkPipelineLayout;
const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
stageCount:=aStageCount;
pStages:=aPStages;
pVertexInputState:=aPVertexInputState;
pInputAssemblyState:=aPInputAssemblyState;
pTessellationState:=aPTessellationState;
pViewportState:=aPViewportState;
pRasterizationState:=aPRasterizationState;
pMultisampleState:=aPMultisampleState;
pDepthStencilState:=aPDepthStencilState;
pColorBlendState:=aPColorBlendState;
pDynamicState:=aPDynamicState;
layout:=aLayout;
renderPass:=aRenderPass;
subpass:=aSubpass;
basePipelineHandle:=aBasePipelineHandle;
basePipelineIndex:=aBasePipelineIndex;
end;
constructor TVkPipelineCacheCreateInfo.Create(const aFlags:TVkPipelineCacheCreateFlags;
const aInitialDataSize:TVkSize;
const aPInitialData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
initialDataSize:=aInitialDataSize;
pInitialData:=aPInitialData;
end;
constructor TVkPipelineCacheHeaderVersionOne.Create(const aHeaderSize:TVkUInt32;
const aHeaderVersion:TVkPipelineCacheHeaderVersion;
const aVendorID:TVkUInt32;
const aDeviceID:TVkUInt32;
const aPipelineCacheUUID:array of TVkUInt8);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineCacheHeaderVersionOne),#0);
headerSize:=aHeaderSize;
headerVersion:=aHeaderVersion;
vendorID:=aVendorID;
deviceID:=aDeviceID;
ArrayItemCount:=length(aPipelineCacheUUID);
if ArrayItemCount>length(pipelineCacheUUID) then begin
ArrayItemCount:=length(pipelineCacheUUID);
end;
if ArrayItemCount>0 then begin
Move(aPipelineCacheUUID[0],pipelineCacheUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
end;
constructor TVkPushConstantRange.Create(const aStageFlags:TVkShaderStageFlags;
const aOffset:TVkUInt32;
const aSize:TVkUInt32);
begin
stageFlags:=aStageFlags;
offset:=aOffset;
size:=aSize;
end;
constructor TVkPipelineLayoutCreateInfo.Create(const aFlags:TVkPipelineLayoutCreateFlags;
const aSetLayoutCount:TVkUInt32;
const aPSetLayouts:PVkDescriptorSetLayout;
const aPushConstantRangeCount:TVkUInt32;
const aPPushConstantRanges:PVkPushConstantRange);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
setLayoutCount:=aSetLayoutCount;
pSetLayouts:=aPSetLayouts;
pushConstantRangeCount:=aPushConstantRangeCount;
pPushConstantRanges:=aPPushConstantRanges;
end;
constructor TVkSamplerCreateInfo.Create(const aFlags:TVkSamplerCreateFlags;
const aMagFilter:TVkFilter;
const aMinFilter:TVkFilter;
const aMipmapMode:TVkSamplerMipmapMode;
const aAddressModeU:TVkSamplerAddressMode;
const aAddressModeV:TVkSamplerAddressMode;
const aAddressModeW:TVkSamplerAddressMode;
const aMipLodBias:TVkFloat;
const aAnisotropyEnable:TVkBool32;
const aMaxAnisotropy:TVkFloat;
const aCompareEnable:TVkBool32;
const aCompareOp:TVkCompareOp;
const aMinLod:TVkFloat;
const aMaxLod:TVkFloat;
const aBorderColor:TVkBorderColor;
const aUnnormalizedCoordinates:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
magFilter:=aMagFilter;
minFilter:=aMinFilter;
mipmapMode:=aMipmapMode;
addressModeU:=aAddressModeU;
addressModeV:=aAddressModeV;
addressModeW:=aAddressModeW;
mipLodBias:=aMipLodBias;
anisotropyEnable:=aAnisotropyEnable;
maxAnisotropy:=aMaxAnisotropy;
compareEnable:=aCompareEnable;
compareOp:=aCompareOp;
minLod:=aMinLod;
maxLod:=aMaxLod;
borderColor:=aBorderColor;
unnormalizedCoordinates:=aUnnormalizedCoordinates;
end;
constructor TVkCommandPoolCreateInfo.Create(const aFlags:TVkCommandPoolCreateFlags;
const aQueueFamilyIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
queueFamilyIndex:=aQueueFamilyIndex;
end;
constructor TVkCommandBufferAllocateInfo.Create(const aCommandPool:TVkCommandPool;
const aLevel:TVkCommandBufferLevel;
const aCommandBufferCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
pNext:=nil;
commandPool:=aCommandPool;
level:=aLevel;
commandBufferCount:=aCommandBufferCount;
end;
constructor TVkCommandBufferInheritanceInfo.Create(const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32;
const aFramebuffer:TVkFramebuffer;
const aOcclusionQueryEnable:TVkBool32;
const aQueryFlags:TVkQueryControlFlags;
const aPipelineStatistics:TVkQueryPipelineStatisticFlags);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
pNext:=nil;
renderPass:=aRenderPass;
subpass:=aSubpass;
framebuffer:=aFramebuffer;
occlusionQueryEnable:=aOcclusionQueryEnable;
queryFlags:=aQueryFlags;
pipelineStatistics:=aPipelineStatistics;
end;
constructor TVkCommandBufferBeginInfo.Create(const aFlags:TVkCommandBufferUsageFlags;
const aPInheritanceInfo:PVkCommandBufferInheritanceInfo);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
pNext:=nil;
flags:=aFlags;
pInheritanceInfo:=aPInheritanceInfo;
end;
constructor TVkClearDepthStencilValue.Create(const aDepth:TVkFloat;
const aStencil:TVkUInt32);
begin
depth:=aDepth;
stencil:=aStencil;
end;
constructor TVkRenderPassBeginInfo.Create(const aRenderPass:TVkRenderPass;
const aFramebuffer:TVkFramebuffer;
const aRenderArea:TVkRect2D;
const aClearValueCount:TVkUInt32;
const aPClearValues:PVkClearValue);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
pNext:=nil;
renderPass:=aRenderPass;
framebuffer:=aFramebuffer;
renderArea:=aRenderArea;
clearValueCount:=aClearValueCount;
pClearValues:=aPClearValues;
end;
constructor TVkClearAttachment.Create(const aAspectMask:TVkImageAspectFlags;
const aColorAttachment:TVkUInt32;
const aClearValue:TVkClearValue);
begin
aspectMask:=aAspectMask;
colorAttachment:=aColorAttachment;
clearValue:=aClearValue;
end;
constructor TVkAttachmentDescription.Create(const aFlags:TVkAttachmentDescriptionFlags;
const aFormat:TVkFormat;
const aSamples:TVkSampleCountFlagBits;
const aLoadOp:TVkAttachmentLoadOp;
const aStoreOp:TVkAttachmentStoreOp;
const aStencilLoadOp:TVkAttachmentLoadOp;
const aStencilStoreOp:TVkAttachmentStoreOp;
const aInitialLayout:TVkImageLayout;
const aFinalLayout:TVkImageLayout);
begin
flags:=aFlags;
format:=aFormat;
samples:=aSamples;
loadOp:=aLoadOp;
storeOp:=aStoreOp;
stencilLoadOp:=aStencilLoadOp;
stencilStoreOp:=aStencilStoreOp;
initialLayout:=aInitialLayout;
finalLayout:=aFinalLayout;
end;
constructor TVkAttachmentReference.Create(const aAttachment:TVkUInt32;
const aLayout:TVkImageLayout);
begin
attachment:=aAttachment;
layout:=aLayout;
end;
constructor TVkSubpassDescription.Create(const aFlags:TVkSubpassDescriptionFlags;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aInputAttachmentCount:TVkUInt32;
const aPInputAttachments:PVkAttachmentReference;
const aColorAttachmentCount:TVkUInt32;
const aPColorAttachments:PVkAttachmentReference;
const aPResolveAttachments:PVkAttachmentReference;
const aPDepthStencilAttachment:PVkAttachmentReference;
const aPreserveAttachmentCount:TVkUInt32;
const aPPreserveAttachments:PVkUInt32);
begin
flags:=aFlags;
pipelineBindPoint:=aPipelineBindPoint;
inputAttachmentCount:=aInputAttachmentCount;
pInputAttachments:=aPInputAttachments;
colorAttachmentCount:=aColorAttachmentCount;
pColorAttachments:=aPColorAttachments;
pResolveAttachments:=aPResolveAttachments;
pDepthStencilAttachment:=aPDepthStencilAttachment;
preserveAttachmentCount:=aPreserveAttachmentCount;
pPreserveAttachments:=aPPreserveAttachments;
end;
constructor TVkSubpassDependency.Create(const aSrcSubpass:TVkUInt32;
const aDstSubpass:TVkUInt32;
const aSrcStageMask:TVkPipelineStageFlags;
const aDstStageMask:TVkPipelineStageFlags;
const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aDependencyFlags:TVkDependencyFlags);
begin
srcSubpass:=aSrcSubpass;
dstSubpass:=aDstSubpass;
srcStageMask:=aSrcStageMask;
dstStageMask:=aDstStageMask;
srcAccessMask:=aSrcAccessMask;
dstAccessMask:=aDstAccessMask;
dependencyFlags:=aDependencyFlags;
end;
constructor TVkRenderPassCreateInfo.Create(const aFlags:TVkRenderPassCreateFlags;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkAttachmentDescription;
const aSubpassCount:TVkUInt32;
const aPSubpasses:PVkSubpassDescription;
const aDependencyCount:TVkUInt32;
const aPDependencies:PVkSubpassDependency);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
attachmentCount:=aAttachmentCount;
pAttachments:=aPAttachments;
subpassCount:=aSubpassCount;
pSubpasses:=aPSubpasses;
dependencyCount:=aDependencyCount;
pDependencies:=aPDependencies;
end;
constructor TVkEventCreateInfo.Create(const aFlags:TVkEventCreateFlags);
begin
sType:=VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkFenceCreateInfo.Create(const aFlags:TVkFenceCreateFlags);
begin
sType:=VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkDeviceCreateInfo.Create(const aFlags:TVkDeviceCreateFlags;
const aQueueCreateInfoCount:TVkUInt32;
const aPQueueCreateInfos:PVkDeviceQueueCreateInfo;
const aEnabledLayerCount:TVkUInt32;
const aPpEnabledLayerNames:PPVkChar;
const aEnabledExtensionCount:TVkUInt32;
const aPpEnabledExtensionNames:PPVkChar;
const aPEnabledFeatures:PVkPhysicalDeviceFeatures);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
queueCreateInfoCount:=aQueueCreateInfoCount;
pQueueCreateInfos:=aPQueueCreateInfos;
enabledLayerCount:=aEnabledLayerCount;
ppEnabledLayerNames:=aPpEnabledLayerNames;
enabledExtensionCount:=aEnabledExtensionCount;
ppEnabledExtensionNames:=aPpEnabledExtensionNames;
pEnabledFeatures:=aPEnabledFeatures;
end;
constructor TVkPhysicalDeviceLimits.Create(const aMaxImageDimension1D:TVkUInt32;
const aMaxImageDimension2D:TVkUInt32;
const aMaxImageDimension3D:TVkUInt32;
const aMaxImageDimensionCube:TVkUInt32;
const aMaxImageArrayLayers:TVkUInt32;
const aMaxTexelBufferElements:TVkUInt32;
const aMaxUniformBufferRange:TVkUInt32;
const aMaxStorageBufferRange:TVkUInt32;
const aMaxPushConstantsSize:TVkUInt32;
const aMaxMemoryAllocationCount:TVkUInt32;
const aMaxSamplerAllocationCount:TVkUInt32;
const aBufferImageGranularity:TVkDeviceSize;
const aSparseAddressSpaceSize:TVkDeviceSize;
const aMaxBoundDescriptorSets:TVkUInt32;
const aMaxPerStageDescriptorSamplers:TVkUInt32;
const aMaxPerStageDescriptorUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorSampledImages:TVkUInt32;
const aMaxPerStageDescriptorStorageImages:TVkUInt32;
const aMaxPerStageDescriptorInputAttachments:TVkUInt32;
const aMaxPerStageResources:TVkUInt32;
const aMaxDescriptorSetSamplers:TVkUInt32;
const aMaxDescriptorSetUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetStorageBuffers:TVkUInt32;
const aMaxDescriptorSetStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetSampledImages:TVkUInt32;
const aMaxDescriptorSetStorageImages:TVkUInt32;
const aMaxDescriptorSetInputAttachments:TVkUInt32;
const aMaxVertexInputAttributes:TVkUInt32;
const aMaxVertexInputBindings:TVkUInt32;
const aMaxVertexInputAttributeOffset:TVkUInt32;
const aMaxVertexInputBindingStride:TVkUInt32;
const aMaxVertexOutputComponents:TVkUInt32;
const aMaxTessellationGenerationLevel:TVkUInt32;
const aMaxTessellationPatchSize:TVkUInt32;
const aMaxTessellationControlPerVertexInputComponents:TVkUInt32;
const aMaxTessellationControlPerVertexOutputComponents:TVkUInt32;
const aMaxTessellationControlPerPatchOutputComponents:TVkUInt32;
const aMaxTessellationControlTotalOutputComponents:TVkUInt32;
const aMaxTessellationEvaluationInputComponents:TVkUInt32;
const aMaxTessellationEvaluationOutputComponents:TVkUInt32;
const aMaxGeometryShaderInvocations:TVkUInt32;
const aMaxGeometryInputComponents:TVkUInt32;
const aMaxGeometryOutputComponents:TVkUInt32;
const aMaxGeometryOutputVertices:TVkUInt32;
const aMaxGeometryTotalOutputComponents:TVkUInt32;
const aMaxFragmentInputComponents:TVkUInt32;
const aMaxFragmentOutputAttachments:TVkUInt32;
const aMaxFragmentDualSrcAttachments:TVkUInt32;
const aMaxFragmentCombinedOutputResources:TVkUInt32;
const aMaxComputeSharedMemorySize:TVkUInt32;
const aMaxComputeWorkGroupCount:array of TVkUInt32;
const aMaxComputeWorkGroupInvocations:TVkUInt32;
const aMaxComputeWorkGroupSize:array of TVkUInt32;
const aSubPixelPrecisionBits:TVkUInt32;
const aSubTexelPrecisionBits:TVkUInt32;
const aMipmapPrecisionBits:TVkUInt32;
const aMaxDrawIndexedIndexValue:TVkUInt32;
const aMaxDrawIndirectCount:TVkUInt32;
const aMaxSamplerLodBias:TVkFloat;
const aMaxSamplerAnisotropy:TVkFloat;
const aMaxViewports:TVkUInt32;
const aMaxViewportDimensions:array of TVkUInt32;
const aViewportBoundsRange:array of TVkFloat;
const aViewportSubPixelBits:TVkUInt32;
const aMinMemoryMapAlignment:TVkSize;
const aMinTexelBufferOffsetAlignment:TVkDeviceSize;
const aMinUniformBufferOffsetAlignment:TVkDeviceSize;
const aMinStorageBufferOffsetAlignment:TVkDeviceSize;
const aMinTexelOffset:TVkInt32;
const aMaxTexelOffset:TVkUInt32;
const aMinTexelGatherOffset:TVkInt32;
const aMaxTexelGatherOffset:TVkUInt32;
const aMinInterpolationOffset:TVkFloat;
const aMaxInterpolationOffset:TVkFloat;
const aSubPixelInterpolationOffsetBits:TVkUInt32;
const aMaxFramebufferWidth:TVkUInt32;
const aMaxFramebufferHeight:TVkUInt32;
const aMaxFramebufferLayers:TVkUInt32;
const aFramebufferColorSampleCounts:TVkSampleCountFlags;
const aFramebufferDepthSampleCounts:TVkSampleCountFlags;
const aFramebufferStencilSampleCounts:TVkSampleCountFlags;
const aFramebufferNoAttachmentsSampleCounts:TVkSampleCountFlags;
const aMaxColorAttachments:TVkUInt32;
const aSampledImageColorSampleCounts:TVkSampleCountFlags;
const aSampledImageIntegerSampleCounts:TVkSampleCountFlags;
const aSampledImageDepthSampleCounts:TVkSampleCountFlags;
const aSampledImageStencilSampleCounts:TVkSampleCountFlags;
const aStorageImageSampleCounts:TVkSampleCountFlags;
const aMaxSampleMaskWords:TVkUInt32;
const aTimestampComputeAndGraphics:TVkBool32;
const aTimestampPeriod:TVkFloat;
const aMaxClipDistances:TVkUInt32;
const aMaxCullDistances:TVkUInt32;
const aMaxCombinedClipAndCullDistances:TVkUInt32;
const aDiscreteQueuePriorities:TVkUInt32;
const aPointSizeRange:array of TVkFloat;
const aLineWidthRange:array of TVkFloat;
const aPointSizeGranularity:TVkFloat;
const aLineWidthGranularity:TVkFloat;
const aStrictLines:TVkBool32;
const aStandardSampleLocations:TVkBool32;
const aOptimalBufferCopyOffsetAlignment:TVkDeviceSize;
const aOptimalBufferCopyRowPitchAlignment:TVkDeviceSize;
const aNonCoherentAtomSize:TVkDeviceSize);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceLimits),#0);
maxImageDimension1D:=aMaxImageDimension1D;
maxImageDimension2D:=aMaxImageDimension2D;
maxImageDimension3D:=aMaxImageDimension3D;
maxImageDimensionCube:=aMaxImageDimensionCube;
maxImageArrayLayers:=aMaxImageArrayLayers;
maxTexelBufferElements:=aMaxTexelBufferElements;
maxUniformBufferRange:=aMaxUniformBufferRange;
maxStorageBufferRange:=aMaxStorageBufferRange;
maxPushConstantsSize:=aMaxPushConstantsSize;
maxMemoryAllocationCount:=aMaxMemoryAllocationCount;
maxSamplerAllocationCount:=aMaxSamplerAllocationCount;
bufferImageGranularity:=aBufferImageGranularity;
sparseAddressSpaceSize:=aSparseAddressSpaceSize;
maxBoundDescriptorSets:=aMaxBoundDescriptorSets;
maxPerStageDescriptorSamplers:=aMaxPerStageDescriptorSamplers;
maxPerStageDescriptorUniformBuffers:=aMaxPerStageDescriptorUniformBuffers;
maxPerStageDescriptorStorageBuffers:=aMaxPerStageDescriptorStorageBuffers;
maxPerStageDescriptorSampledImages:=aMaxPerStageDescriptorSampledImages;
maxPerStageDescriptorStorageImages:=aMaxPerStageDescriptorStorageImages;
maxPerStageDescriptorInputAttachments:=aMaxPerStageDescriptorInputAttachments;
maxPerStageResources:=aMaxPerStageResources;
maxDescriptorSetSamplers:=aMaxDescriptorSetSamplers;
maxDescriptorSetUniformBuffers:=aMaxDescriptorSetUniformBuffers;
maxDescriptorSetUniformBuffersDynamic:=aMaxDescriptorSetUniformBuffersDynamic;
maxDescriptorSetStorageBuffers:=aMaxDescriptorSetStorageBuffers;
maxDescriptorSetStorageBuffersDynamic:=aMaxDescriptorSetStorageBuffersDynamic;
maxDescriptorSetSampledImages:=aMaxDescriptorSetSampledImages;
maxDescriptorSetStorageImages:=aMaxDescriptorSetStorageImages;
maxDescriptorSetInputAttachments:=aMaxDescriptorSetInputAttachments;
maxVertexInputAttributes:=aMaxVertexInputAttributes;
maxVertexInputBindings:=aMaxVertexInputBindings;
maxVertexInputAttributeOffset:=aMaxVertexInputAttributeOffset;
maxVertexInputBindingStride:=aMaxVertexInputBindingStride;
maxVertexOutputComponents:=aMaxVertexOutputComponents;
maxTessellationGenerationLevel:=aMaxTessellationGenerationLevel;
maxTessellationPatchSize:=aMaxTessellationPatchSize;
maxTessellationControlPerVertexInputComponents:=aMaxTessellationControlPerVertexInputComponents;
maxTessellationControlPerVertexOutputComponents:=aMaxTessellationControlPerVertexOutputComponents;
maxTessellationControlPerPatchOutputComponents:=aMaxTessellationControlPerPatchOutputComponents;
maxTessellationControlTotalOutputComponents:=aMaxTessellationControlTotalOutputComponents;
maxTessellationEvaluationInputComponents:=aMaxTessellationEvaluationInputComponents;
maxTessellationEvaluationOutputComponents:=aMaxTessellationEvaluationOutputComponents;
maxGeometryShaderInvocations:=aMaxGeometryShaderInvocations;
maxGeometryInputComponents:=aMaxGeometryInputComponents;
maxGeometryOutputComponents:=aMaxGeometryOutputComponents;
maxGeometryOutputVertices:=aMaxGeometryOutputVertices;
maxGeometryTotalOutputComponents:=aMaxGeometryTotalOutputComponents;
maxFragmentInputComponents:=aMaxFragmentInputComponents;
maxFragmentOutputAttachments:=aMaxFragmentOutputAttachments;
maxFragmentDualSrcAttachments:=aMaxFragmentDualSrcAttachments;
maxFragmentCombinedOutputResources:=aMaxFragmentCombinedOutputResources;
maxComputeSharedMemorySize:=aMaxComputeSharedMemorySize;
ArrayItemCount:=length(aMaxComputeWorkGroupCount);
if ArrayItemCount>length(maxComputeWorkGroupCount) then begin
ArrayItemCount:=length(maxComputeWorkGroupCount);
end;
if ArrayItemCount>0 then begin
Move(aMaxComputeWorkGroupCount[0],maxComputeWorkGroupCount[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
maxComputeWorkGroupInvocations:=aMaxComputeWorkGroupInvocations;
ArrayItemCount:=length(aMaxComputeWorkGroupSize);
if ArrayItemCount>length(maxComputeWorkGroupSize) then begin
ArrayItemCount:=length(maxComputeWorkGroupSize);
end;
if ArrayItemCount>0 then begin
Move(aMaxComputeWorkGroupSize[0],maxComputeWorkGroupSize[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
subPixelPrecisionBits:=aSubPixelPrecisionBits;
subTexelPrecisionBits:=aSubTexelPrecisionBits;
mipmapPrecisionBits:=aMipmapPrecisionBits;
maxDrawIndexedIndexValue:=aMaxDrawIndexedIndexValue;
maxDrawIndirectCount:=aMaxDrawIndirectCount;
maxSamplerLodBias:=aMaxSamplerLodBias;
maxSamplerAnisotropy:=aMaxSamplerAnisotropy;
maxViewports:=aMaxViewports;
ArrayItemCount:=length(aMaxViewportDimensions);
if ArrayItemCount>length(maxViewportDimensions) then begin
ArrayItemCount:=length(maxViewportDimensions);
end;
if ArrayItemCount>0 then begin
Move(aMaxViewportDimensions[0],maxViewportDimensions[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
ArrayItemCount:=length(aViewportBoundsRange);
if ArrayItemCount>length(viewportBoundsRange) then begin
ArrayItemCount:=length(viewportBoundsRange);
end;
if ArrayItemCount>0 then begin
Move(aViewportBoundsRange[0],viewportBoundsRange[0],ArrayItemCount*SizeOf(TVkFloat));
end;
viewportSubPixelBits:=aViewportSubPixelBits;
minMemoryMapAlignment:=aMinMemoryMapAlignment;
minTexelBufferOffsetAlignment:=aMinTexelBufferOffsetAlignment;
minUniformBufferOffsetAlignment:=aMinUniformBufferOffsetAlignment;
minStorageBufferOffsetAlignment:=aMinStorageBufferOffsetAlignment;
minTexelOffset:=aMinTexelOffset;
maxTexelOffset:=aMaxTexelOffset;
minTexelGatherOffset:=aMinTexelGatherOffset;
maxTexelGatherOffset:=aMaxTexelGatherOffset;
minInterpolationOffset:=aMinInterpolationOffset;
maxInterpolationOffset:=aMaxInterpolationOffset;
subPixelInterpolationOffsetBits:=aSubPixelInterpolationOffsetBits;
maxFramebufferWidth:=aMaxFramebufferWidth;
maxFramebufferHeight:=aMaxFramebufferHeight;
maxFramebufferLayers:=aMaxFramebufferLayers;
framebufferColorSampleCounts:=aFramebufferColorSampleCounts;
framebufferDepthSampleCounts:=aFramebufferDepthSampleCounts;
framebufferStencilSampleCounts:=aFramebufferStencilSampleCounts;
framebufferNoAttachmentsSampleCounts:=aFramebufferNoAttachmentsSampleCounts;
maxColorAttachments:=aMaxColorAttachments;
sampledImageColorSampleCounts:=aSampledImageColorSampleCounts;
sampledImageIntegerSampleCounts:=aSampledImageIntegerSampleCounts;
sampledImageDepthSampleCounts:=aSampledImageDepthSampleCounts;
sampledImageStencilSampleCounts:=aSampledImageStencilSampleCounts;
storageImageSampleCounts:=aStorageImageSampleCounts;
maxSampleMaskWords:=aMaxSampleMaskWords;
timestampComputeAndGraphics:=aTimestampComputeAndGraphics;
timestampPeriod:=aTimestampPeriod;
maxClipDistances:=aMaxClipDistances;
maxCullDistances:=aMaxCullDistances;
maxCombinedClipAndCullDistances:=aMaxCombinedClipAndCullDistances;
discreteQueuePriorities:=aDiscreteQueuePriorities;
ArrayItemCount:=length(aPointSizeRange);
if ArrayItemCount>length(pointSizeRange) then begin
ArrayItemCount:=length(pointSizeRange);
end;
if ArrayItemCount>0 then begin
Move(aPointSizeRange[0],pointSizeRange[0],ArrayItemCount*SizeOf(TVkFloat));
end;
ArrayItemCount:=length(aLineWidthRange);
if ArrayItemCount>length(lineWidthRange) then begin
ArrayItemCount:=length(lineWidthRange);
end;
if ArrayItemCount>0 then begin
Move(aLineWidthRange[0],lineWidthRange[0],ArrayItemCount*SizeOf(TVkFloat));
end;
pointSizeGranularity:=aPointSizeGranularity;
lineWidthGranularity:=aLineWidthGranularity;
strictLines:=aStrictLines;
standardSampleLocations:=aStandardSampleLocations;
optimalBufferCopyOffsetAlignment:=aOptimalBufferCopyOffsetAlignment;
optimalBufferCopyRowPitchAlignment:=aOptimalBufferCopyRowPitchAlignment;
nonCoherentAtomSize:=aNonCoherentAtomSize;
end;
constructor TVkPhysicalDeviceProperties.Create(const aApiVersion:TVkUInt32;
const aDriverVersion:TVkUInt32;
const aVendorID:TVkUInt32;
const aDeviceID:TVkUInt32;
const aDeviceType:TVkPhysicalDeviceType;
const aDeviceName:TVkCharString;
const aPipelineCacheUUID:array of TVkUInt8;
const aLimits:TVkPhysicalDeviceLimits;
const aSparseProperties:TVkPhysicalDeviceSparseProperties);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceProperties),#0);
apiVersion:=aApiVersion;
driverVersion:=aDriverVersion;
vendorID:=aVendorID;
deviceID:=aDeviceID;
deviceType:=aDeviceType;
ArrayItemCount:=length(aDeviceName);
if ArrayItemCount>length(deviceName) then begin
ArrayItemCount:=length(deviceName);
end;
if ArrayItemCount>0 then begin
Move(aDeviceName[1],deviceName[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aPipelineCacheUUID);
if ArrayItemCount>length(pipelineCacheUUID) then begin
ArrayItemCount:=length(pipelineCacheUUID);
end;
if ArrayItemCount>0 then begin
Move(aPipelineCacheUUID[0],pipelineCacheUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
limits:=aLimits;
sparseProperties:=aSparseProperties;
end;
constructor TVkSemaphoreCreateInfo.Create(const aFlags:TVkSemaphoreCreateFlags);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkQueryPoolCreateInfo.Create(const aFlags:TVkQueryPoolCreateFlags;
const aQueryType:TVkQueryType;
const aQueryCount:TVkUInt32;
const aPipelineStatistics:TVkQueryPipelineStatisticFlags);
begin
sType:=VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
queryType:=aQueryType;
queryCount:=aQueryCount;
pipelineStatistics:=aPipelineStatistics;
end;
constructor TVkFramebufferCreateInfo.Create(const aFlags:TVkFramebufferCreateFlags;
const aRenderPass:TVkRenderPass;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkImageView;
const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aLayers:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
renderPass:=aRenderPass;
attachmentCount:=aAttachmentCount;
pAttachments:=aPAttachments;
width:=aWidth;
height:=aHeight;
layers:=aLayers;
end;
constructor TVkDrawIndirectCommand.Create(const aVertexCount:TVkUInt32;
const aInstanceCount:TVkUInt32;
const aFirstVertex:TVkUInt32;
const aFirstInstance:TVkUInt32);
begin
vertexCount:=aVertexCount;
instanceCount:=aInstanceCount;
firstVertex:=aFirstVertex;
firstInstance:=aFirstInstance;
end;
constructor TVkDrawIndexedIndirectCommand.Create(const aIndexCount:TVkUInt32;
const aInstanceCount:TVkUInt32;
const aFirstIndex:TVkUInt32;
const aVertexOffset:TVkInt32;
const aFirstInstance:TVkUInt32);
begin
indexCount:=aIndexCount;
instanceCount:=aInstanceCount;
firstIndex:=aFirstIndex;
vertexOffset:=aVertexOffset;
firstInstance:=aFirstInstance;
end;
constructor TVkDispatchIndirectCommand.Create(const aX:TVkUInt32;
const aY:TVkUInt32;
const aZ:TVkUInt32);
begin
x:=aX;
y:=aY;
z:=aZ;
end;
constructor TVkMultiDrawInfoEXT.Create(const aFirstVertex:TVkUInt32;
const aVertexCount:TVkUInt32);
begin
firstVertex:=aFirstVertex;
vertexCount:=aVertexCount;
end;
constructor TVkMultiDrawIndexedInfoEXT.Create(const aFirstIndex:TVkUInt32;
const aIndexCount:TVkUInt32;
const aVertexOffset:TVkInt32);
begin
firstIndex:=aFirstIndex;
indexCount:=aIndexCount;
vertexOffset:=aVertexOffset;
end;
constructor TVkSubmitInfo.Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aPWaitDstStageMask:PVkPipelineStageFlags;
const aCommandBufferCount:TVkUInt32;
const aPCommandBuffers:PVkCommandBuffer;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphores:PVkSemaphore);
begin
sType:=VK_STRUCTURE_TYPE_SUBMIT_INFO;
pNext:=nil;
waitSemaphoreCount:=aWaitSemaphoreCount;
pWaitSemaphores:=aPWaitSemaphores;
pWaitDstStageMask:=aPWaitDstStageMask;
commandBufferCount:=aCommandBufferCount;
pCommandBuffers:=aPCommandBuffers;
signalSemaphoreCount:=aSignalSemaphoreCount;
pSignalSemaphores:=aPSignalSemaphores;
end;
constructor TVkDisplayPropertiesKHR.Create(const aDisplay:TVkDisplayKHR;
const aDisplayName:PVkChar;
const aPhysicalDimensions:TVkExtent2D;
const aPhysicalResolution:TVkExtent2D;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aPlaneReorderPossible:TVkBool32;
const aPersistentContent:TVkBool32);
begin
display:=aDisplay;
displayName:=aDisplayName;
physicalDimensions:=aPhysicalDimensions;
physicalResolution:=aPhysicalResolution;
supportedTransforms:=aSupportedTransforms;
planeReorderPossible:=aPlaneReorderPossible;
persistentContent:=aPersistentContent;
end;
constructor TVkDisplayPlanePropertiesKHR.Create(const aCurrentDisplay:TVkDisplayKHR;
const aCurrentStackIndex:TVkUInt32);
begin
currentDisplay:=aCurrentDisplay;
currentStackIndex:=aCurrentStackIndex;
end;
constructor TVkDisplayModeParametersKHR.Create(const aVisibleRegion:TVkExtent2D;
const aRefreshRate:TVkUInt32);
begin
visibleRegion:=aVisibleRegion;
refreshRate:=aRefreshRate;
end;
constructor TVkDisplayModePropertiesKHR.Create(const aDisplayMode:TVkDisplayModeKHR;
const aParameters:TVkDisplayModeParametersKHR);
begin
displayMode:=aDisplayMode;
parameters:=aParameters;
end;
constructor TVkDisplayModeCreateInfoKHR.Create(const aFlags:TVkDisplayModeCreateFlagsKHR;
const aParameters:TVkDisplayModeParametersKHR);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
parameters:=aParameters;
end;
constructor TVkDisplayPlaneCapabilitiesKHR.Create(const aSupportedAlpha:TVkDisplayPlaneAlphaFlagsKHR;
const aMinSrcPosition:TVkOffset2D;
const aMaxSrcPosition:TVkOffset2D;
const aMinSrcExtent:TVkExtent2D;
const aMaxSrcExtent:TVkExtent2D;
const aMinDstPosition:TVkOffset2D;
const aMaxDstPosition:TVkOffset2D;
const aMinDstExtent:TVkExtent2D;
const aMaxDstExtent:TVkExtent2D);
begin
supportedAlpha:=aSupportedAlpha;
minSrcPosition:=aMinSrcPosition;
maxSrcPosition:=aMaxSrcPosition;
minSrcExtent:=aMinSrcExtent;
maxSrcExtent:=aMaxSrcExtent;
minDstPosition:=aMinDstPosition;
maxDstPosition:=aMaxDstPosition;
minDstExtent:=aMinDstExtent;
maxDstExtent:=aMaxDstExtent;
end;
constructor TVkDisplaySurfaceCreateInfoKHR.Create(const aFlags:TVkDisplaySurfaceCreateFlagsKHR;
const aDisplayMode:TVkDisplayModeKHR;
const aPlaneIndex:TVkUInt32;
const aPlaneStackIndex:TVkUInt32;
const aTransform:TVkSurfaceTransformFlagBitsKHR;
const aGlobalAlpha:TVkFloat;
const aAlphaMode:TVkDisplayPlaneAlphaFlagBitsKHR;
const aImageExtent:TVkExtent2D);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
displayMode:=aDisplayMode;
planeIndex:=aPlaneIndex;
planeStackIndex:=aPlaneStackIndex;
transform:=aTransform;
globalAlpha:=aGlobalAlpha;
alphaMode:=aAlphaMode;
imageExtent:=aImageExtent;
end;
constructor TVkDisplayPresentInfoKHR.Create(const aSrcRect:TVkRect2D;
const aDstRect:TVkRect2D;
const aPersistent:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
pNext:=nil;
srcRect:=aSrcRect;
dstRect:=aDstRect;
persistent:=aPersistent;
end;
constructor TVkSurfaceCapabilitiesKHR.Create(const aMinImageCount:TVkUInt32;
const aMaxImageCount:TVkUInt32;
const aCurrentExtent:TVkExtent2D;
const aMinImageExtent:TVkExtent2D;
const aMaxImageExtent:TVkExtent2D;
const aMaxImageArrayLayers:TVkUInt32;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aCurrentTransform:TVkSurfaceTransformFlagBitsKHR;
const aSupportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
const aSupportedUsageFlags:TVkImageUsageFlags);
begin
minImageCount:=aMinImageCount;
maxImageCount:=aMaxImageCount;
currentExtent:=aCurrentExtent;
minImageExtent:=aMinImageExtent;
maxImageExtent:=aMaxImageExtent;
maxImageArrayLayers:=aMaxImageArrayLayers;
supportedTransforms:=aSupportedTransforms;
currentTransform:=aCurrentTransform;
supportedCompositeAlpha:=aSupportedCompositeAlpha;
supportedUsageFlags:=aSupportedUsageFlags;
end;
{$ifdef Android}
constructor TVkAndroidSurfaceCreateInfoKHR.Create(const aFlags:TVkAndroidSurfaceCreateFlagsKHR;
const aWindow:PVkAndroidANativeWindow);
begin
sType:=VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
window:=aWindow;
end;
{$endif}
constructor TVkViSurfaceCreateInfoNN.Create(const aFlags:TVkViSurfaceCreateFlagsNN;
const aWindow:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
pNext:=nil;
flags:=aFlags;
window:=aWindow;
end;
{$ifdef Wayland}
constructor TVkWaylandSurfaceCreateInfoKHR.Create(const aFlags:TVkWaylandSurfaceCreateFlagsKHR;
const aDisplay:PVkWaylandDisplay;
const aSurface:PVkWaylandSurface);
begin
sType:=VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
display:=aDisplay;
surface:=aSurface;
end;
{$endif}
{$ifdef Windows}
constructor TVkWin32SurfaceCreateInfoKHR.Create(const aFlags:TVkWin32SurfaceCreateFlagsKHR;
const aHinstance_:TVkHINSTANCE;
const aHwnd_:TVkHWND);
begin
sType:=VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
hinstance_:=aHinstance_;
hwnd_:=aHwnd_;
end;
{$endif}
{$ifdef XLIB}
constructor TVkXlibSurfaceCreateInfoKHR.Create(const aFlags:TVkXlibSurfaceCreateFlagsKHR;
const aDpy:PVkXLIBDisplay;
const aWindow:TVkXLIBWindow);
begin
sType:=VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
dpy:=aDpy;
window:=aWindow;
end;
{$endif}
{$ifdef XCB}
constructor TVkXcbSurfaceCreateInfoKHR.Create(const aFlags:TVkXcbSurfaceCreateFlagsKHR;
const aConnection:PVkXCBConnection;
const aWindow:TVkXCBWindow);
begin
sType:=VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
connection:=aConnection;
window:=aWindow;
end;
{$endif}
{$ifdef DirectFB}
constructor TVkDirectFBSurfaceCreateInfoEXT.Create(const aFlags:TVkDirectFBSurfaceCreateFlagsEXT;
const aDfb:PVkDirectFBIDirectFB;
const aSurface:PVkDirectFBIDirectFBSurface);
begin
sType:=VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
dfb:=aDfb;
surface:=aSurface;
end;
{$endif}
{$ifdef Fuchsia}
constructor TVkImagePipeSurfaceCreateInfoFUCHSIA.Create(const aFlags:TVkImagePipeSurfaceCreateFlagsFUCHSIA;
const aImagePipeHandle:TVkFuchsiaZXHandle);
begin
sType:=VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
pNext:=nil;
flags:=aFlags;
imagePipeHandle:=aImagePipeHandle;
end;
{$endif}
constructor TVkStreamDescriptorSurfaceCreateInfoGGP.Create(const aFlags:TVkStreamDescriptorSurfaceCreateFlagsGGP;
const aStreamDescriptor:TVkGgpStreamDescriptor);
begin
sType:=VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
pNext:=nil;
flags:=aFlags;
streamDescriptor:=aStreamDescriptor;
end;
{$ifdef QNX}
constructor TVkScreenSurfaceCreateInfoQNX.Create(const aFlags:TVkScreenSurfaceCreateFlagsQNX;
const aContext:PVkQNXScreenContext;
const aWindow:PVkQNXScreenWindow);
begin
sType:=VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX;
pNext:=nil;
flags:=aFlags;
context:=aContext;
window:=aWindow;
end;
{$endif}
constructor TVkSurfaceFormatKHR.Create(const aFormat:TVkFormat;
const aColorSpace:TVkColorSpaceKHR);
begin
format:=aFormat;
colorSpace:=aColorSpace;
end;
constructor TVkSwapchainCreateInfoKHR.Create(const aFlags:TVkSwapchainCreateFlagsKHR;
const aSurface:TVkSurfaceKHR;
const aMinImageCount:TVkUInt32;
const aImageFormat:TVkFormat;
const aImageColorSpace:TVkColorSpaceKHR;
const aImageExtent:TVkExtent2D;
const aImageArrayLayers:TVkUInt32;
const aImageUsage:TVkImageUsageFlags;
const aImageSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32;
const aPreTransform:TVkSurfaceTransformFlagBitsKHR;
const aCompositeAlpha:TVkCompositeAlphaFlagBitsKHR;
const aPresentMode:TVkPresentModeKHR;
const aClipped:TVkBool32;
const aOldSwapchain:TVkSwapchainKHR);
begin
sType:=VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
surface:=aSurface;
minImageCount:=aMinImageCount;
imageFormat:=aImageFormat;
imageColorSpace:=aImageColorSpace;
imageExtent:=aImageExtent;
imageArrayLayers:=aImageArrayLayers;
imageUsage:=aImageUsage;
imageSharingMode:=aImageSharingMode;
queueFamilyIndexCount:=aQueueFamilyIndexCount;
pQueueFamilyIndices:=aPQueueFamilyIndices;
preTransform:=aPreTransform;
compositeAlpha:=aCompositeAlpha;
presentMode:=aPresentMode;
clipped:=aClipped;
oldSwapchain:=aOldSwapchain;
end;
constructor TVkPresentInfoKHR.Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphores:PVkSemaphore;
const aSwapchainCount:TVkUInt32;
const aPSwapchains:PVkSwapchainKHR;
const aPImageIndices:PVkUInt32;
const aPResults:PVkResult);
begin
sType:=VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
pNext:=nil;
waitSemaphoreCount:=aWaitSemaphoreCount;
pWaitSemaphores:=aPWaitSemaphores;
swapchainCount:=aSwapchainCount;
pSwapchains:=aPSwapchains;
pImageIndices:=aPImageIndices;
pResults:=aPResults;
end;
constructor TVkDebugReportCallbackCreateInfoEXT.Create(const aFlags:TVkDebugReportFlagsEXT;
const aPfnCallback:TPFN_vkDebugReportCallbackEXT;
const aPUserData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
pfnCallback:=aPfnCallback;
pUserData:=aPUserData;
end;
constructor TVkValidationFlagsEXT.Create(const aDisabledValidationCheckCount:TVkUInt32;
const aPDisabledValidationChecks:PVkValidationCheckEXT);
begin
sType:=VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
pNext:=nil;
disabledValidationCheckCount:=aDisabledValidationCheckCount;
pDisabledValidationChecks:=aPDisabledValidationChecks;
end;
constructor TVkValidationFeaturesEXT.Create(const aEnabledValidationFeatureCount:TVkUInt32;
const aPEnabledValidationFeatures:PVkValidationFeatureEnableEXT;
const aDisabledValidationFeatureCount:TVkUInt32;
const aPDisabledValidationFeatures:PVkValidationFeatureDisableEXT);
begin
sType:=VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
pNext:=nil;
enabledValidationFeatureCount:=aEnabledValidationFeatureCount;
pEnabledValidationFeatures:=aPEnabledValidationFeatures;
disabledValidationFeatureCount:=aDisabledValidationFeatureCount;
pDisabledValidationFeatures:=aPDisabledValidationFeatures;
end;
constructor TVkPipelineRasterizationStateRasterizationOrderAMD.Create(const aRasterizationOrder:TVkRasterizationOrderAMD);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
pNext:=nil;
rasterizationOrder:=aRasterizationOrder;
end;
constructor TVkDebugMarkerObjectNameInfoEXT.Create(const aObjectType:TVkDebugReportObjectTypeEXT;
const aObject_:TVkUInt64;
const aPObjectName:PVkChar);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
pNext:=nil;
objectType:=aObjectType;
object_:=aObject_;
pObjectName:=aPObjectName;
end;
constructor TVkDebugMarkerObjectTagInfoEXT.Create(const aObjectType:TVkDebugReportObjectTypeEXT;
const aObject_:TVkUInt64;
const aTagName:TVkUInt64;
const aTagSize:TVkSize;
const aPTag:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
pNext:=nil;
objectType:=aObjectType;
object_:=aObject_;
tagName:=aTagName;
tagSize:=aTagSize;
pTag:=aPTag;
end;
constructor TVkDebugMarkerMarkerInfoEXT.Create(const aPMarkerName:PVkChar;
const aColor:array of TVkFloat);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkDebugMarkerMarkerInfoEXT),#0);
sType:=VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
pNext:=nil;
pMarkerName:=aPMarkerName;
ArrayItemCount:=length(aColor);
if ArrayItemCount>length(color) then begin
ArrayItemCount:=length(color);
end;
if ArrayItemCount>0 then begin
Move(aColor[0],color[0],ArrayItemCount*SizeOf(TVkFloat));
end;
end;
constructor TVkDedicatedAllocationImageCreateInfoNV.Create(const aDedicatedAllocation:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
pNext:=nil;
dedicatedAllocation:=aDedicatedAllocation;
end;
constructor TVkDedicatedAllocationBufferCreateInfoNV.Create(const aDedicatedAllocation:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
pNext:=nil;
dedicatedAllocation:=aDedicatedAllocation;
end;
constructor TVkDedicatedAllocationMemoryAllocateInfoNV.Create(const aImage:TVkImage;
const aBuffer:TVkBuffer);
begin
sType:=VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
pNext:=nil;
image:=aImage;
buffer:=aBuffer;
end;
constructor TVkExternalImageFormatPropertiesNV.Create(const aImageFormatProperties:TVkImageFormatProperties;
const aExternalMemoryFeatures:TVkExternalMemoryFeatureFlagsNV;
const aExportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlagsNV;
const aCompatibleHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
begin
imageFormatProperties:=aImageFormatProperties;
externalMemoryFeatures:=aExternalMemoryFeatures;
exportFromImportedHandleTypes:=aExportFromImportedHandleTypes;
compatibleHandleTypes:=aCompatibleHandleTypes;
end;
constructor TVkExternalMemoryImageCreateInfoNV.Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkExportMemoryAllocateInfoNV.Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlagsNV);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkImportMemoryWin32HandleInfoNV.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagsNV;
const aHandle:THANDLE);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
pNext:=nil;
handleType:=aHandleType;
handle:=aHandle;
end;
{$ifdef Windows}
constructor TVkExportMemoryWin32HandleInfoNV.Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
pNext:=nil;
pAttributes:=aPAttributes;
dwAccess:=aDwAccess;
end;
{$endif}
constructor TVkWin32KeyedMutexAcquireReleaseInfoNV.Create(const aAcquireCount:TVkUInt32;
const aPAcquireSyncs:PVkDeviceMemory;
const aPAcquireKeys:PVkUInt64;
const aPAcquireTimeoutMilliseconds:PVkUInt32;
const aReleaseCount:TVkUInt32;
const aPReleaseSyncs:PVkDeviceMemory;
const aPReleaseKeys:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
pNext:=nil;
acquireCount:=aAcquireCount;
pAcquireSyncs:=aPAcquireSyncs;
pAcquireKeys:=aPAcquireKeys;
pAcquireTimeoutMilliseconds:=aPAcquireTimeoutMilliseconds;
releaseCount:=aReleaseCount;
pReleaseSyncs:=aPReleaseSyncs;
pReleaseKeys:=aPReleaseKeys;
end;
constructor TVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.Create(const aDeviceGeneratedCommands:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
pNext:=nil;
deviceGeneratedCommands:=aDeviceGeneratedCommands;
end;
constructor TVkDevicePrivateDataCreateInfoEXT.Create(const aPrivateDataSlotRequestCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT;
pNext:=nil;
privateDataSlotRequestCount:=aPrivateDataSlotRequestCount;
end;
constructor TVkPrivateDataSlotCreateInfoEXT.Create(const aFlags:TVkPrivateDataSlotCreateFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkPhysicalDevicePrivateDataFeaturesEXT.Create(const aPrivateData:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT;
pNext:=nil;
privateData:=aPrivateData;
end;
constructor TVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.Create(const aMaxGraphicsShaderGroupCount:TVkUInt32;
const aMaxIndirectSequenceCount:TVkUInt32;
const aMaxIndirectCommandsTokenCount:TVkUInt32;
const aMaxIndirectCommandsStreamCount:TVkUInt32;
const aMaxIndirectCommandsTokenOffset:TVkUInt32;
const aMaxIndirectCommandsStreamStride:TVkUInt32;
const aMinSequencesCountBufferOffsetAlignment:TVkUInt32;
const aMinSequencesIndexBufferOffsetAlignment:TVkUInt32;
const aMinIndirectCommandsBufferOffsetAlignment:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
pNext:=nil;
maxGraphicsShaderGroupCount:=aMaxGraphicsShaderGroupCount;
maxIndirectSequenceCount:=aMaxIndirectSequenceCount;
maxIndirectCommandsTokenCount:=aMaxIndirectCommandsTokenCount;
maxIndirectCommandsStreamCount:=aMaxIndirectCommandsStreamCount;
maxIndirectCommandsTokenOffset:=aMaxIndirectCommandsTokenOffset;
maxIndirectCommandsStreamStride:=aMaxIndirectCommandsStreamStride;
minSequencesCountBufferOffsetAlignment:=aMinSequencesCountBufferOffsetAlignment;
minSequencesIndexBufferOffsetAlignment:=aMinSequencesIndexBufferOffsetAlignment;
minIndirectCommandsBufferOffsetAlignment:=aMinIndirectCommandsBufferOffsetAlignment;
end;
constructor TVkPhysicalDeviceMultiDrawPropertiesEXT.Create(const aMaxMultiDrawCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
pNext:=nil;
maxMultiDrawCount:=aMaxMultiDrawCount;
end;
constructor TVkGraphicsShaderGroupCreateInfoNV.Create(const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aPVertexInputState:PVkPipelineVertexInputStateCreateInfo;
const aPTessellationState:PVkPipelineTessellationStateCreateInfo);
begin
sType:=VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
pNext:=nil;
stageCount:=aStageCount;
pStages:=aPStages;
pVertexInputState:=aPVertexInputState;
pTessellationState:=aPTessellationState;
end;
constructor TVkGraphicsPipelineShaderGroupsCreateInfoNV.Create(const aGroupCount:TVkUInt32;
const aPGroups:PVkGraphicsShaderGroupCreateInfoNV;
const aPipelineCount:TVkUInt32;
const aPPipelines:PVkPipeline);
begin
sType:=VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
pNext:=nil;
groupCount:=aGroupCount;
pGroups:=aPGroups;
pipelineCount:=aPipelineCount;
pPipelines:=aPPipelines;
end;
constructor TVkBindShaderGroupIndirectCommandNV.Create(const aGroupIndex:TVkUInt32);
begin
groupIndex:=aGroupIndex;
end;
constructor TVkBindIndexBufferIndirectCommandNV.Create(const aBufferAddress:TVkDeviceAddress;
const aSize:TVkUInt32;
const aIndexType:TVkIndexType);
begin
bufferAddress:=aBufferAddress;
size:=aSize;
indexType:=aIndexType;
end;
constructor TVkBindVertexBufferIndirectCommandNV.Create(const aBufferAddress:TVkDeviceAddress;
const aSize:TVkUInt32;
const aStride:TVkUInt32);
begin
bufferAddress:=aBufferAddress;
size:=aSize;
stride:=aStride;
end;
constructor TVkSetStateFlagsIndirectCommandNV.Create(const aData:TVkUInt32);
begin
data:=aData;
end;
constructor TVkIndirectCommandsStreamNV.Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize);
begin
buffer:=aBuffer;
offset:=aOffset;
end;
constructor TVkIndirectCommandsLayoutTokenNV.Create(const aTokenType:TVkIndirectCommandsTokenTypeNV;
const aStream:TVkUInt32;
const aOffset:TVkUInt32;
const aVertexBindingUnit:TVkUInt32;
const aVertexDynamicStride:TVkBool32;
const aPushconstantPipelineLayout:TVkPipelineLayout;
const aPushconstantShaderStageFlags:TVkShaderStageFlags;
const aPushconstantOffset:TVkUInt32;
const aPushconstantSize:TVkUInt32;
const aIndirectStateFlags:TVkIndirectStateFlagsNV;
const aIndexTypeCount:TVkUInt32;
const aPIndexTypes:PVkIndexType;
const aPIndexTypeValues:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
pNext:=nil;
tokenType:=aTokenType;
stream:=aStream;
offset:=aOffset;
vertexBindingUnit:=aVertexBindingUnit;
vertexDynamicStride:=aVertexDynamicStride;
pushconstantPipelineLayout:=aPushconstantPipelineLayout;
pushconstantShaderStageFlags:=aPushconstantShaderStageFlags;
pushconstantOffset:=aPushconstantOffset;
pushconstantSize:=aPushconstantSize;
indirectStateFlags:=aIndirectStateFlags;
indexTypeCount:=aIndexTypeCount;
pIndexTypes:=aPIndexTypes;
pIndexTypeValues:=aPIndexTypeValues;
end;
constructor TVkIndirectCommandsLayoutCreateInfoNV.Create(const aFlags:TVkIndirectCommandsLayoutUsageFlagsNV;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aTokenCount:TVkUInt32;
const aPTokens:PVkIndirectCommandsLayoutTokenNV;
const aStreamCount:TVkUInt32;
const aPStreamStrides:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
pipelineBindPoint:=aPipelineBindPoint;
tokenCount:=aTokenCount;
pTokens:=aPTokens;
streamCount:=aStreamCount;
pStreamStrides:=aPStreamStrides;
end;
constructor TVkGeneratedCommandsInfoNV.Create(const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipeline:TVkPipeline;
const aIndirectCommandsLayout:TVkIndirectCommandsLayoutNV;
const aStreamCount:TVkUInt32;
const aPStreams:PVkIndirectCommandsStreamNV;
const aSequencesCount:TVkUInt32;
const aPreprocessBuffer:TVkBuffer;
const aPreprocessOffset:TVkDeviceSize;
const aPreprocessSize:TVkDeviceSize;
const aSequencesCountBuffer:TVkBuffer;
const aSequencesCountOffset:TVkDeviceSize;
const aSequencesIndexBuffer:TVkBuffer;
const aSequencesIndexOffset:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV;
pNext:=nil;
pipelineBindPoint:=aPipelineBindPoint;
pipeline:=aPipeline;
indirectCommandsLayout:=aIndirectCommandsLayout;
streamCount:=aStreamCount;
pStreams:=aPStreams;
sequencesCount:=aSequencesCount;
preprocessBuffer:=aPreprocessBuffer;
preprocessOffset:=aPreprocessOffset;
preprocessSize:=aPreprocessSize;
sequencesCountBuffer:=aSequencesCountBuffer;
sequencesCountOffset:=aSequencesCountOffset;
sequencesIndexBuffer:=aSequencesIndexBuffer;
sequencesIndexOffset:=aSequencesIndexOffset;
end;
constructor TVkGeneratedCommandsMemoryRequirementsInfoNV.Create(const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipeline:TVkPipeline;
const aIndirectCommandsLayout:TVkIndirectCommandsLayoutNV;
const aMaxSequencesCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
pNext:=nil;
pipelineBindPoint:=aPipelineBindPoint;
pipeline:=aPipeline;
indirectCommandsLayout:=aIndirectCommandsLayout;
maxSequencesCount:=aMaxSequencesCount;
end;
constructor TVkPhysicalDeviceFeatures2.Create(const aFeatures:TVkPhysicalDeviceFeatures);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
pNext:=nil;
features:=aFeatures;
end;
constructor TVkPhysicalDeviceProperties2.Create(const aProperties:TVkPhysicalDeviceProperties);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
pNext:=nil;
properties:=aProperties;
end;
constructor TVkFormatProperties2.Create(const aFormatProperties:TVkFormatProperties);
begin
sType:=VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
pNext:=nil;
formatProperties:=aFormatProperties;
end;
constructor TVkImageFormatProperties2.Create(const aImageFormatProperties:TVkImageFormatProperties);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
pNext:=nil;
imageFormatProperties:=aImageFormatProperties;
end;
constructor TVkPhysicalDeviceImageFormatInfo2.Create(const aFormat:TVkFormat;
const aType_:TVkImageType;
const aTiling:TVkImageTiling;
const aUsage:TVkImageUsageFlags;
const aFlags:TVkImageCreateFlags);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
pNext:=nil;
format:=aFormat;
type_:=aType_;
tiling:=aTiling;
usage:=aUsage;
flags:=aFlags;
end;
constructor TVkQueueFamilyProperties2.Create(const aQueueFamilyProperties:TVkQueueFamilyProperties);
begin
sType:=VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
pNext:=nil;
queueFamilyProperties:=aQueueFamilyProperties;
end;
constructor TVkPhysicalDeviceMemoryProperties2.Create(const aMemoryProperties:TVkPhysicalDeviceMemoryProperties);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
pNext:=nil;
memoryProperties:=aMemoryProperties;
end;
constructor TVkSparseImageFormatProperties2.Create(const aProperties:TVkSparseImageFormatProperties);
begin
sType:=VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
pNext:=nil;
properties:=aProperties;
end;
constructor TVkPhysicalDeviceSparseImageFormatInfo2.Create(const aFormat:TVkFormat;
const aType_:TVkImageType;
const aSamples:TVkSampleCountFlagBits;
const aUsage:TVkImageUsageFlags;
const aTiling:TVkImageTiling);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
pNext:=nil;
format:=aFormat;
type_:=aType_;
samples:=aSamples;
usage:=aUsage;
tiling:=aTiling;
end;
constructor TVkPhysicalDevicePushDescriptorPropertiesKHR.Create(const aMaxPushDescriptors:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
pNext:=nil;
maxPushDescriptors:=aMaxPushDescriptors;
end;
constructor TVkConformanceVersion.Create(const aMajor:TVkUInt8;
const aMinor:TVkUInt8;
const aSubminor:TVkUInt8;
const aPatch:TVkUInt8);
begin
major:=aMajor;
minor:=aMinor;
subminor:=aSubminor;
patch:=aPatch;
end;
constructor TVkPhysicalDeviceDriverProperties.Create(const aDriverID:TVkDriverId;
const aDriverName:TVkCharString;
const aDriverInfo:TVkCharString;
const aConformanceVersion:TVkConformanceVersion);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceDriverProperties),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
pNext:=nil;
driverID:=aDriverID;
ArrayItemCount:=length(aDriverName);
if ArrayItemCount>length(driverName) then begin
ArrayItemCount:=length(driverName);
end;
if ArrayItemCount>0 then begin
Move(aDriverName[1],driverName[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDriverInfo);
if ArrayItemCount>length(driverInfo) then begin
ArrayItemCount:=length(driverInfo);
end;
if ArrayItemCount>0 then begin
Move(aDriverInfo[1],driverInfo[0],ArrayItemCount*SizeOf(TVkChar));
end;
conformanceVersion:=aConformanceVersion;
end;
constructor TVkRectLayerKHR.Create(const aOffset:TVkOffset2D;
const aExtent:TVkExtent2D;
const aLayer:TVkUInt32);
begin
offset:=aOffset;
extent:=aExtent;
layer:=aLayer;
end;
constructor TVkPresentRegionKHR.Create(const aRectangleCount:TVkUInt32;
const aPRectangles:PVkRectLayerKHR);
begin
rectangleCount:=aRectangleCount;
pRectangles:=aPRectangles;
end;
constructor TVkPresentRegionsKHR.Create(const aSwapchainCount:TVkUInt32;
const aPRegions:PVkPresentRegionKHR);
begin
sType:=VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
pNext:=nil;
swapchainCount:=aSwapchainCount;
pRegions:=aPRegions;
end;
constructor TVkPhysicalDeviceVariablePointersFeatures.Create(const aVariablePointersStorageBuffer:TVkBool32;
const aVariablePointers:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
pNext:=nil;
variablePointersStorageBuffer:=aVariablePointersStorageBuffer;
variablePointers:=aVariablePointers;
end;
constructor TVkExternalMemoryProperties.Create(const aExternalMemoryFeatures:TVkExternalMemoryFeatureFlags;
const aExportFromImportedHandleTypes:TVkExternalMemoryHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalMemoryHandleTypeFlags);
begin
externalMemoryFeatures:=aExternalMemoryFeatures;
exportFromImportedHandleTypes:=aExportFromImportedHandleTypes;
compatibleHandleTypes:=aCompatibleHandleTypes;
end;
constructor TVkPhysicalDeviceExternalImageFormatInfo.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
pNext:=nil;
handleType:=aHandleType;
end;
constructor TVkExternalImageFormatProperties.Create(const aExternalMemoryProperties:TVkExternalMemoryProperties);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
pNext:=nil;
externalMemoryProperties:=aExternalMemoryProperties;
end;
constructor TVkPhysicalDeviceExternalBufferInfo.Create(const aFlags:TVkBufferCreateFlags;
const aUsage:TVkBufferUsageFlags;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
pNext:=nil;
flags:=aFlags;
usage:=aUsage;
handleType:=aHandleType;
end;
constructor TVkExternalBufferProperties.Create(const aExternalMemoryProperties:TVkExternalMemoryProperties);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
pNext:=nil;
externalMemoryProperties:=aExternalMemoryProperties;
end;
constructor TVkPhysicalDeviceIDProperties.Create(const aDeviceUUID:array of TVkUInt8;
const aDriverUUID:array of TVkUInt8;
const aDeviceLUID:array of TVkUInt8;
const aDeviceNodeMask:TVkUInt32;
const aDeviceLUIDValid:TVkBool32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceIDProperties),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
pNext:=nil;
ArrayItemCount:=length(aDeviceUUID);
if ArrayItemCount>length(deviceUUID) then begin
ArrayItemCount:=length(deviceUUID);
end;
if ArrayItemCount>0 then begin
Move(aDeviceUUID[0],deviceUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
ArrayItemCount:=length(aDriverUUID);
if ArrayItemCount>length(driverUUID) then begin
ArrayItemCount:=length(driverUUID);
end;
if ArrayItemCount>0 then begin
Move(aDriverUUID[0],driverUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
ArrayItemCount:=length(aDeviceLUID);
if ArrayItemCount>length(deviceLUID) then begin
ArrayItemCount:=length(deviceLUID);
end;
if ArrayItemCount>0 then begin
Move(aDeviceLUID[0],deviceLUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
deviceNodeMask:=aDeviceNodeMask;
deviceLUIDValid:=aDeviceLUIDValid;
end;
constructor TVkExternalMemoryImageCreateInfo.Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkExternalMemoryBufferCreateInfo.Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkExportMemoryAllocateInfo.Create(const aHandleTypes:TVkExternalMemoryHandleTypeFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkImportMemoryWin32HandleInfoKHR.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
handleType:=aHandleType;
handle:=aHandle;
name:=aName;
end;
{$ifdef Windows}
constructor TVkExportMemoryWin32HandleInfoKHR.Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
pAttributes:=aPAttributes;
dwAccess:=aDwAccess;
name:=aName;
end;
{$endif}
{$ifdef Fuchsia}
constructor TVkImportMemoryZirconHandleInfoFUCHSIA.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aHandle:TVkFuchsiaZXHandle);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
pNext:=nil;
handleType:=aHandleType;
handle:=aHandle;
end;
{$endif}
constructor TVkMemoryZirconHandlePropertiesFUCHSIA.Create(const aMemoryTypeBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
pNext:=nil;
memoryTypeBits:=aMemoryTypeBits;
end;
constructor TVkMemoryGetZirconHandleInfoFUCHSIA.Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
pNext:=nil;
memory:=aMemory;
handleType:=aHandleType;
end;
constructor TVkMemoryWin32HandlePropertiesKHR.Create(const aMemoryTypeBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
pNext:=nil;
memoryTypeBits:=aMemoryTypeBits;
end;
constructor TVkMemoryGetWin32HandleInfoKHR.Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
memory:=aMemory;
handleType:=aHandleType;
end;
constructor TVkImportMemoryFdInfoKHR.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aFd:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
pNext:=nil;
handleType:=aHandleType;
fd:=aFd;
end;
constructor TVkMemoryFdPropertiesKHR.Create(const aMemoryTypeBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
pNext:=nil;
memoryTypeBits:=aMemoryTypeBits;
end;
constructor TVkMemoryGetFdInfoKHR.Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
pNext:=nil;
memory:=aMemory;
handleType:=aHandleType;
end;
constructor TVkWin32KeyedMutexAcquireReleaseInfoKHR.Create(const aAcquireCount:TVkUInt32;
const aPAcquireSyncs:PVkDeviceMemory;
const aPAcquireKeys:PVkUInt64;
const aPAcquireTimeouts:PVkUInt32;
const aReleaseCount:TVkUInt32;
const aPReleaseSyncs:PVkDeviceMemory;
const aPReleaseKeys:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
pNext:=nil;
acquireCount:=aAcquireCount;
pAcquireSyncs:=aPAcquireSyncs;
pAcquireKeys:=aPAcquireKeys;
pAcquireTimeouts:=aPAcquireTimeouts;
releaseCount:=aReleaseCount;
pReleaseSyncs:=aPReleaseSyncs;
pReleaseKeys:=aPReleaseKeys;
end;
constructor TVkPhysicalDeviceExternalSemaphoreInfo.Create(const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
pNext:=nil;
handleType:=aHandleType;
end;
constructor TVkExternalSemaphoreProperties.Create(const aExportFromImportedHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalSemaphoreHandleTypeFlags;
const aExternalSemaphoreFeatures:TVkExternalSemaphoreFeatureFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
pNext:=nil;
exportFromImportedHandleTypes:=aExportFromImportedHandleTypes;
compatibleHandleTypes:=aCompatibleHandleTypes;
externalSemaphoreFeatures:=aExternalSemaphoreFeatures;
end;
constructor TVkExportSemaphoreCreateInfo.Create(const aHandleTypes:TVkExternalSemaphoreHandleTypeFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkImportSemaphoreWin32HandleInfoKHR.Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
semaphore:=aSemaphore;
flags:=aFlags;
handleType:=aHandleType;
handle:=aHandle;
name:=aName;
end;
{$ifdef Windows}
constructor TVkExportSemaphoreWin32HandleInfoKHR.Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
pAttributes:=aPAttributes;
dwAccess:=aDwAccess;
name:=aName;
end;
{$endif}
constructor TVkD3D12FenceSubmitInfoKHR.Create(const aWaitSemaphoreValuesCount:TVkUInt32;
const aPWaitSemaphoreValues:PVkUInt64;
const aSignalSemaphoreValuesCount:TVkUInt32;
const aPSignalSemaphoreValues:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
pNext:=nil;
waitSemaphoreValuesCount:=aWaitSemaphoreValuesCount;
pWaitSemaphoreValues:=aPWaitSemaphoreValues;
signalSemaphoreValuesCount:=aSignalSemaphoreValuesCount;
pSignalSemaphoreValues:=aPSignalSemaphoreValues;
end;
constructor TVkSemaphoreGetWin32HandleInfoKHR.Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
semaphore:=aSemaphore;
handleType:=aHandleType;
end;
constructor TVkImportSemaphoreFdInfoKHR.Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aFd:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
pNext:=nil;
semaphore:=aSemaphore;
flags:=aFlags;
handleType:=aHandleType;
fd:=aFd;
end;
constructor TVkSemaphoreGetFdInfoKHR.Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
pNext:=nil;
semaphore:=aSemaphore;
handleType:=aHandleType;
end;
{$ifdef Fuchsia}
constructor TVkImportSemaphoreZirconHandleInfoFUCHSIA.Create(const aSemaphore:TVkSemaphore;
const aFlags:TVkSemaphoreImportFlags;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits;
const aZirconHandle:TVkFuchsiaZXHandle);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
pNext:=nil;
semaphore:=aSemaphore;
flags:=aFlags;
handleType:=aHandleType;
zirconHandle:=aZirconHandle;
end;
{$endif}
constructor TVkSemaphoreGetZirconHandleInfoFUCHSIA.Create(const aSemaphore:TVkSemaphore;
const aHandleType:TVkExternalSemaphoreHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
pNext:=nil;
semaphore:=aSemaphore;
handleType:=aHandleType;
end;
constructor TVkPhysicalDeviceExternalFenceInfo.Create(const aHandleType:TVkExternalFenceHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
pNext:=nil;
handleType:=aHandleType;
end;
constructor TVkExternalFenceProperties.Create(const aExportFromImportedHandleTypes:TVkExternalFenceHandleTypeFlags;
const aCompatibleHandleTypes:TVkExternalFenceHandleTypeFlags;
const aExternalFenceFeatures:TVkExternalFenceFeatureFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
pNext:=nil;
exportFromImportedHandleTypes:=aExportFromImportedHandleTypes;
compatibleHandleTypes:=aCompatibleHandleTypes;
externalFenceFeatures:=aExternalFenceFeatures;
end;
constructor TVkExportFenceCreateInfo.Create(const aHandleTypes:TVkExternalFenceHandleTypeFlags);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
pNext:=nil;
handleTypes:=aHandleTypes;
end;
constructor TVkImportFenceWin32HandleInfoKHR.Create(const aFence:TVkFence;
const aFlags:TVkFenceImportFlags;
const aHandleType:TVkExternalFenceHandleTypeFlagBits;
const aHandle:THANDLE;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
fence:=aFence;
flags:=aFlags;
handleType:=aHandleType;
handle:=aHandle;
name:=aName;
end;
{$ifdef Windows}
constructor TVkExportFenceWin32HandleInfoKHR.Create(const aPAttributes:PSecurityAttributes;
const aDwAccess:TVkUInt32;
const aName:PWideChar);
begin
sType:=VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
pAttributes:=aPAttributes;
dwAccess:=aDwAccess;
name:=aName;
end;
{$endif}
constructor TVkFenceGetWin32HandleInfoKHR.Create(const aFence:TVkFence;
const aHandleType:TVkExternalFenceHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
pNext:=nil;
fence:=aFence;
handleType:=aHandleType;
end;
constructor TVkImportFenceFdInfoKHR.Create(const aFence:TVkFence;
const aFlags:TVkFenceImportFlags;
const aHandleType:TVkExternalFenceHandleTypeFlagBits;
const aFd:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
pNext:=nil;
fence:=aFence;
flags:=aFlags;
handleType:=aHandleType;
fd:=aFd;
end;
constructor TVkFenceGetFdInfoKHR.Create(const aFence:TVkFence;
const aHandleType:TVkExternalFenceHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
pNext:=nil;
fence:=aFence;
handleType:=aHandleType;
end;
constructor TVkPhysicalDeviceMultiviewFeatures.Create(const aMultiview:TVkBool32;
const aMultiviewGeometryShader:TVkBool32;
const aMultiviewTessellationShader:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
pNext:=nil;
multiview:=aMultiview;
multiviewGeometryShader:=aMultiviewGeometryShader;
multiviewTessellationShader:=aMultiviewTessellationShader;
end;
constructor TVkPhysicalDeviceMultiviewProperties.Create(const aMaxMultiviewViewCount:TVkUInt32;
const aMaxMultiviewInstanceIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
pNext:=nil;
maxMultiviewViewCount:=aMaxMultiviewViewCount;
maxMultiviewInstanceIndex:=aMaxMultiviewInstanceIndex;
end;
constructor TVkRenderPassMultiviewCreateInfo.Create(const aSubpassCount:TVkUInt32;
const aPViewMasks:PVkUInt32;
const aDependencyCount:TVkUInt32;
const aPViewOffsets:PVkInt32;
const aCorrelationMaskCount:TVkUInt32;
const aPCorrelationMasks:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
pNext:=nil;
subpassCount:=aSubpassCount;
pViewMasks:=aPViewMasks;
dependencyCount:=aDependencyCount;
pViewOffsets:=aPViewOffsets;
correlationMaskCount:=aCorrelationMaskCount;
pCorrelationMasks:=aPCorrelationMasks;
end;
constructor TVkSurfaceCapabilities2EXT.Create(const aMinImageCount:TVkUInt32;
const aMaxImageCount:TVkUInt32;
const aCurrentExtent:TVkExtent2D;
const aMinImageExtent:TVkExtent2D;
const aMaxImageExtent:TVkExtent2D;
const aMaxImageArrayLayers:TVkUInt32;
const aSupportedTransforms:TVkSurfaceTransformFlagsKHR;
const aCurrentTransform:TVkSurfaceTransformFlagBitsKHR;
const aSupportedCompositeAlpha:TVkCompositeAlphaFlagsKHR;
const aSupportedUsageFlags:TVkImageUsageFlags;
const aSupportedSurfaceCounters:TVkSurfaceCounterFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
pNext:=nil;
minImageCount:=aMinImageCount;
maxImageCount:=aMaxImageCount;
currentExtent:=aCurrentExtent;
minImageExtent:=aMinImageExtent;
maxImageExtent:=aMaxImageExtent;
maxImageArrayLayers:=aMaxImageArrayLayers;
supportedTransforms:=aSupportedTransforms;
currentTransform:=aCurrentTransform;
supportedCompositeAlpha:=aSupportedCompositeAlpha;
supportedUsageFlags:=aSupportedUsageFlags;
supportedSurfaceCounters:=aSupportedSurfaceCounters;
end;
constructor TVkDisplayPowerInfoEXT.Create(const aPowerState:TVkDisplayPowerStateEXT);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
pNext:=nil;
powerState:=aPowerState;
end;
constructor TVkDeviceEventInfoEXT.Create(const aDeviceEvent:TVkDeviceEventTypeEXT);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
pNext:=nil;
deviceEvent:=aDeviceEvent;
end;
constructor TVkDisplayEventInfoEXT.Create(const aDisplayEvent:TVkDisplayEventTypeEXT);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
pNext:=nil;
displayEvent:=aDisplayEvent;
end;
constructor TVkSwapchainCounterCreateInfoEXT.Create(const aSurfaceCounters:TVkSurfaceCounterFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
pNext:=nil;
surfaceCounters:=aSurfaceCounters;
end;
constructor TVkPhysicalDeviceGroupProperties.Create(const aPhysicalDeviceCount:TVkUInt32;
const aPhysicalDevices:array of TVkPhysicalDevice;
const aSubsetAllocation:TVkBool32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceGroupProperties),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
pNext:=nil;
physicalDeviceCount:=aPhysicalDeviceCount;
ArrayItemCount:=length(aPhysicalDevices);
if ArrayItemCount>length(physicalDevices) then begin
ArrayItemCount:=length(physicalDevices);
end;
if ArrayItemCount>0 then begin
Move(aPhysicalDevices[0],physicalDevices[0],ArrayItemCount*SizeOf(TVkPhysicalDevice));
end;
subsetAllocation:=aSubsetAllocation;
end;
constructor TVkMemoryAllocateFlagsInfo.Create(const aFlags:TVkMemoryAllocateFlags;
const aDeviceMask:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
pNext:=nil;
flags:=aFlags;
deviceMask:=aDeviceMask;
end;
constructor TVkBindBufferMemoryInfo.Create(const aBuffer:TVkBuffer;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
pNext:=nil;
buffer:=aBuffer;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
end;
constructor TVkBindBufferMemoryDeviceGroupInfo.Create(const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
pNext:=nil;
deviceIndexCount:=aDeviceIndexCount;
pDeviceIndices:=aPDeviceIndices;
end;
constructor TVkBindImageMemoryInfo.Create(const aImage:TVkImage;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
pNext:=nil;
image:=aImage;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
end;
constructor TVkBindImageMemoryDeviceGroupInfo.Create(const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32;
const aSplitInstanceBindRegionCount:TVkUInt32;
const aPSplitInstanceBindRegions:PVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
pNext:=nil;
deviceIndexCount:=aDeviceIndexCount;
pDeviceIndices:=aPDeviceIndices;
splitInstanceBindRegionCount:=aSplitInstanceBindRegionCount;
pSplitInstanceBindRegions:=aPSplitInstanceBindRegions;
end;
constructor TVkDeviceGroupRenderPassBeginInfo.Create(const aDeviceMask:TVkUInt32;
const aDeviceRenderAreaCount:TVkUInt32;
const aPDeviceRenderAreas:PVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
pNext:=nil;
deviceMask:=aDeviceMask;
deviceRenderAreaCount:=aDeviceRenderAreaCount;
pDeviceRenderAreas:=aPDeviceRenderAreas;
end;
constructor TVkDeviceGroupCommandBufferBeginInfo.Create(const aDeviceMask:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
pNext:=nil;
deviceMask:=aDeviceMask;
end;
constructor TVkDeviceGroupSubmitInfo.Create(const aWaitSemaphoreCount:TVkUInt32;
const aPWaitSemaphoreDeviceIndices:PVkUInt32;
const aCommandBufferCount:TVkUInt32;
const aPCommandBufferDeviceMasks:PVkUInt32;
const aSignalSemaphoreCount:TVkUInt32;
const aPSignalSemaphoreDeviceIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
pNext:=nil;
waitSemaphoreCount:=aWaitSemaphoreCount;
pWaitSemaphoreDeviceIndices:=aPWaitSemaphoreDeviceIndices;
commandBufferCount:=aCommandBufferCount;
pCommandBufferDeviceMasks:=aPCommandBufferDeviceMasks;
signalSemaphoreCount:=aSignalSemaphoreCount;
pSignalSemaphoreDeviceIndices:=aPSignalSemaphoreDeviceIndices;
end;
constructor TVkDeviceGroupBindSparseInfo.Create(const aResourceDeviceIndex:TVkUInt32;
const aMemoryDeviceIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
pNext:=nil;
resourceDeviceIndex:=aResourceDeviceIndex;
memoryDeviceIndex:=aMemoryDeviceIndex;
end;
constructor TVkDeviceGroupPresentCapabilitiesKHR.Create(const aPresentMask:array of TVkUInt32;
const aModes:TVkDeviceGroupPresentModeFlagsKHR);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkDeviceGroupPresentCapabilitiesKHR),#0);
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
pNext:=nil;
ArrayItemCount:=length(aPresentMask);
if ArrayItemCount>length(presentMask) then begin
ArrayItemCount:=length(presentMask);
end;
if ArrayItemCount>0 then begin
Move(aPresentMask[0],presentMask[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
modes:=aModes;
end;
constructor TVkImageSwapchainCreateInfoKHR.Create(const aSwapchain:TVkSwapchainKHR);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
pNext:=nil;
swapchain:=aSwapchain;
end;
constructor TVkBindImageMemorySwapchainInfoKHR.Create(const aSwapchain:TVkSwapchainKHR;
const aImageIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
pNext:=nil;
swapchain:=aSwapchain;
imageIndex:=aImageIndex;
end;
constructor TVkAcquireNextImageInfoKHR.Create(const aSwapchain:TVkSwapchainKHR;
const aTimeout:TVkUInt64;
const aSemaphore:TVkSemaphore;
const aFence:TVkFence;
const aDeviceMask:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
pNext:=nil;
swapchain:=aSwapchain;
timeout:=aTimeout;
semaphore:=aSemaphore;
fence:=aFence;
deviceMask:=aDeviceMask;
end;
constructor TVkDeviceGroupPresentInfoKHR.Create(const aSwapchainCount:TVkUInt32;
const aPDeviceMasks:PVkUInt32;
const aMode:TVkDeviceGroupPresentModeFlagBitsKHR);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
pNext:=nil;
swapchainCount:=aSwapchainCount;
pDeviceMasks:=aPDeviceMasks;
mode:=aMode;
end;
constructor TVkDeviceGroupDeviceCreateInfo.Create(const aPhysicalDeviceCount:TVkUInt32;
const aPPhysicalDevices:PVkPhysicalDevice);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
pNext:=nil;
physicalDeviceCount:=aPhysicalDeviceCount;
pPhysicalDevices:=aPPhysicalDevices;
end;
constructor TVkDeviceGroupSwapchainCreateInfoKHR.Create(const aModes:TVkDeviceGroupPresentModeFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
pNext:=nil;
modes:=aModes;
end;
constructor TVkDescriptorUpdateTemplateEntry.Create(const aDstBinding:TVkUInt32;
const aDstArrayElement:TVkUInt32;
const aDescriptorCount:TVkUInt32;
const aDescriptorType:TVkDescriptorType;
const aOffset:TVkSize;
const aStride:TVkSize);
begin
dstBinding:=aDstBinding;
dstArrayElement:=aDstArrayElement;
descriptorCount:=aDescriptorCount;
descriptorType:=aDescriptorType;
offset:=aOffset;
stride:=aStride;
end;
constructor TVkDescriptorUpdateTemplateCreateInfo.Create(const aFlags:TVkDescriptorUpdateTemplateCreateFlags;
const aDescriptorUpdateEntryCount:TVkUInt32;
const aPDescriptorUpdateEntries:PVkDescriptorUpdateTemplateEntry;
const aTemplateType:TVkDescriptorUpdateTemplateType;
const aDescriptorSetLayout:TVkDescriptorSetLayout;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aPipelineLayout:TVkPipelineLayout;
const aSet_:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
pNext:=nil;
flags:=aFlags;
descriptorUpdateEntryCount:=aDescriptorUpdateEntryCount;
pDescriptorUpdateEntries:=aPDescriptorUpdateEntries;
templateType:=aTemplateType;
descriptorSetLayout:=aDescriptorSetLayout;
pipelineBindPoint:=aPipelineBindPoint;
pipelineLayout:=aPipelineLayout;
set_:=aSet_;
end;
constructor TVkXYColorEXT.Create(const aX:TVkFloat;
const aY:TVkFloat);
begin
x:=aX;
y:=aY;
end;
constructor TVkPhysicalDevicePresentIdFeaturesKHR.Create(const aPresentId:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
pNext:=nil;
presentId:=aPresentId;
end;
constructor TVkPresentIdKHR.Create(const aSwapchainCount:TVkUInt32;
const aPPresentIds:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_PRESENT_ID_KHR;
pNext:=nil;
swapchainCount:=aSwapchainCount;
pPresentIds:=aPPresentIds;
end;
constructor TVkPhysicalDevicePresentWaitFeaturesKHR.Create(const aPresentWait:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
pNext:=nil;
presentWait:=aPresentWait;
end;
constructor TVkHdrMetadataEXT.Create(const aDisplayPrimaryRed:TVkXYColorEXT;
const aDisplayPrimaryGreen:TVkXYColorEXT;
const aDisplayPrimaryBlue:TVkXYColorEXT;
const aWhitePoint:TVkXYColorEXT;
const aMaxLuminance:TVkFloat;
const aMinLuminance:TVkFloat;
const aMaxContentLightLevel:TVkFloat;
const aMaxFrameAverageLightLevel:TVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
pNext:=nil;
displayPrimaryRed:=aDisplayPrimaryRed;
displayPrimaryGreen:=aDisplayPrimaryGreen;
displayPrimaryBlue:=aDisplayPrimaryBlue;
whitePoint:=aWhitePoint;
maxLuminance:=aMaxLuminance;
minLuminance:=aMinLuminance;
maxContentLightLevel:=aMaxContentLightLevel;
maxFrameAverageLightLevel:=aMaxFrameAverageLightLevel;
end;
constructor TVkDisplayNativeHdrSurfaceCapabilitiesAMD.Create(const aLocalDimmingSupport:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
pNext:=nil;
localDimmingSupport:=aLocalDimmingSupport;
end;
constructor TVkSwapchainDisplayNativeHdrCreateInfoAMD.Create(const aLocalDimmingEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
pNext:=nil;
localDimmingEnable:=aLocalDimmingEnable;
end;
constructor TVkRefreshCycleDurationGOOGLE.Create(const aRefreshDuration:TVkUInt64);
begin
refreshDuration:=aRefreshDuration;
end;
constructor TVkPastPresentationTimingGOOGLE.Create(const aPresentID:TVkUInt32;
const aDesiredPresentTime:TVkUInt64;
const aActualPresentTime:TVkUInt64;
const aEarliestPresentTime:TVkUInt64;
const aPresentMargin:TVkUInt64);
begin
presentID:=aPresentID;
desiredPresentTime:=aDesiredPresentTime;
actualPresentTime:=aActualPresentTime;
earliestPresentTime:=aEarliestPresentTime;
presentMargin:=aPresentMargin;
end;
constructor TVkPresentTimeGOOGLE.Create(const aPresentID:TVkUInt32;
const aDesiredPresentTime:TVkUInt64);
begin
presentID:=aPresentID;
desiredPresentTime:=aDesiredPresentTime;
end;
constructor TVkPresentTimesInfoGOOGLE.Create(const aSwapchainCount:TVkUInt32;
const aPTimes:PVkPresentTimeGOOGLE);
begin
sType:=VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
pNext:=nil;
swapchainCount:=aSwapchainCount;
pTimes:=aPTimes;
end;
{$ifdef MoltenVK_IOS}
constructor TVkIOSSurfaceCreateInfoMVK.Create(const aFlags:TVkIOSSurfaceCreateFlagsMVK;
const aPView:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
pNext:=nil;
flags:=aFlags;
pView:=aPView;
end;
{$endif}
{$ifdef MoltenVK_MacOS}
constructor TVkMacOSSurfaceCreateInfoMVK.Create(const aFlags:TVkMacOSSurfaceCreateFlagsMVK;
const aPView:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
pNext:=nil;
flags:=aFlags;
pView:=aPView;
end;
{$endif}
constructor TVkMetalSurfaceCreateInfoEXT.Create(const aFlags:TVkMetalSurfaceCreateFlagsEXT;
const aPLayer:PVkCAMetalLayer);
begin
sType:=VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
pLayer:=aPLayer;
end;
constructor TVkViewportWScalingNV.Create(const aXcoeff:TVkFloat;
const aYcoeff:TVkFloat);
begin
xcoeff:=aXcoeff;
ycoeff:=aYcoeff;
end;
constructor TVkPipelineViewportWScalingStateCreateInfoNV.Create(const aViewportWScalingEnable:TVkBool32;
const aViewportCount:TVkUInt32;
const aPViewportWScalings:PVkViewportWScalingNV);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
pNext:=nil;
viewportWScalingEnable:=aViewportWScalingEnable;
viewportCount:=aViewportCount;
pViewportWScalings:=aPViewportWScalings;
end;
constructor TVkViewportSwizzleNV.Create(const aX:TVkViewportCoordinateSwizzleNV;
const aY:TVkViewportCoordinateSwizzleNV;
const aZ:TVkViewportCoordinateSwizzleNV;
const aW:TVkViewportCoordinateSwizzleNV);
begin
x:=aX;
y:=aY;
z:=aZ;
w:=aW;
end;
constructor TVkPipelineViewportSwizzleStateCreateInfoNV.Create(const aFlags:TVkPipelineViewportSwizzleStateCreateFlagsNV;
const aViewportCount:TVkUInt32;
const aPViewportSwizzles:PVkViewportSwizzleNV);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
viewportCount:=aViewportCount;
pViewportSwizzles:=aPViewportSwizzles;
end;
constructor TVkPhysicalDeviceDiscardRectanglePropertiesEXT.Create(const aMaxDiscardRectangles:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
pNext:=nil;
maxDiscardRectangles:=aMaxDiscardRectangles;
end;
constructor TVkPipelineDiscardRectangleStateCreateInfoEXT.Create(const aFlags:TVkPipelineDiscardRectangleStateCreateFlagsEXT;
const aDiscardRectangleMode:TVkDiscardRectangleModeEXT;
const aDiscardRectangleCount:TVkUInt32;
const aPDiscardRectangles:PVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
discardRectangleMode:=aDiscardRectangleMode;
discardRectangleCount:=aDiscardRectangleCount;
pDiscardRectangles:=aPDiscardRectangles;
end;
constructor TVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.Create(const aPerViewPositionAllComponents:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
pNext:=nil;
perViewPositionAllComponents:=aPerViewPositionAllComponents;
end;
constructor TVkInputAttachmentAspectReference.Create(const aSubpass:TVkUInt32;
const aInputAttachmentIndex:TVkUInt32;
const aAspectMask:TVkImageAspectFlags);
begin
subpass:=aSubpass;
inputAttachmentIndex:=aInputAttachmentIndex;
aspectMask:=aAspectMask;
end;
constructor TVkRenderPassInputAttachmentAspectCreateInfo.Create(const aAspectReferenceCount:TVkUInt32;
const aPAspectReferences:PVkInputAttachmentAspectReference);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
pNext:=nil;
aspectReferenceCount:=aAspectReferenceCount;
pAspectReferences:=aPAspectReferences;
end;
constructor TVkPhysicalDeviceSurfaceInfo2KHR.Create(const aSurface:TVkSurfaceKHR);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
pNext:=nil;
surface:=aSurface;
end;
constructor TVkSurfaceCapabilities2KHR.Create(const aSurfaceCapabilities:TVkSurfaceCapabilitiesKHR);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
pNext:=nil;
surfaceCapabilities:=aSurfaceCapabilities;
end;
constructor TVkSurfaceFormat2KHR.Create(const aSurfaceFormat:TVkSurfaceFormatKHR);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
pNext:=nil;
surfaceFormat:=aSurfaceFormat;
end;
constructor TVkDisplayProperties2KHR.Create(const aDisplayProperties:TVkDisplayPropertiesKHR);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
pNext:=nil;
displayProperties:=aDisplayProperties;
end;
constructor TVkDisplayPlaneProperties2KHR.Create(const aDisplayPlaneProperties:TVkDisplayPlanePropertiesKHR);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
pNext:=nil;
displayPlaneProperties:=aDisplayPlaneProperties;
end;
constructor TVkDisplayModeProperties2KHR.Create(const aDisplayModeProperties:TVkDisplayModePropertiesKHR);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
pNext:=nil;
displayModeProperties:=aDisplayModeProperties;
end;
constructor TVkDisplayPlaneInfo2KHR.Create(const aMode:TVkDisplayModeKHR;
const aPlaneIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
pNext:=nil;
mode:=aMode;
planeIndex:=aPlaneIndex;
end;
constructor TVkDisplayPlaneCapabilities2KHR.Create(const aCapabilities:TVkDisplayPlaneCapabilitiesKHR);
begin
sType:=VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
pNext:=nil;
capabilities:=aCapabilities;
end;
constructor TVkSharedPresentSurfaceCapabilitiesKHR.Create(const aSharedPresentSupportedUsageFlags:TVkImageUsageFlags);
begin
sType:=VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
pNext:=nil;
sharedPresentSupportedUsageFlags:=aSharedPresentSupportedUsageFlags;
end;
constructor TVkPhysicalDevice16BitStorageFeatures.Create(const aStorageBuffer16BitAccess:TVkBool32;
const aUniformAndStorageBuffer16BitAccess:TVkBool32;
const aStoragePushConstant16:TVkBool32;
const aStorageInputOutput16:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
pNext:=nil;
storageBuffer16BitAccess:=aStorageBuffer16BitAccess;
uniformAndStorageBuffer16BitAccess:=aUniformAndStorageBuffer16BitAccess;
storagePushConstant16:=aStoragePushConstant16;
storageInputOutput16:=aStorageInputOutput16;
end;
constructor TVkPhysicalDeviceSubgroupProperties.Create(const aSubgroupSize:TVkUInt32;
const aSupportedStages:TVkShaderStageFlags;
const aSupportedOperations:TVkSubgroupFeatureFlags;
const aQuadOperationsInAllStages:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
pNext:=nil;
subgroupSize:=aSubgroupSize;
supportedStages:=aSupportedStages;
supportedOperations:=aSupportedOperations;
quadOperationsInAllStages:=aQuadOperationsInAllStages;
end;
constructor TVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.Create(const aShaderSubgroupExtendedTypes:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
pNext:=nil;
shaderSubgroupExtendedTypes:=aShaderSubgroupExtendedTypes;
end;
constructor TVkBufferMemoryRequirementsInfo2.Create(const aBuffer:TVkBuffer);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
pNext:=nil;
buffer:=aBuffer;
end;
constructor TVkImageMemoryRequirementsInfo2.Create(const aImage:TVkImage);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
pNext:=nil;
image:=aImage;
end;
constructor TVkImageSparseMemoryRequirementsInfo2.Create(const aImage:TVkImage);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
pNext:=nil;
image:=aImage;
end;
constructor TVkMemoryRequirements2.Create(const aMemoryRequirements:TVkMemoryRequirements);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
pNext:=nil;
memoryRequirements:=aMemoryRequirements;
end;
constructor TVkSparseImageMemoryRequirements2.Create(const aMemoryRequirements:TVkSparseImageMemoryRequirements);
begin
sType:=VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
pNext:=nil;
memoryRequirements:=aMemoryRequirements;
end;
constructor TVkPhysicalDevicePointClippingProperties.Create(const aPointClippingBehavior:TVkPointClippingBehavior);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
pNext:=nil;
pointClippingBehavior:=aPointClippingBehavior;
end;
constructor TVkMemoryDedicatedRequirements.Create(const aPrefersDedicatedAllocation:TVkBool32;
const aRequiresDedicatedAllocation:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
pNext:=nil;
prefersDedicatedAllocation:=aPrefersDedicatedAllocation;
requiresDedicatedAllocation:=aRequiresDedicatedAllocation;
end;
constructor TVkMemoryDedicatedAllocateInfo.Create(const aImage:TVkImage;
const aBuffer:TVkBuffer);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
pNext:=nil;
image:=aImage;
buffer:=aBuffer;
end;
constructor TVkImageViewUsageCreateInfo.Create(const aUsage:TVkImageUsageFlags);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
pNext:=nil;
usage:=aUsage;
end;
constructor TVkPipelineTessellationDomainOriginStateCreateInfo.Create(const aDomainOrigin:TVkTessellationDomainOrigin);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
pNext:=nil;
domainOrigin:=aDomainOrigin;
end;
constructor TVkSamplerYcbcrConversionInfo.Create(const aConversion:TVkSamplerYcbcrConversion);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
pNext:=nil;
conversion:=aConversion;
end;
constructor TVkSamplerYcbcrConversionCreateInfo.Create(const aFormat:TVkFormat;
const aYcbcrModel:TVkSamplerYcbcrModelConversion;
const aYcbcrRange:TVkSamplerYcbcrRange;
const aComponents:TVkComponentMapping;
const aXChromaOffset:TVkChromaLocation;
const aYChromaOffset:TVkChromaLocation;
const aChromaFilter:TVkFilter;
const aForceExplicitReconstruction:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
pNext:=nil;
format:=aFormat;
ycbcrModel:=aYcbcrModel;
ycbcrRange:=aYcbcrRange;
components:=aComponents;
xChromaOffset:=aXChromaOffset;
yChromaOffset:=aYChromaOffset;
chromaFilter:=aChromaFilter;
forceExplicitReconstruction:=aForceExplicitReconstruction;
end;
constructor TVkBindImagePlaneMemoryInfo.Create(const aPlaneAspect:TVkImageAspectFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
pNext:=nil;
planeAspect:=aPlaneAspect;
end;
constructor TVkImagePlaneMemoryRequirementsInfo.Create(const aPlaneAspect:TVkImageAspectFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
pNext:=nil;
planeAspect:=aPlaneAspect;
end;
constructor TVkPhysicalDeviceSamplerYcbcrConversionFeatures.Create(const aSamplerYcbcrConversion:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
pNext:=nil;
samplerYcbcrConversion:=aSamplerYcbcrConversion;
end;
constructor TVkSamplerYcbcrConversionImageFormatProperties.Create(const aCombinedImageSamplerDescriptorCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
pNext:=nil;
combinedImageSamplerDescriptorCount:=aCombinedImageSamplerDescriptorCount;
end;
constructor TVkTextureLODGatherFormatPropertiesAMD.Create(const aSupportsTextureGatherLODBiasAMD:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
pNext:=nil;
supportsTextureGatherLODBiasAMD:=aSupportsTextureGatherLODBiasAMD;
end;
constructor TVkConditionalRenderingBeginInfoEXT.Create(const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aFlags:TVkConditionalRenderingFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
pNext:=nil;
buffer:=aBuffer;
offset:=aOffset;
flags:=aFlags;
end;
constructor TVkProtectedSubmitInfo.Create(const aProtectedSubmit:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO;
pNext:=nil;
protectedSubmit:=aProtectedSubmit;
end;
constructor TVkPhysicalDeviceProtectedMemoryFeatures.Create(const aProtectedMemory:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
pNext:=nil;
protectedMemory:=aProtectedMemory;
end;
constructor TVkPhysicalDeviceProtectedMemoryProperties.Create(const aProtectedNoFault:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
pNext:=nil;
protectedNoFault:=aProtectedNoFault;
end;
constructor TVkDeviceQueueInfo2.Create(const aFlags:TVkDeviceQueueCreateFlags;
const aQueueFamilyIndex:TVkUInt32;
const aQueueIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
pNext:=nil;
flags:=aFlags;
queueFamilyIndex:=aQueueFamilyIndex;
queueIndex:=aQueueIndex;
end;
constructor TVkPipelineCoverageToColorStateCreateInfoNV.Create(const aFlags:TVkPipelineCoverageToColorStateCreateFlagsNV;
const aCoverageToColorEnable:TVkBool32;
const aCoverageToColorLocation:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
coverageToColorEnable:=aCoverageToColorEnable;
coverageToColorLocation:=aCoverageToColorLocation;
end;
constructor TVkPhysicalDeviceSamplerFilterMinmaxProperties.Create(const aFilterMinmaxSingleComponentFormats:TVkBool32;
const aFilterMinmaxImageComponentMapping:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
pNext:=nil;
filterMinmaxSingleComponentFormats:=aFilterMinmaxSingleComponentFormats;
filterMinmaxImageComponentMapping:=aFilterMinmaxImageComponentMapping;
end;
constructor TVkSampleLocationEXT.Create(const aX:TVkFloat;
const aY:TVkFloat);
begin
x:=aX;
y:=aY;
end;
constructor TVkSampleLocationsInfoEXT.Create(const aSampleLocationsPerPixel:TVkSampleCountFlagBits;
const aSampleLocationGridSize:TVkExtent2D;
const aSampleLocationsCount:TVkUInt32;
const aPSampleLocations:PVkSampleLocationEXT);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
pNext:=nil;
sampleLocationsPerPixel:=aSampleLocationsPerPixel;
sampleLocationGridSize:=aSampleLocationGridSize;
sampleLocationsCount:=aSampleLocationsCount;
pSampleLocations:=aPSampleLocations;
end;
constructor TVkAttachmentSampleLocationsEXT.Create(const aAttachmentIndex:TVkUInt32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
begin
attachmentIndex:=aAttachmentIndex;
sampleLocationsInfo:=aSampleLocationsInfo;
end;
constructor TVkSubpassSampleLocationsEXT.Create(const aSubpassIndex:TVkUInt32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
begin
subpassIndex:=aSubpassIndex;
sampleLocationsInfo:=aSampleLocationsInfo;
end;
constructor TVkRenderPassSampleLocationsBeginInfoEXT.Create(const aAttachmentInitialSampleLocationsCount:TVkUInt32;
const aPAttachmentInitialSampleLocations:PVkAttachmentSampleLocationsEXT;
const aPostSubpassSampleLocationsCount:TVkUInt32;
const aPPostSubpassSampleLocations:PVkSubpassSampleLocationsEXT);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
pNext:=nil;
attachmentInitialSampleLocationsCount:=aAttachmentInitialSampleLocationsCount;
pAttachmentInitialSampleLocations:=aPAttachmentInitialSampleLocations;
postSubpassSampleLocationsCount:=aPostSubpassSampleLocationsCount;
pPostSubpassSampleLocations:=aPPostSubpassSampleLocations;
end;
constructor TVkPipelineSampleLocationsStateCreateInfoEXT.Create(const aSampleLocationsEnable:TVkBool32;
const aSampleLocationsInfo:TVkSampleLocationsInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
pNext:=nil;
sampleLocationsEnable:=aSampleLocationsEnable;
sampleLocationsInfo:=aSampleLocationsInfo;
end;
constructor TVkPhysicalDeviceSampleLocationsPropertiesEXT.Create(const aSampleLocationSampleCounts:TVkSampleCountFlags;
const aMaxSampleLocationGridSize:TVkExtent2D;
const aSampleLocationCoordinateRange:array of TVkFloat;
const aSampleLocationSubPixelBits:TVkUInt32;
const aVariableSampleLocations:TVkBool32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceSampleLocationsPropertiesEXT),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
pNext:=nil;
sampleLocationSampleCounts:=aSampleLocationSampleCounts;
maxSampleLocationGridSize:=aMaxSampleLocationGridSize;
ArrayItemCount:=length(aSampleLocationCoordinateRange);
if ArrayItemCount>length(sampleLocationCoordinateRange) then begin
ArrayItemCount:=length(sampleLocationCoordinateRange);
end;
if ArrayItemCount>0 then begin
Move(aSampleLocationCoordinateRange[0],sampleLocationCoordinateRange[0],ArrayItemCount*SizeOf(TVkFloat));
end;
sampleLocationSubPixelBits:=aSampleLocationSubPixelBits;
variableSampleLocations:=aVariableSampleLocations;
end;
constructor TVkMultisamplePropertiesEXT.Create(const aMaxSampleLocationGridSize:TVkExtent2D);
begin
sType:=VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
pNext:=nil;
maxSampleLocationGridSize:=aMaxSampleLocationGridSize;
end;
constructor TVkSamplerReductionModeCreateInfo.Create(const aReductionMode:TVkSamplerReductionMode);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
pNext:=nil;
reductionMode:=aReductionMode;
end;
constructor TVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.Create(const aAdvancedBlendCoherentOperations:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
pNext:=nil;
advancedBlendCoherentOperations:=aAdvancedBlendCoherentOperations;
end;
constructor TVkPhysicalDeviceMultiDrawFeaturesEXT.Create(const aMultiDraw:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
pNext:=nil;
multiDraw:=aMultiDraw;
end;
constructor TVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.Create(const aAdvancedBlendMaxColorAttachments:TVkUInt32;
const aAdvancedBlendIndependentBlend:TVkBool32;
const aAdvancedBlendNonPremultipliedSrcColor:TVkBool32;
const aAdvancedBlendNonPremultipliedDstColor:TVkBool32;
const aAdvancedBlendCorrelatedOverlap:TVkBool32;
const aAdvancedBlendAllOperations:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
pNext:=nil;
advancedBlendMaxColorAttachments:=aAdvancedBlendMaxColorAttachments;
advancedBlendIndependentBlend:=aAdvancedBlendIndependentBlend;
advancedBlendNonPremultipliedSrcColor:=aAdvancedBlendNonPremultipliedSrcColor;
advancedBlendNonPremultipliedDstColor:=aAdvancedBlendNonPremultipliedDstColor;
advancedBlendCorrelatedOverlap:=aAdvancedBlendCorrelatedOverlap;
advancedBlendAllOperations:=aAdvancedBlendAllOperations;
end;
constructor TVkPipelineColorBlendAdvancedStateCreateInfoEXT.Create(const aSrcPremultiplied:TVkBool32;
const aDstPremultiplied:TVkBool32;
const aBlendOverlap:TVkBlendOverlapEXT);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
pNext:=nil;
srcPremultiplied:=aSrcPremultiplied;
dstPremultiplied:=aDstPremultiplied;
blendOverlap:=aBlendOverlap;
end;
constructor TVkPhysicalDeviceInlineUniformBlockFeaturesEXT.Create(const aInlineUniformBlock:TVkBool32;
const aDescriptorBindingInlineUniformBlockUpdateAfterBind:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT;
pNext:=nil;
inlineUniformBlock:=aInlineUniformBlock;
descriptorBindingInlineUniformBlockUpdateAfterBind:=aDescriptorBindingInlineUniformBlockUpdateAfterBind;
end;
constructor TVkPhysicalDeviceInlineUniformBlockPropertiesEXT.Create(const aMaxInlineUniformBlockSize:TVkUInt32;
const aMaxPerStageDescriptorInlineUniformBlocks:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:TVkUInt32;
const aMaxDescriptorSetInlineUniformBlocks:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInlineUniformBlocks:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT;
pNext:=nil;
maxInlineUniformBlockSize:=aMaxInlineUniformBlockSize;
maxPerStageDescriptorInlineUniformBlocks:=aMaxPerStageDescriptorInlineUniformBlocks;
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks:=aMaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
maxDescriptorSetInlineUniformBlocks:=aMaxDescriptorSetInlineUniformBlocks;
maxDescriptorSetUpdateAfterBindInlineUniformBlocks:=aMaxDescriptorSetUpdateAfterBindInlineUniformBlocks;
end;
constructor TVkWriteDescriptorSetInlineUniformBlockEXT.Create(const aDataSize:TVkUInt32;
const aPData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT;
pNext:=nil;
dataSize:=aDataSize;
pData:=aPData;
end;
constructor TVkDescriptorPoolInlineUniformBlockCreateInfoEXT.Create(const aMaxInlineUniformBlockBindings:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT;
pNext:=nil;
maxInlineUniformBlockBindings:=aMaxInlineUniformBlockBindings;
end;
constructor TVkPipelineCoverageModulationStateCreateInfoNV.Create(const aFlags:TVkPipelineCoverageModulationStateCreateFlagsNV;
const aCoverageModulationMode:TVkCoverageModulationModeNV;
const aCoverageModulationTableEnable:TVkBool32;
const aCoverageModulationTableCount:TVkUInt32;
const aPCoverageModulationTable:PVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
coverageModulationMode:=aCoverageModulationMode;
coverageModulationTableEnable:=aCoverageModulationTableEnable;
coverageModulationTableCount:=aCoverageModulationTableCount;
pCoverageModulationTable:=aPCoverageModulationTable;
end;
constructor TVkImageFormatListCreateInfo.Create(const aViewFormatCount:TVkUInt32;
const aPViewFormats:PVkFormat);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
pNext:=nil;
viewFormatCount:=aViewFormatCount;
pViewFormats:=aPViewFormats;
end;
constructor TVkValidationCacheCreateInfoEXT.Create(const aFlags:TVkValidationCacheCreateFlagsEXT;
const aInitialDataSize:TVkSize;
const aPInitialData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
initialDataSize:=aInitialDataSize;
pInitialData:=aPInitialData;
end;
constructor TVkShaderModuleValidationCacheCreateInfoEXT.Create(const aValidationCache:TVkValidationCacheEXT);
begin
sType:=VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
pNext:=nil;
validationCache:=aValidationCache;
end;
constructor TVkPhysicalDeviceMaintenance3Properties.Create(const aMaxPerSetDescriptors:TVkUInt32;
const aMaxMemoryAllocationSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
pNext:=nil;
maxPerSetDescriptors:=aMaxPerSetDescriptors;
maxMemoryAllocationSize:=aMaxMemoryAllocationSize;
end;
constructor TVkDescriptorSetLayoutSupport.Create(const aSupported:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
pNext:=nil;
supported:=aSupported;
end;
constructor TVkPhysicalDeviceShaderDrawParametersFeatures.Create(const aShaderDrawParameters:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
pNext:=nil;
shaderDrawParameters:=aShaderDrawParameters;
end;
constructor TVkPhysicalDeviceShaderFloat16Int8Features.Create(const aShaderFloat16:TVkBool32;
const aShaderInt8:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
pNext:=nil;
shaderFloat16:=aShaderFloat16;
shaderInt8:=aShaderInt8;
end;
constructor TVkPhysicalDeviceFloatControlsProperties.Create(const aDenormBehaviorIndependence:TVkShaderFloatControlsIndependence;
const aRoundingModeIndependence:TVkShaderFloatControlsIndependence;
const aShaderSignedZeroInfNanPreserveFloat16:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat32:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat64:TVkBool32;
const aShaderDenormPreserveFloat16:TVkBool32;
const aShaderDenormPreserveFloat32:TVkBool32;
const aShaderDenormPreserveFloat64:TVkBool32;
const aShaderDenormFlushToZeroFloat16:TVkBool32;
const aShaderDenormFlushToZeroFloat32:TVkBool32;
const aShaderDenormFlushToZeroFloat64:TVkBool32;
const aShaderRoundingModeRTEFloat16:TVkBool32;
const aShaderRoundingModeRTEFloat32:TVkBool32;
const aShaderRoundingModeRTEFloat64:TVkBool32;
const aShaderRoundingModeRTZFloat16:TVkBool32;
const aShaderRoundingModeRTZFloat32:TVkBool32;
const aShaderRoundingModeRTZFloat64:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
pNext:=nil;
denormBehaviorIndependence:=aDenormBehaviorIndependence;
roundingModeIndependence:=aRoundingModeIndependence;
shaderSignedZeroInfNanPreserveFloat16:=aShaderSignedZeroInfNanPreserveFloat16;
shaderSignedZeroInfNanPreserveFloat32:=aShaderSignedZeroInfNanPreserveFloat32;
shaderSignedZeroInfNanPreserveFloat64:=aShaderSignedZeroInfNanPreserveFloat64;
shaderDenormPreserveFloat16:=aShaderDenormPreserveFloat16;
shaderDenormPreserveFloat32:=aShaderDenormPreserveFloat32;
shaderDenormPreserveFloat64:=aShaderDenormPreserveFloat64;
shaderDenormFlushToZeroFloat16:=aShaderDenormFlushToZeroFloat16;
shaderDenormFlushToZeroFloat32:=aShaderDenormFlushToZeroFloat32;
shaderDenormFlushToZeroFloat64:=aShaderDenormFlushToZeroFloat64;
shaderRoundingModeRTEFloat16:=aShaderRoundingModeRTEFloat16;
shaderRoundingModeRTEFloat32:=aShaderRoundingModeRTEFloat32;
shaderRoundingModeRTEFloat64:=aShaderRoundingModeRTEFloat64;
shaderRoundingModeRTZFloat16:=aShaderRoundingModeRTZFloat16;
shaderRoundingModeRTZFloat32:=aShaderRoundingModeRTZFloat32;
shaderRoundingModeRTZFloat64:=aShaderRoundingModeRTZFloat64;
end;
constructor TVkPhysicalDeviceHostQueryResetFeatures.Create(const aHostQueryReset:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
pNext:=nil;
hostQueryReset:=aHostQueryReset;
end;
{$ifdef Android}
constructor TVkNativeBufferUsage2ANDROID.Create(const aConsumer:TVkUInt64;
const aProducer:TVkUInt64);
begin
consumer:=aConsumer;
producer:=aProducer;
end;
{$endif}
{$ifdef Android}
constructor TVkNativeBufferANDROID.Create(const aHandle:PVkVoid;
const aStride:TVkInt32;
const aFormat:TVkInt32;
const aUsage:TVkInt32;
const aUsage2:TVkNativeBufferUsage2ANDROID);
begin
sType:=VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID;
pNext:=nil;
handle:=aHandle;
stride:=aStride;
format:=aFormat;
usage:=aUsage;
usage2:=aUsage2;
end;
{$endif}
{$ifdef Android}
constructor TVkSwapchainImageCreateInfoANDROID.Create(const aUsage:TVkSwapchainImageUsageFlagsANDROID);
begin
sType:=VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID;
pNext:=nil;
usage:=aUsage;
end;
{$endif}
{$ifdef Android}
constructor TVkPhysicalDevicePresentationPropertiesANDROID.Create(const aSharedImage:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID;
pNext:=nil;
sharedImage:=aSharedImage;
end;
{$endif}
constructor TVkShaderResourceUsageAMD.Create(const aNumUsedVgprs:TVkUInt32;
const aNumUsedSgprs:TVkUInt32;
const aLdsSizePerLocalWorkGroup:TVkUInt32;
const aLdsUsageSizeInBytes:TVkSize;
const aScratchMemUsageInBytes:TVkSize);
begin
numUsedVgprs:=aNumUsedVgprs;
numUsedSgprs:=aNumUsedSgprs;
ldsSizePerLocalWorkGroup:=aLdsSizePerLocalWorkGroup;
ldsUsageSizeInBytes:=aLdsUsageSizeInBytes;
scratchMemUsageInBytes:=aScratchMemUsageInBytes;
end;
constructor TVkShaderStatisticsInfoAMD.Create(const aShaderStageMask:TVkShaderStageFlags;
const aResourceUsage:TVkShaderResourceUsageAMD;
const aNumPhysicalVgprs:TVkUInt32;
const aNumPhysicalSgprs:TVkUInt32;
const aNumAvailableVgprs:TVkUInt32;
const aNumAvailableSgprs:TVkUInt32;
const aComputeWorkGroupSize:array of TVkUInt32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkShaderStatisticsInfoAMD),#0);
shaderStageMask:=aShaderStageMask;
resourceUsage:=aResourceUsage;
numPhysicalVgprs:=aNumPhysicalVgprs;
numPhysicalSgprs:=aNumPhysicalSgprs;
numAvailableVgprs:=aNumAvailableVgprs;
numAvailableSgprs:=aNumAvailableSgprs;
ArrayItemCount:=length(aComputeWorkGroupSize);
if ArrayItemCount>length(computeWorkGroupSize) then begin
ArrayItemCount:=length(computeWorkGroupSize);
end;
if ArrayItemCount>0 then begin
Move(aComputeWorkGroupSize[0],computeWorkGroupSize[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
end;
constructor TVkDeviceQueueGlobalPriorityCreateInfoEXT.Create(const aGlobalPriority:TVkQueueGlobalPriorityEXT);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT;
pNext:=nil;
globalPriority:=aGlobalPriority;
end;
constructor TVkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.Create(const aGlobalPriorityQuery:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT;
pNext:=nil;
globalPriorityQuery:=aGlobalPriorityQuery;
end;
constructor TVkQueueFamilyGlobalPriorityPropertiesEXT.Create(const aPriorityCount:TVkUInt32;
const aPriorities:array of TVkQueueGlobalPriorityEXT);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkQueueFamilyGlobalPriorityPropertiesEXT),#0);
sType:=VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT;
pNext:=nil;
priorityCount:=aPriorityCount;
ArrayItemCount:=length(aPriorities);
if ArrayItemCount>length(priorities) then begin
ArrayItemCount:=length(priorities);
end;
if ArrayItemCount>0 then begin
Move(aPriorities[0],priorities[0],ArrayItemCount*SizeOf(TVkQueueGlobalPriorityEXT));
end;
end;
constructor TVkDebugUtilsLabelEXT.Create(const aPLabelName:PVkChar;
const aColor:array of TVkFloat);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkDebugUtilsLabelEXT),#0);
sType:=VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
pNext:=nil;
pLabelName:=aPLabelName;
ArrayItemCount:=length(aColor);
if ArrayItemCount>length(color) then begin
ArrayItemCount:=length(color);
end;
if ArrayItemCount>0 then begin
Move(aColor[0],color[0],ArrayItemCount*SizeOf(TVkFloat));
end;
end;
constructor TVkDebugUtilsObjectTagInfoEXT.Create(const aObjectType:TVkObjectType;
const aObjectHandle:TVkUInt64;
const aTagName:TVkUInt64;
const aTagSize:TVkSize;
const aPTag:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
pNext:=nil;
objectType:=aObjectType;
objectHandle:=aObjectHandle;
tagName:=aTagName;
tagSize:=aTagSize;
pTag:=aPTag;
end;
constructor TVkDebugUtilsMessengerCallbackDataEXT.Create(const aFlags:TVkDebugUtilsMessengerCallbackDataFlagsEXT;
const aPMessageIdName:PVkChar;
const aMessageIdNumber:TVkInt32;
const aPMessage:PVkChar;
const aQueueLabelCount:TVkUInt32;
const aPQueueLabels:PVkDebugUtilsLabelEXT;
const aCmdBufLabelCount:TVkUInt32;
const aPCmdBufLabels:PVkDebugUtilsLabelEXT;
const aObjectCount:TVkUInt32;
const aPObjects:PVkDebugUtilsObjectNameInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
pNext:=nil;
flags:=aFlags;
pMessageIdName:=aPMessageIdName;
messageIdNumber:=aMessageIdNumber;
pMessage:=aPMessage;
queueLabelCount:=aQueueLabelCount;
pQueueLabels:=aPQueueLabels;
cmdBufLabelCount:=aCmdBufLabelCount;
pCmdBufLabels:=aPCmdBufLabels;
objectCount:=aObjectCount;
pObjects:=aPObjects;
end;
constructor TVkDebugUtilsMessengerCreateInfoEXT.Create(const aFlags:TVkDebugUtilsMessengerCreateFlagsEXT;
const aMessageSeverity:TVkDebugUtilsMessageSeverityFlagsEXT;
const aMessageType:TVkDebugUtilsMessageTypeFlagsEXT;
const aPfnUserCallback:TPFN_vkDebugUtilsMessengerCallbackEXT;
const aPUserData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
messageSeverity:=aMessageSeverity;
messageType:=aMessageType;
pfnUserCallback:=aPfnUserCallback;
pUserData:=aPUserData;
end;
constructor TVkPhysicalDeviceDeviceMemoryReportFeaturesEXT.Create(const aDeviceMemoryReport:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
pNext:=nil;
deviceMemoryReport:=aDeviceMemoryReport;
end;
constructor TVkDeviceDeviceMemoryReportCreateInfoEXT.Create(const aFlags:TVkDeviceMemoryReportFlagsEXT;
const aPfnUserCallback:TPFN_vkDeviceMemoryReportCallbackEXT;
const aPUserData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
pfnUserCallback:=aPfnUserCallback;
pUserData:=aPUserData;
end;
constructor TVkImportMemoryHostPointerInfoEXT.Create(const aHandleType:TVkExternalMemoryHandleTypeFlagBits;
const aPHostPointer:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
pNext:=nil;
handleType:=aHandleType;
pHostPointer:=aPHostPointer;
end;
constructor TVkMemoryHostPointerPropertiesEXT.Create(const aMemoryTypeBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
pNext:=nil;
memoryTypeBits:=aMemoryTypeBits;
end;
constructor TVkPhysicalDeviceExternalMemoryHostPropertiesEXT.Create(const aMinImportedHostPointerAlignment:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
pNext:=nil;
minImportedHostPointerAlignment:=aMinImportedHostPointerAlignment;
end;
constructor TVkPhysicalDeviceConservativeRasterizationPropertiesEXT.Create(const aPrimitiveOverestimationSize:TVkFloat;
const aMaxExtraPrimitiveOverestimationSize:TVkFloat;
const aExtraPrimitiveOverestimationSizeGranularity:TVkFloat;
const aPrimitiveUnderestimation:TVkBool32;
const aConservativePointAndLineRasterization:TVkBool32;
const aDegenerateTrianglesRasterized:TVkBool32;
const aDegenerateLinesRasterized:TVkBool32;
const aFullyCoveredFragmentShaderInputVariable:TVkBool32;
const aConservativeRasterizationPostDepthCoverage:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
pNext:=nil;
primitiveOverestimationSize:=aPrimitiveOverestimationSize;
maxExtraPrimitiveOverestimationSize:=aMaxExtraPrimitiveOverestimationSize;
extraPrimitiveOverestimationSizeGranularity:=aExtraPrimitiveOverestimationSizeGranularity;
primitiveUnderestimation:=aPrimitiveUnderestimation;
conservativePointAndLineRasterization:=aConservativePointAndLineRasterization;
degenerateTrianglesRasterized:=aDegenerateTrianglesRasterized;
degenerateLinesRasterized:=aDegenerateLinesRasterized;
fullyCoveredFragmentShaderInputVariable:=aFullyCoveredFragmentShaderInputVariable;
conservativeRasterizationPostDepthCoverage:=aConservativeRasterizationPostDepthCoverage;
end;
constructor TVkCalibratedTimestampInfoEXT.Create(const aTimeDomain:TVkTimeDomainEXT);
begin
sType:=VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
pNext:=nil;
timeDomain:=aTimeDomain;
end;
constructor TVkPhysicalDeviceShaderCorePropertiesAMD.Create(const aShaderEngineCount:TVkUInt32;
const aShaderArraysPerEngineCount:TVkUInt32;
const aComputeUnitsPerShaderArray:TVkUInt32;
const aSimdPerComputeUnit:TVkUInt32;
const aWavefrontsPerSimd:TVkUInt32;
const aWavefrontSize:TVkUInt32;
const aSgprsPerSimd:TVkUInt32;
const aMinSgprAllocation:TVkUInt32;
const aMaxSgprAllocation:TVkUInt32;
const aSgprAllocationGranularity:TVkUInt32;
const aVgprsPerSimd:TVkUInt32;
const aMinVgprAllocation:TVkUInt32;
const aMaxVgprAllocation:TVkUInt32;
const aVgprAllocationGranularity:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
pNext:=nil;
shaderEngineCount:=aShaderEngineCount;
shaderArraysPerEngineCount:=aShaderArraysPerEngineCount;
computeUnitsPerShaderArray:=aComputeUnitsPerShaderArray;
simdPerComputeUnit:=aSimdPerComputeUnit;
wavefrontsPerSimd:=aWavefrontsPerSimd;
wavefrontSize:=aWavefrontSize;
sgprsPerSimd:=aSgprsPerSimd;
minSgprAllocation:=aMinSgprAllocation;
maxSgprAllocation:=aMaxSgprAllocation;
sgprAllocationGranularity:=aSgprAllocationGranularity;
vgprsPerSimd:=aVgprsPerSimd;
minVgprAllocation:=aMinVgprAllocation;
maxVgprAllocation:=aMaxVgprAllocation;
vgprAllocationGranularity:=aVgprAllocationGranularity;
end;
constructor TVkPhysicalDeviceShaderCoreProperties2AMD.Create(const aShaderCoreFeatures:TVkShaderCorePropertiesFlagsAMD;
const aActiveComputeUnitCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
pNext:=nil;
shaderCoreFeatures:=aShaderCoreFeatures;
activeComputeUnitCount:=aActiveComputeUnitCount;
end;
constructor TVkPipelineRasterizationConservativeStateCreateInfoEXT.Create(const aFlags:TVkPipelineRasterizationConservativeStateCreateFlagsEXT;
const aConservativeRasterizationMode:TVkConservativeRasterizationModeEXT;
const aExtraPrimitiveOverestimationSize:TVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
conservativeRasterizationMode:=aConservativeRasterizationMode;
extraPrimitiveOverestimationSize:=aExtraPrimitiveOverestimationSize;
end;
constructor TVkPhysicalDeviceDescriptorIndexingFeatures.Create(const aShaderInputAttachmentArrayDynamicIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderUniformBufferArrayNonUniformIndexing:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexing:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexing:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
const aDescriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingSampledImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUpdateUnusedWhilePending:TVkBool32;
const aDescriptorBindingPartiallyBound:TVkBool32;
const aDescriptorBindingVariableDescriptorCount:TVkBool32;
const aRuntimeDescriptorArray:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
pNext:=nil;
shaderInputAttachmentArrayDynamicIndexing:=aShaderInputAttachmentArrayDynamicIndexing;
shaderUniformTexelBufferArrayDynamicIndexing:=aShaderUniformTexelBufferArrayDynamicIndexing;
shaderStorageTexelBufferArrayDynamicIndexing:=aShaderStorageTexelBufferArrayDynamicIndexing;
shaderUniformBufferArrayNonUniformIndexing:=aShaderUniformBufferArrayNonUniformIndexing;
shaderSampledImageArrayNonUniformIndexing:=aShaderSampledImageArrayNonUniformIndexing;
shaderStorageBufferArrayNonUniformIndexing:=aShaderStorageBufferArrayNonUniformIndexing;
shaderStorageImageArrayNonUniformIndexing:=aShaderStorageImageArrayNonUniformIndexing;
shaderInputAttachmentArrayNonUniformIndexing:=aShaderInputAttachmentArrayNonUniformIndexing;
shaderUniformTexelBufferArrayNonUniformIndexing:=aShaderUniformTexelBufferArrayNonUniformIndexing;
shaderStorageTexelBufferArrayNonUniformIndexing:=aShaderStorageTexelBufferArrayNonUniformIndexing;
descriptorBindingUniformBufferUpdateAfterBind:=aDescriptorBindingUniformBufferUpdateAfterBind;
descriptorBindingSampledImageUpdateAfterBind:=aDescriptorBindingSampledImageUpdateAfterBind;
descriptorBindingStorageImageUpdateAfterBind:=aDescriptorBindingStorageImageUpdateAfterBind;
descriptorBindingStorageBufferUpdateAfterBind:=aDescriptorBindingStorageBufferUpdateAfterBind;
descriptorBindingUniformTexelBufferUpdateAfterBind:=aDescriptorBindingUniformTexelBufferUpdateAfterBind;
descriptorBindingStorageTexelBufferUpdateAfterBind:=aDescriptorBindingStorageTexelBufferUpdateAfterBind;
descriptorBindingUpdateUnusedWhilePending:=aDescriptorBindingUpdateUnusedWhilePending;
descriptorBindingPartiallyBound:=aDescriptorBindingPartiallyBound;
descriptorBindingVariableDescriptorCount:=aDescriptorBindingVariableDescriptorCount;
runtimeDescriptorArray:=aRuntimeDescriptorArray;
end;
constructor TVkPhysicalDeviceDescriptorIndexingProperties.Create(const aMaxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
const aShaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
const aRobustBufferAccessUpdateAfterBind:TVkBool32;
const aQuadDivergentImplicitLod:TVkBool32;
const aMaxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
const aMaxPerStageUpdateAfterBindResources:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
pNext:=nil;
maxUpdateAfterBindDescriptorsInAllPools:=aMaxUpdateAfterBindDescriptorsInAllPools;
shaderUniformBufferArrayNonUniformIndexingNative:=aShaderUniformBufferArrayNonUniformIndexingNative;
shaderSampledImageArrayNonUniformIndexingNative:=aShaderSampledImageArrayNonUniformIndexingNative;
shaderStorageBufferArrayNonUniformIndexingNative:=aShaderStorageBufferArrayNonUniformIndexingNative;
shaderStorageImageArrayNonUniformIndexingNative:=aShaderStorageImageArrayNonUniformIndexingNative;
shaderInputAttachmentArrayNonUniformIndexingNative:=aShaderInputAttachmentArrayNonUniformIndexingNative;
robustBufferAccessUpdateAfterBind:=aRobustBufferAccessUpdateAfterBind;
quadDivergentImplicitLod:=aQuadDivergentImplicitLod;
maxPerStageDescriptorUpdateAfterBindSamplers:=aMaxPerStageDescriptorUpdateAfterBindSamplers;
maxPerStageDescriptorUpdateAfterBindUniformBuffers:=aMaxPerStageDescriptorUpdateAfterBindUniformBuffers;
maxPerStageDescriptorUpdateAfterBindStorageBuffers:=aMaxPerStageDescriptorUpdateAfterBindStorageBuffers;
maxPerStageDescriptorUpdateAfterBindSampledImages:=aMaxPerStageDescriptorUpdateAfterBindSampledImages;
maxPerStageDescriptorUpdateAfterBindStorageImages:=aMaxPerStageDescriptorUpdateAfterBindStorageImages;
maxPerStageDescriptorUpdateAfterBindInputAttachments:=aMaxPerStageDescriptorUpdateAfterBindInputAttachments;
maxPerStageUpdateAfterBindResources:=aMaxPerStageUpdateAfterBindResources;
maxDescriptorSetUpdateAfterBindSamplers:=aMaxDescriptorSetUpdateAfterBindSamplers;
maxDescriptorSetUpdateAfterBindUniformBuffers:=aMaxDescriptorSetUpdateAfterBindUniformBuffers;
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic:=aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
maxDescriptorSetUpdateAfterBindStorageBuffers:=aMaxDescriptorSetUpdateAfterBindStorageBuffers;
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic:=aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
maxDescriptorSetUpdateAfterBindSampledImages:=aMaxDescriptorSetUpdateAfterBindSampledImages;
maxDescriptorSetUpdateAfterBindStorageImages:=aMaxDescriptorSetUpdateAfterBindStorageImages;
maxDescriptorSetUpdateAfterBindInputAttachments:=aMaxDescriptorSetUpdateAfterBindInputAttachments;
end;
constructor TVkDescriptorSetLayoutBindingFlagsCreateInfo.Create(const aBindingCount:TVkUInt32;
const aPBindingFlags:PVkDescriptorBindingFlags);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
pNext:=nil;
bindingCount:=aBindingCount;
pBindingFlags:=aPBindingFlags;
end;
constructor TVkDescriptorSetVariableDescriptorCountAllocateInfo.Create(const aDescriptorSetCount:TVkUInt32;
const aPDescriptorCounts:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
pNext:=nil;
descriptorSetCount:=aDescriptorSetCount;
pDescriptorCounts:=aPDescriptorCounts;
end;
constructor TVkDescriptorSetVariableDescriptorCountLayoutSupport.Create(const aMaxVariableDescriptorCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
pNext:=nil;
maxVariableDescriptorCount:=aMaxVariableDescriptorCount;
end;
constructor TVkAttachmentDescription2.Create(const aFlags:TVkAttachmentDescriptionFlags;
const aFormat:TVkFormat;
const aSamples:TVkSampleCountFlagBits;
const aLoadOp:TVkAttachmentLoadOp;
const aStoreOp:TVkAttachmentStoreOp;
const aStencilLoadOp:TVkAttachmentLoadOp;
const aStencilStoreOp:TVkAttachmentStoreOp;
const aInitialLayout:TVkImageLayout;
const aFinalLayout:TVkImageLayout);
begin
sType:=VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
pNext:=nil;
flags:=aFlags;
format:=aFormat;
samples:=aSamples;
loadOp:=aLoadOp;
storeOp:=aStoreOp;
stencilLoadOp:=aStencilLoadOp;
stencilStoreOp:=aStencilStoreOp;
initialLayout:=aInitialLayout;
finalLayout:=aFinalLayout;
end;
constructor TVkAttachmentReference2.Create(const aAttachment:TVkUInt32;
const aLayout:TVkImageLayout;
const aAspectMask:TVkImageAspectFlags);
begin
sType:=VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
pNext:=nil;
attachment:=aAttachment;
layout:=aLayout;
aspectMask:=aAspectMask;
end;
constructor TVkSubpassDescription2.Create(const aFlags:TVkSubpassDescriptionFlags;
const aPipelineBindPoint:TVkPipelineBindPoint;
const aViewMask:TVkUInt32;
const aInputAttachmentCount:TVkUInt32;
const aPInputAttachments:PVkAttachmentReference2;
const aColorAttachmentCount:TVkUInt32;
const aPColorAttachments:PVkAttachmentReference2;
const aPResolveAttachments:PVkAttachmentReference2;
const aPDepthStencilAttachment:PVkAttachmentReference2;
const aPreserveAttachmentCount:TVkUInt32;
const aPPreserveAttachments:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
pNext:=nil;
flags:=aFlags;
pipelineBindPoint:=aPipelineBindPoint;
viewMask:=aViewMask;
inputAttachmentCount:=aInputAttachmentCount;
pInputAttachments:=aPInputAttachments;
colorAttachmentCount:=aColorAttachmentCount;
pColorAttachments:=aPColorAttachments;
pResolveAttachments:=aPResolveAttachments;
pDepthStencilAttachment:=aPDepthStencilAttachment;
preserveAttachmentCount:=aPreserveAttachmentCount;
pPreserveAttachments:=aPPreserveAttachments;
end;
constructor TVkSubpassDependency2.Create(const aSrcSubpass:TVkUInt32;
const aDstSubpass:TVkUInt32;
const aSrcStageMask:TVkPipelineStageFlags;
const aDstStageMask:TVkPipelineStageFlags;
const aSrcAccessMask:TVkAccessFlags;
const aDstAccessMask:TVkAccessFlags;
const aDependencyFlags:TVkDependencyFlags;
const aViewOffset:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
pNext:=nil;
srcSubpass:=aSrcSubpass;
dstSubpass:=aDstSubpass;
srcStageMask:=aSrcStageMask;
dstStageMask:=aDstStageMask;
srcAccessMask:=aSrcAccessMask;
dstAccessMask:=aDstAccessMask;
dependencyFlags:=aDependencyFlags;
viewOffset:=aViewOffset;
end;
constructor TVkRenderPassCreateInfo2.Create(const aFlags:TVkRenderPassCreateFlags;
const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkAttachmentDescription2;
const aSubpassCount:TVkUInt32;
const aPSubpasses:PVkSubpassDescription2;
const aDependencyCount:TVkUInt32;
const aPDependencies:PVkSubpassDependency2;
const aCorrelatedViewMaskCount:TVkUInt32;
const aPCorrelatedViewMasks:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
pNext:=nil;
flags:=aFlags;
attachmentCount:=aAttachmentCount;
pAttachments:=aPAttachments;
subpassCount:=aSubpassCount;
pSubpasses:=aPSubpasses;
dependencyCount:=aDependencyCount;
pDependencies:=aPDependencies;
correlatedViewMaskCount:=aCorrelatedViewMaskCount;
pCorrelatedViewMasks:=aPCorrelatedViewMasks;
end;
constructor TVkSubpassBeginInfo.Create(const aContents:TVkSubpassContents);
begin
sType:=VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
pNext:=nil;
contents:=aContents;
end;
constructor TVkPhysicalDeviceTimelineSemaphoreFeatures.Create(const aTimelineSemaphore:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
pNext:=nil;
timelineSemaphore:=aTimelineSemaphore;
end;
constructor TVkPhysicalDeviceTimelineSemaphoreProperties.Create(const aMaxTimelineSemaphoreValueDifference:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
pNext:=nil;
maxTimelineSemaphoreValueDifference:=aMaxTimelineSemaphoreValueDifference;
end;
constructor TVkSemaphoreTypeCreateInfo.Create(const aSemaphoreType:TVkSemaphoreType;
const aInitialValue:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
pNext:=nil;
semaphoreType:=aSemaphoreType;
initialValue:=aInitialValue;
end;
constructor TVkTimelineSemaphoreSubmitInfo.Create(const aWaitSemaphoreValueCount:TVkUInt32;
const aPWaitSemaphoreValues:PVkUInt64;
const aSignalSemaphoreValueCount:TVkUInt32;
const aPSignalSemaphoreValues:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
pNext:=nil;
waitSemaphoreValueCount:=aWaitSemaphoreValueCount;
pWaitSemaphoreValues:=aPWaitSemaphoreValues;
signalSemaphoreValueCount:=aSignalSemaphoreValueCount;
pSignalSemaphoreValues:=aPSignalSemaphoreValues;
end;
constructor TVkSemaphoreWaitInfo.Create(const aFlags:TVkSemaphoreWaitFlags;
const aSemaphoreCount:TVkUInt32;
const aPSemaphores:PVkSemaphore;
const aPValues:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
pNext:=nil;
flags:=aFlags;
semaphoreCount:=aSemaphoreCount;
pSemaphores:=aPSemaphores;
pValues:=aPValues;
end;
constructor TVkSemaphoreSignalInfo.Create(const aSemaphore:TVkSemaphore;
const aValue:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
pNext:=nil;
semaphore:=aSemaphore;
value:=aValue;
end;
constructor TVkVertexInputBindingDivisorDescriptionEXT.Create(const aBinding:TVkUInt32;
const aDivisor:TVkUInt32);
begin
binding:=aBinding;
divisor:=aDivisor;
end;
constructor TVkPipelineVertexInputDivisorStateCreateInfoEXT.Create(const aVertexBindingDivisorCount:TVkUInt32;
const aPVertexBindingDivisors:PVkVertexInputBindingDivisorDescriptionEXT);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
pNext:=nil;
vertexBindingDivisorCount:=aVertexBindingDivisorCount;
pVertexBindingDivisors:=aPVertexBindingDivisors;
end;
constructor TVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.Create(const aMaxVertexAttribDivisor:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
pNext:=nil;
maxVertexAttribDivisor:=aMaxVertexAttribDivisor;
end;
constructor TVkPhysicalDevicePCIBusInfoPropertiesEXT.Create(const aPciDomain:TVkUInt32;
const aPciBus:TVkUInt32;
const aPciDevice:TVkUInt32;
const aPciFunction:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
pNext:=nil;
pciDomain:=aPciDomain;
pciBus:=aPciBus;
pciDevice:=aPciDevice;
pciFunction:=aPciFunction;
end;
{$ifdef Android}
constructor TVkImportAndroidHardwareBufferInfoANDROID.Create(const aBuffer:PVkAndroidAHardwareBuffer);
begin
sType:=VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
pNext:=nil;
buffer:=aBuffer;
end;
{$endif}
{$ifdef Android}
constructor TVkAndroidHardwareBufferUsageANDROID.Create(const aAndroidHardwareBufferUsage:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
pNext:=nil;
androidHardwareBufferUsage:=aAndroidHardwareBufferUsage;
end;
{$endif}
{$ifdef Android}
constructor TVkAndroidHardwareBufferPropertiesANDROID.Create(const aAllocationSize:TVkDeviceSize;
const aMemoryTypeBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
pNext:=nil;
allocationSize:=aAllocationSize;
memoryTypeBits:=aMemoryTypeBits;
end;
{$endif}
{$ifdef Android}
constructor TVkMemoryGetAndroidHardwareBufferInfoANDROID.Create(const aMemory:TVkDeviceMemory);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
pNext:=nil;
memory:=aMemory;
end;
{$endif}
{$ifdef Android}
constructor TVkAndroidHardwareBufferFormatPropertiesANDROID.Create(const aFormat:TVkFormat;
const aExternalFormat:TVkUInt64;
const aFormatFeatures:TVkFormatFeatureFlags;
const aSamplerYcbcrConversionComponents:TVkComponentMapping;
const aSuggestedYcbcrModel:TVkSamplerYcbcrModelConversion;
const aSuggestedYcbcrRange:TVkSamplerYcbcrRange;
const aSuggestedXChromaOffset:TVkChromaLocation;
const aSuggestedYChromaOffset:TVkChromaLocation);
begin
sType:=VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
pNext:=nil;
format:=aFormat;
externalFormat:=aExternalFormat;
formatFeatures:=aFormatFeatures;
samplerYcbcrConversionComponents:=aSamplerYcbcrConversionComponents;
suggestedYcbcrModel:=aSuggestedYcbcrModel;
suggestedYcbcrRange:=aSuggestedYcbcrRange;
suggestedXChromaOffset:=aSuggestedXChromaOffset;
suggestedYChromaOffset:=aSuggestedYChromaOffset;
end;
{$endif}
constructor TVkCommandBufferInheritanceConditionalRenderingInfoEXT.Create(const aConditionalRenderingEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
pNext:=nil;
conditionalRenderingEnable:=aConditionalRenderingEnable;
end;
{$ifdef Android}
constructor TVkExternalFormatANDROID.Create(const aExternalFormat:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
pNext:=nil;
externalFormat:=aExternalFormat;
end;
{$endif}
constructor TVkPhysicalDevice8BitStorageFeatures.Create(const aStorageBuffer8BitAccess:TVkBool32;
const aUniformAndStorageBuffer8BitAccess:TVkBool32;
const aStoragePushConstant8:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
pNext:=nil;
storageBuffer8BitAccess:=aStorageBuffer8BitAccess;
uniformAndStorageBuffer8BitAccess:=aUniformAndStorageBuffer8BitAccess;
storagePushConstant8:=aStoragePushConstant8;
end;
constructor TVkPhysicalDeviceConditionalRenderingFeaturesEXT.Create(const aConditionalRendering:TVkBool32;
const aInheritedConditionalRendering:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
pNext:=nil;
conditionalRendering:=aConditionalRendering;
inheritedConditionalRendering:=aInheritedConditionalRendering;
end;
constructor TVkPhysicalDeviceVulkanMemoryModelFeatures.Create(const aVulkanMemoryModel:TVkBool32;
const aVulkanMemoryModelDeviceScope:TVkBool32;
const aVulkanMemoryModelAvailabilityVisibilityChains:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
pNext:=nil;
vulkanMemoryModel:=aVulkanMemoryModel;
vulkanMemoryModelDeviceScope:=aVulkanMemoryModelDeviceScope;
vulkanMemoryModelAvailabilityVisibilityChains:=aVulkanMemoryModelAvailabilityVisibilityChains;
end;
constructor TVkPhysicalDeviceShaderAtomicInt64Features.Create(const aShaderBufferInt64Atomics:TVkBool32;
const aShaderSharedInt64Atomics:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
pNext:=nil;
shaderBufferInt64Atomics:=aShaderBufferInt64Atomics;
shaderSharedInt64Atomics:=aShaderSharedInt64Atomics;
end;
constructor TVkPhysicalDeviceShaderAtomicFloatFeaturesEXT.Create(const aShaderBufferFloat32Atomics:TVkBool32;
const aShaderBufferFloat32AtomicAdd:TVkBool32;
const aShaderBufferFloat64Atomics:TVkBool32;
const aShaderBufferFloat64AtomicAdd:TVkBool32;
const aShaderSharedFloat32Atomics:TVkBool32;
const aShaderSharedFloat32AtomicAdd:TVkBool32;
const aShaderSharedFloat64Atomics:TVkBool32;
const aShaderSharedFloat64AtomicAdd:TVkBool32;
const aShaderImageFloat32Atomics:TVkBool32;
const aShaderImageFloat32AtomicAdd:TVkBool32;
const aSparseImageFloat32Atomics:TVkBool32;
const aSparseImageFloat32AtomicAdd:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
pNext:=nil;
shaderBufferFloat32Atomics:=aShaderBufferFloat32Atomics;
shaderBufferFloat32AtomicAdd:=aShaderBufferFloat32AtomicAdd;
shaderBufferFloat64Atomics:=aShaderBufferFloat64Atomics;
shaderBufferFloat64AtomicAdd:=aShaderBufferFloat64AtomicAdd;
shaderSharedFloat32Atomics:=aShaderSharedFloat32Atomics;
shaderSharedFloat32AtomicAdd:=aShaderSharedFloat32AtomicAdd;
shaderSharedFloat64Atomics:=aShaderSharedFloat64Atomics;
shaderSharedFloat64AtomicAdd:=aShaderSharedFloat64AtomicAdd;
shaderImageFloat32Atomics:=aShaderImageFloat32Atomics;
shaderImageFloat32AtomicAdd:=aShaderImageFloat32AtomicAdd;
sparseImageFloat32Atomics:=aSparseImageFloat32Atomics;
sparseImageFloat32AtomicAdd:=aSparseImageFloat32AtomicAdd;
end;
constructor TVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.Create(const aShaderBufferFloat16Atomics:TVkBool32;
const aShaderBufferFloat16AtomicAdd:TVkBool32;
const aShaderBufferFloat16AtomicMinMax:TVkBool32;
const aShaderBufferFloat32AtomicMinMax:TVkBool32;
const aShaderBufferFloat64AtomicMinMax:TVkBool32;
const aShaderSharedFloat16Atomics:TVkBool32;
const aShaderSharedFloat16AtomicAdd:TVkBool32;
const aShaderSharedFloat16AtomicMinMax:TVkBool32;
const aShaderSharedFloat32AtomicMinMax:TVkBool32;
const aShaderSharedFloat64AtomicMinMax:TVkBool32;
const aShaderImageFloat32AtomicMinMax:TVkBool32;
const aSparseImageFloat32AtomicMinMax:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
pNext:=nil;
shaderBufferFloat16Atomics:=aShaderBufferFloat16Atomics;
shaderBufferFloat16AtomicAdd:=aShaderBufferFloat16AtomicAdd;
shaderBufferFloat16AtomicMinMax:=aShaderBufferFloat16AtomicMinMax;
shaderBufferFloat32AtomicMinMax:=aShaderBufferFloat32AtomicMinMax;
shaderBufferFloat64AtomicMinMax:=aShaderBufferFloat64AtomicMinMax;
shaderSharedFloat16Atomics:=aShaderSharedFloat16Atomics;
shaderSharedFloat16AtomicAdd:=aShaderSharedFloat16AtomicAdd;
shaderSharedFloat16AtomicMinMax:=aShaderSharedFloat16AtomicMinMax;
shaderSharedFloat32AtomicMinMax:=aShaderSharedFloat32AtomicMinMax;
shaderSharedFloat64AtomicMinMax:=aShaderSharedFloat64AtomicMinMax;
shaderImageFloat32AtomicMinMax:=aShaderImageFloat32AtomicMinMax;
sparseImageFloat32AtomicMinMax:=aSparseImageFloat32AtomicMinMax;
end;
constructor TVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.Create(const aVertexAttributeInstanceRateDivisor:TVkBool32;
const aVertexAttributeInstanceRateZeroDivisor:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT;
pNext:=nil;
vertexAttributeInstanceRateDivisor:=aVertexAttributeInstanceRateDivisor;
vertexAttributeInstanceRateZeroDivisor:=aVertexAttributeInstanceRateZeroDivisor;
end;
constructor TVkQueueFamilyCheckpointPropertiesNV.Create(const aCheckpointExecutionStageMask:TVkPipelineStageFlags);
begin
sType:=VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
pNext:=nil;
checkpointExecutionStageMask:=aCheckpointExecutionStageMask;
end;
constructor TVkCheckpointDataNV.Create(const aStage:TVkPipelineStageFlagBits;
const aPCheckpointMarker:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV;
pNext:=nil;
stage:=aStage;
pCheckpointMarker:=aPCheckpointMarker;
end;
constructor TVkPhysicalDeviceDepthStencilResolveProperties.Create(const aSupportedDepthResolveModes:TVkResolveModeFlags;
const aSupportedStencilResolveModes:TVkResolveModeFlags;
const aIndependentResolveNone:TVkBool32;
const aIndependentResolve:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
pNext:=nil;
supportedDepthResolveModes:=aSupportedDepthResolveModes;
supportedStencilResolveModes:=aSupportedStencilResolveModes;
independentResolveNone:=aIndependentResolveNone;
independentResolve:=aIndependentResolve;
end;
constructor TVkSubpassDescriptionDepthStencilResolve.Create(const aDepthResolveMode:TVkResolveModeFlagBits;
const aStencilResolveMode:TVkResolveModeFlagBits;
const aPDepthStencilResolveAttachment:PVkAttachmentReference2);
begin
sType:=VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
pNext:=nil;
depthResolveMode:=aDepthResolveMode;
stencilResolveMode:=aStencilResolveMode;
pDepthStencilResolveAttachment:=aPDepthStencilResolveAttachment;
end;
constructor TVkImageViewASTCDecodeModeEXT.Create(const aDecodeMode:TVkFormat);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
pNext:=nil;
decodeMode:=aDecodeMode;
end;
constructor TVkPhysicalDeviceASTCDecodeFeaturesEXT.Create(const aDecodeModeSharedExponent:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
pNext:=nil;
decodeModeSharedExponent:=aDecodeModeSharedExponent;
end;
constructor TVkPhysicalDeviceTransformFeedbackFeaturesEXT.Create(const aTransformFeedback:TVkBool32;
const aGeometryStreams:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT;
pNext:=nil;
transformFeedback:=aTransformFeedback;
geometryStreams:=aGeometryStreams;
end;
constructor TVkPhysicalDeviceTransformFeedbackPropertiesEXT.Create(const aMaxTransformFeedbackStreams:TVkUInt32;
const aMaxTransformFeedbackBuffers:TVkUInt32;
const aMaxTransformFeedbackBufferSize:TVkDeviceSize;
const aMaxTransformFeedbackStreamDataSize:TVkUInt32;
const aMaxTransformFeedbackBufferDataSize:TVkUInt32;
const aMaxTransformFeedbackBufferDataStride:TVkUInt32;
const aTransformFeedbackQueries:TVkBool32;
const aTransformFeedbackStreamsLinesTriangles:TVkBool32;
const aTransformFeedbackRasterizationStreamSelect:TVkBool32;
const aTransformFeedbackDraw:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT;
pNext:=nil;
maxTransformFeedbackStreams:=aMaxTransformFeedbackStreams;
maxTransformFeedbackBuffers:=aMaxTransformFeedbackBuffers;
maxTransformFeedbackBufferSize:=aMaxTransformFeedbackBufferSize;
maxTransformFeedbackStreamDataSize:=aMaxTransformFeedbackStreamDataSize;
maxTransformFeedbackBufferDataSize:=aMaxTransformFeedbackBufferDataSize;
maxTransformFeedbackBufferDataStride:=aMaxTransformFeedbackBufferDataStride;
transformFeedbackQueries:=aTransformFeedbackQueries;
transformFeedbackStreamsLinesTriangles:=aTransformFeedbackStreamsLinesTriangles;
transformFeedbackRasterizationStreamSelect:=aTransformFeedbackRasterizationStreamSelect;
transformFeedbackDraw:=aTransformFeedbackDraw;
end;
constructor TVkPipelineRasterizationStateStreamCreateInfoEXT.Create(const aFlags:TVkPipelineRasterizationStateStreamCreateFlagsEXT;
const aRasterizationStream:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
rasterizationStream:=aRasterizationStream;
end;
constructor TVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.Create(const aRepresentativeFragmentTest:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
pNext:=nil;
representativeFragmentTest:=aRepresentativeFragmentTest;
end;
constructor TVkPipelineRepresentativeFragmentTestStateCreateInfoNV.Create(const aRepresentativeFragmentTestEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
pNext:=nil;
representativeFragmentTestEnable:=aRepresentativeFragmentTestEnable;
end;
constructor TVkPhysicalDeviceExclusiveScissorFeaturesNV.Create(const aExclusiveScissor:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
pNext:=nil;
exclusiveScissor:=aExclusiveScissor;
end;
constructor TVkPipelineViewportExclusiveScissorStateCreateInfoNV.Create(const aExclusiveScissorCount:TVkUInt32;
const aPExclusiveScissors:PVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
pNext:=nil;
exclusiveScissorCount:=aExclusiveScissorCount;
pExclusiveScissors:=aPExclusiveScissors;
end;
constructor TVkPhysicalDeviceCornerSampledImageFeaturesNV.Create(const aCornerSampledImage:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
pNext:=nil;
cornerSampledImage:=aCornerSampledImage;
end;
constructor TVkPhysicalDeviceComputeShaderDerivativesFeaturesNV.Create(const aComputeDerivativeGroupQuads:TVkBool32;
const aComputeDerivativeGroupLinear:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
pNext:=nil;
computeDerivativeGroupQuads:=aComputeDerivativeGroupQuads;
computeDerivativeGroupLinear:=aComputeDerivativeGroupLinear;
end;
constructor TVkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.Create(const aFragmentShaderBarycentric:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV;
pNext:=nil;
fragmentShaderBarycentric:=aFragmentShaderBarycentric;
end;
constructor TVkPhysicalDeviceShaderImageFootprintFeaturesNV.Create(const aImageFootprint:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
pNext:=nil;
imageFootprint:=aImageFootprint;
end;
constructor TVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.Create(const aDedicatedAllocationImageAliasing:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
pNext:=nil;
dedicatedAllocationImageAliasing:=aDedicatedAllocationImageAliasing;
end;
constructor TVkShadingRatePaletteNV.Create(const aShadingRatePaletteEntryCount:TVkUInt32;
const aPShadingRatePaletteEntries:PVkShadingRatePaletteEntryNV);
begin
shadingRatePaletteEntryCount:=aShadingRatePaletteEntryCount;
pShadingRatePaletteEntries:=aPShadingRatePaletteEntries;
end;
constructor TVkPipelineViewportShadingRateImageStateCreateInfoNV.Create(const aShadingRateImageEnable:TVkBool32;
const aViewportCount:TVkUInt32;
const aPShadingRatePalettes:PVkShadingRatePaletteNV);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
pNext:=nil;
shadingRateImageEnable:=aShadingRateImageEnable;
viewportCount:=aViewportCount;
pShadingRatePalettes:=aPShadingRatePalettes;
end;
constructor TVkPhysicalDeviceShadingRateImageFeaturesNV.Create(const aShadingRateImage:TVkBool32;
const aShadingRateCoarseSampleOrder:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
pNext:=nil;
shadingRateImage:=aShadingRateImage;
shadingRateCoarseSampleOrder:=aShadingRateCoarseSampleOrder;
end;
constructor TVkPhysicalDeviceShadingRateImagePropertiesNV.Create(const aShadingRateTexelSize:TVkExtent2D;
const aShadingRatePaletteSize:TVkUInt32;
const aShadingRateMaxCoarseSamples:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
pNext:=nil;
shadingRateTexelSize:=aShadingRateTexelSize;
shadingRatePaletteSize:=aShadingRatePaletteSize;
shadingRateMaxCoarseSamples:=aShadingRateMaxCoarseSamples;
end;
constructor TVkPhysicalDeviceInvocationMaskFeaturesHUAWEI.Create(const aInvocationMask:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
pNext:=nil;
invocationMask:=aInvocationMask;
end;
constructor TVkCoarseSampleLocationNV.Create(const aPixelX:TVkUInt32;
const aPixelY:TVkUInt32;
const aSample:TVkUInt32);
begin
pixelX:=aPixelX;
pixelY:=aPixelY;
sample:=aSample;
end;
constructor TVkCoarseSampleOrderCustomNV.Create(const aShadingRate:TVkShadingRatePaletteEntryNV;
const aSampleCount:TVkUInt32;
const aSampleLocationCount:TVkUInt32;
const aPSampleLocations:PVkCoarseSampleLocationNV);
begin
shadingRate:=aShadingRate;
sampleCount:=aSampleCount;
sampleLocationCount:=aSampleLocationCount;
pSampleLocations:=aPSampleLocations;
end;
constructor TVkPipelineViewportCoarseSampleOrderStateCreateInfoNV.Create(const aSampleOrderType:TVkCoarseSampleOrderTypeNV;
const aCustomSampleOrderCount:TVkUInt32;
const aPCustomSampleOrders:PVkCoarseSampleOrderCustomNV);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
pNext:=nil;
sampleOrderType:=aSampleOrderType;
customSampleOrderCount:=aCustomSampleOrderCount;
pCustomSampleOrders:=aPCustomSampleOrders;
end;
constructor TVkPhysicalDeviceMeshShaderFeaturesNV.Create(const aTaskShader:TVkBool32;
const aMeshShader:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
pNext:=nil;
taskShader:=aTaskShader;
meshShader:=aMeshShader;
end;
constructor TVkPhysicalDeviceMeshShaderPropertiesNV.Create(const aMaxDrawMeshTasksCount:TVkUInt32;
const aMaxTaskWorkGroupInvocations:TVkUInt32;
const aMaxTaskWorkGroupSize:array of TVkUInt32;
const aMaxTaskTotalMemorySize:TVkUInt32;
const aMaxTaskOutputCount:TVkUInt32;
const aMaxMeshWorkGroupInvocations:TVkUInt32;
const aMaxMeshWorkGroupSize:array of TVkUInt32;
const aMaxMeshTotalMemorySize:TVkUInt32;
const aMaxMeshOutputVertices:TVkUInt32;
const aMaxMeshOutputPrimitives:TVkUInt32;
const aMaxMeshMultiviewViewCount:TVkUInt32;
const aMeshOutputPerVertexGranularity:TVkUInt32;
const aMeshOutputPerPrimitiveGranularity:TVkUInt32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceMeshShaderPropertiesNV),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
pNext:=nil;
maxDrawMeshTasksCount:=aMaxDrawMeshTasksCount;
maxTaskWorkGroupInvocations:=aMaxTaskWorkGroupInvocations;
ArrayItemCount:=length(aMaxTaskWorkGroupSize);
if ArrayItemCount>length(maxTaskWorkGroupSize) then begin
ArrayItemCount:=length(maxTaskWorkGroupSize);
end;
if ArrayItemCount>0 then begin
Move(aMaxTaskWorkGroupSize[0],maxTaskWorkGroupSize[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
maxTaskTotalMemorySize:=aMaxTaskTotalMemorySize;
maxTaskOutputCount:=aMaxTaskOutputCount;
maxMeshWorkGroupInvocations:=aMaxMeshWorkGroupInvocations;
ArrayItemCount:=length(aMaxMeshWorkGroupSize);
if ArrayItemCount>length(maxMeshWorkGroupSize) then begin
ArrayItemCount:=length(maxMeshWorkGroupSize);
end;
if ArrayItemCount>0 then begin
Move(aMaxMeshWorkGroupSize[0],maxMeshWorkGroupSize[0],ArrayItemCount*SizeOf(TVkUInt32));
end;
maxMeshTotalMemorySize:=aMaxMeshTotalMemorySize;
maxMeshOutputVertices:=aMaxMeshOutputVertices;
maxMeshOutputPrimitives:=aMaxMeshOutputPrimitives;
maxMeshMultiviewViewCount:=aMaxMeshMultiviewViewCount;
meshOutputPerVertexGranularity:=aMeshOutputPerVertexGranularity;
meshOutputPerPrimitiveGranularity:=aMeshOutputPerPrimitiveGranularity;
end;
constructor TVkDrawMeshTasksIndirectCommandNV.Create(const aTaskCount:TVkUInt32;
const aFirstTask:TVkUInt32);
begin
taskCount:=aTaskCount;
firstTask:=aFirstTask;
end;
constructor TVkRayTracingShaderGroupCreateInfoNV.Create(const aType_:TVkRayTracingShaderGroupTypeKHR;
const aGeneralShader:TVkUInt32;
const aClosestHitShader:TVkUInt32;
const aAnyHitShader:TVkUInt32;
const aIntersectionShader:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
pNext:=nil;
type_:=aType_;
generalShader:=aGeneralShader;
closestHitShader:=aClosestHitShader;
anyHitShader:=aAnyHitShader;
intersectionShader:=aIntersectionShader;
end;
constructor TVkRayTracingShaderGroupCreateInfoKHR.Create(const aType_:TVkRayTracingShaderGroupTypeKHR;
const aGeneralShader:TVkUInt32;
const aClosestHitShader:TVkUInt32;
const aAnyHitShader:TVkUInt32;
const aIntersectionShader:TVkUInt32;
const aPShaderGroupCaptureReplayHandle:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
pNext:=nil;
type_:=aType_;
generalShader:=aGeneralShader;
closestHitShader:=aClosestHitShader;
anyHitShader:=aAnyHitShader;
intersectionShader:=aIntersectionShader;
pShaderGroupCaptureReplayHandle:=aPShaderGroupCaptureReplayHandle;
end;
constructor TVkRayTracingPipelineCreateInfoNV.Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aGroupCount:TVkUInt32;
const aPGroups:PVkRayTracingShaderGroupCreateInfoNV;
const aMaxRecursionDepth:TVkUInt32;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
stageCount:=aStageCount;
pStages:=aPStages;
groupCount:=aGroupCount;
pGroups:=aPGroups;
maxRecursionDepth:=aMaxRecursionDepth;
layout:=aLayout;
basePipelineHandle:=aBasePipelineHandle;
basePipelineIndex:=aBasePipelineIndex;
end;
constructor TVkRayTracingPipelineInterfaceCreateInfoKHR.Create(const aMaxPipelineRayPayloadSize:TVkUInt32;
const aMaxPipelineRayHitAttributeSize:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
pNext:=nil;
maxPipelineRayPayloadSize:=aMaxPipelineRayPayloadSize;
maxPipelineRayHitAttributeSize:=aMaxPipelineRayHitAttributeSize;
end;
constructor TVkGeometryTrianglesNV.Create(const aVertexData:TVkBuffer;
const aVertexOffset:TVkDeviceSize;
const aVertexCount:TVkUInt32;
const aVertexStride:TVkDeviceSize;
const aVertexFormat:TVkFormat;
const aIndexData:TVkBuffer;
const aIndexOffset:TVkDeviceSize;
const aIndexCount:TVkUInt32;
const aIndexType:TVkIndexType;
const aTransformData:TVkBuffer;
const aTransformOffset:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV;
pNext:=nil;
vertexData:=aVertexData;
vertexOffset:=aVertexOffset;
vertexCount:=aVertexCount;
vertexStride:=aVertexStride;
vertexFormat:=aVertexFormat;
indexData:=aIndexData;
indexOffset:=aIndexOffset;
indexCount:=aIndexCount;
indexType:=aIndexType;
transformData:=aTransformData;
transformOffset:=aTransformOffset;
end;
constructor TVkGeometryAABBNV.Create(const aAabbData:TVkBuffer;
const aNumAABBs:TVkUInt32;
const aStride:TVkUInt32;
const aOffset:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV;
pNext:=nil;
aabbData:=aAabbData;
numAABBs:=aNumAABBs;
stride:=aStride;
offset:=aOffset;
end;
constructor TVkGeometryDataNV.Create(const aTriangles:TVkGeometryTrianglesNV;
const aAabbs:TVkGeometryAABBNV);
begin
triangles:=aTriangles;
aabbs:=aAabbs;
end;
constructor TVkGeometryNV.Create(const aGeometryType:TVkGeometryTypeKHR;
const aGeometry:TVkGeometryDataNV;
const aFlags:TVkGeometryFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_GEOMETRY_NV;
pNext:=nil;
geometryType:=aGeometryType;
geometry:=aGeometry;
flags:=aFlags;
end;
constructor TVkAccelerationStructureInfoNV.Create(const aType_:TVkAccelerationStructureTypeNV;
const aFlags:TVkBuildAccelerationStructureFlagsNV;
const aInstanceCount:TVkUInt32;
const aGeometryCount:TVkUInt32;
const aPGeometries:PVkGeometryNV);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV;
pNext:=nil;
type_:=aType_;
flags:=aFlags;
instanceCount:=aInstanceCount;
geometryCount:=aGeometryCount;
pGeometries:=aPGeometries;
end;
constructor TVkAccelerationStructureCreateInfoNV.Create(const aCompactedSize:TVkDeviceSize;
const aInfo:TVkAccelerationStructureInfoNV);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
pNext:=nil;
compactedSize:=aCompactedSize;
info:=aInfo;
end;
constructor TVkBindAccelerationStructureMemoryInfoNV.Create(const aAccelerationStructure:TVkAccelerationStructureNV;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aDeviceIndexCount:TVkUInt32;
const aPDeviceIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
pNext:=nil;
accelerationStructure:=aAccelerationStructure;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
deviceIndexCount:=aDeviceIndexCount;
pDeviceIndices:=aPDeviceIndices;
end;
constructor TVkWriteDescriptorSetAccelerationStructureKHR.Create(const aAccelerationStructureCount:TVkUInt32;
const aPAccelerationStructures:PVkAccelerationStructureKHR);
begin
sType:=VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
pNext:=nil;
accelerationStructureCount:=aAccelerationStructureCount;
pAccelerationStructures:=aPAccelerationStructures;
end;
constructor TVkWriteDescriptorSetAccelerationStructureNV.Create(const aAccelerationStructureCount:TVkUInt32;
const aPAccelerationStructures:PVkAccelerationStructureNV);
begin
sType:=VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
pNext:=nil;
accelerationStructureCount:=aAccelerationStructureCount;
pAccelerationStructures:=aPAccelerationStructures;
end;
constructor TVkAccelerationStructureMemoryRequirementsInfoNV.Create(const aType_:TVkAccelerationStructureMemoryRequirementsTypeNV;
const aAccelerationStructure:TVkAccelerationStructureNV);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
pNext:=nil;
type_:=aType_;
accelerationStructure:=aAccelerationStructure;
end;
constructor TVkPhysicalDeviceAccelerationStructureFeaturesKHR.Create(const aAccelerationStructure:TVkBool32;
const aAccelerationStructureCaptureReplay:TVkBool32;
const aAccelerationStructureIndirectBuild:TVkBool32;
const aAccelerationStructureHostCommands:TVkBool32;
const aDescriptorBindingAccelerationStructureUpdateAfterBind:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
pNext:=nil;
accelerationStructure:=aAccelerationStructure;
accelerationStructureCaptureReplay:=aAccelerationStructureCaptureReplay;
accelerationStructureIndirectBuild:=aAccelerationStructureIndirectBuild;
accelerationStructureHostCommands:=aAccelerationStructureHostCommands;
descriptorBindingAccelerationStructureUpdateAfterBind:=aDescriptorBindingAccelerationStructureUpdateAfterBind;
end;
constructor TVkPhysicalDeviceRayTracingPipelineFeaturesKHR.Create(const aRayTracingPipeline:TVkBool32;
const aRayTracingPipelineShaderGroupHandleCaptureReplay:TVkBool32;
const aRayTracingPipelineShaderGroupHandleCaptureReplayMixed:TVkBool32;
const aRayTracingPipelineTraceRaysIndirect:TVkBool32;
const aRayTraversalPrimitiveCulling:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
pNext:=nil;
rayTracingPipeline:=aRayTracingPipeline;
rayTracingPipelineShaderGroupHandleCaptureReplay:=aRayTracingPipelineShaderGroupHandleCaptureReplay;
rayTracingPipelineShaderGroupHandleCaptureReplayMixed:=aRayTracingPipelineShaderGroupHandleCaptureReplayMixed;
rayTracingPipelineTraceRaysIndirect:=aRayTracingPipelineTraceRaysIndirect;
rayTraversalPrimitiveCulling:=aRayTraversalPrimitiveCulling;
end;
constructor TVkPhysicalDeviceRayQueryFeaturesKHR.Create(const aRayQuery:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
pNext:=nil;
rayQuery:=aRayQuery;
end;
constructor TVkPhysicalDeviceAccelerationStructurePropertiesKHR.Create(const aMaxGeometryCount:TVkUInt64;
const aMaxInstanceCount:TVkUInt64;
const aMaxPrimitiveCount:TVkUInt64;
const aMaxPerStageDescriptorAccelerationStructures:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindAccelerationStructures:TVkUInt32;
const aMaxDescriptorSetAccelerationStructures:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindAccelerationStructures:TVkUInt32;
const aMinAccelerationStructureScratchOffsetAlignment:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
pNext:=nil;
maxGeometryCount:=aMaxGeometryCount;
maxInstanceCount:=aMaxInstanceCount;
maxPrimitiveCount:=aMaxPrimitiveCount;
maxPerStageDescriptorAccelerationStructures:=aMaxPerStageDescriptorAccelerationStructures;
maxPerStageDescriptorUpdateAfterBindAccelerationStructures:=aMaxPerStageDescriptorUpdateAfterBindAccelerationStructures;
maxDescriptorSetAccelerationStructures:=aMaxDescriptorSetAccelerationStructures;
maxDescriptorSetUpdateAfterBindAccelerationStructures:=aMaxDescriptorSetUpdateAfterBindAccelerationStructures;
minAccelerationStructureScratchOffsetAlignment:=aMinAccelerationStructureScratchOffsetAlignment;
end;
constructor TVkPhysicalDeviceRayTracingPipelinePropertiesKHR.Create(const aShaderGroupHandleSize:TVkUInt32;
const aMaxRayRecursionDepth:TVkUInt32;
const aMaxShaderGroupStride:TVkUInt32;
const aShaderGroupBaseAlignment:TVkUInt32;
const aShaderGroupHandleCaptureReplaySize:TVkUInt32;
const aMaxRayDispatchInvocationCount:TVkUInt32;
const aShaderGroupHandleAlignment:TVkUInt32;
const aMaxRayHitAttributeSize:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
pNext:=nil;
shaderGroupHandleSize:=aShaderGroupHandleSize;
maxRayRecursionDepth:=aMaxRayRecursionDepth;
maxShaderGroupStride:=aMaxShaderGroupStride;
shaderGroupBaseAlignment:=aShaderGroupBaseAlignment;
shaderGroupHandleCaptureReplaySize:=aShaderGroupHandleCaptureReplaySize;
maxRayDispatchInvocationCount:=aMaxRayDispatchInvocationCount;
shaderGroupHandleAlignment:=aShaderGroupHandleAlignment;
maxRayHitAttributeSize:=aMaxRayHitAttributeSize;
end;
constructor TVkPhysicalDeviceRayTracingPropertiesNV.Create(const aShaderGroupHandleSize:TVkUInt32;
const aMaxRecursionDepth:TVkUInt32;
const aMaxShaderGroupStride:TVkUInt32;
const aShaderGroupBaseAlignment:TVkUInt32;
const aMaxGeometryCount:TVkUInt64;
const aMaxInstanceCount:TVkUInt64;
const aMaxTriangleCount:TVkUInt64;
const aMaxDescriptorSetAccelerationStructures:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
pNext:=nil;
shaderGroupHandleSize:=aShaderGroupHandleSize;
maxRecursionDepth:=aMaxRecursionDepth;
maxShaderGroupStride:=aMaxShaderGroupStride;
shaderGroupBaseAlignment:=aShaderGroupBaseAlignment;
maxGeometryCount:=aMaxGeometryCount;
maxInstanceCount:=aMaxInstanceCount;
maxTriangleCount:=aMaxTriangleCount;
maxDescriptorSetAccelerationStructures:=aMaxDescriptorSetAccelerationStructures;
end;
constructor TVkStridedDeviceAddressRegionKHR.Create(const aDeviceAddress:TVkDeviceAddress;
const aStride:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
deviceAddress:=aDeviceAddress;
stride:=aStride;
size:=aSize;
end;
constructor TVkTraceRaysIndirectCommandKHR.Create(const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aDepth:TVkUInt32);
begin
width:=aWidth;
height:=aHeight;
depth:=aDepth;
end;
constructor TVkDrmFormatModifierPropertiesEXT.Create(const aDrmFormatModifier:TVkUInt64;
const aDrmFormatModifierPlaneCount:TVkUInt32;
const aDrmFormatModifierTilingFeatures:TVkFormatFeatureFlags);
begin
drmFormatModifier:=aDrmFormatModifier;
drmFormatModifierPlaneCount:=aDrmFormatModifierPlaneCount;
drmFormatModifierTilingFeatures:=aDrmFormatModifierTilingFeatures;
end;
constructor TVkDrmFormatModifierPropertiesListEXT.Create(const aDrmFormatModifierCount:TVkUInt32;
const aPDrmFormatModifierProperties:PVkDrmFormatModifierPropertiesEXT);
begin
sType:=VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
pNext:=nil;
drmFormatModifierCount:=aDrmFormatModifierCount;
pDrmFormatModifierProperties:=aPDrmFormatModifierProperties;
end;
constructor TVkPhysicalDeviceImageDrmFormatModifierInfoEXT.Create(const aDrmFormatModifier:TVkUInt64;
const aSharingMode:TVkSharingMode;
const aQueueFamilyIndexCount:TVkUInt32;
const aPQueueFamilyIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
pNext:=nil;
drmFormatModifier:=aDrmFormatModifier;
sharingMode:=aSharingMode;
queueFamilyIndexCount:=aQueueFamilyIndexCount;
pQueueFamilyIndices:=aPQueueFamilyIndices;
end;
constructor TVkImageDrmFormatModifierListCreateInfoEXT.Create(const aDrmFormatModifierCount:TVkUInt32;
const aPDrmFormatModifiers:PVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
pNext:=nil;
drmFormatModifierCount:=aDrmFormatModifierCount;
pDrmFormatModifiers:=aPDrmFormatModifiers;
end;
constructor TVkImageDrmFormatModifierExplicitCreateInfoEXT.Create(const aDrmFormatModifier:TVkUInt64;
const aDrmFormatModifierPlaneCount:TVkUInt32;
const aPPlaneLayouts:PVkSubresourceLayout);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
pNext:=nil;
drmFormatModifier:=aDrmFormatModifier;
drmFormatModifierPlaneCount:=aDrmFormatModifierPlaneCount;
pPlaneLayouts:=aPPlaneLayouts;
end;
constructor TVkImageDrmFormatModifierPropertiesEXT.Create(const aDrmFormatModifier:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
pNext:=nil;
drmFormatModifier:=aDrmFormatModifier;
end;
constructor TVkImageStencilUsageCreateInfo.Create(const aStencilUsage:TVkImageUsageFlags);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
pNext:=nil;
stencilUsage:=aStencilUsage;
end;
constructor TVkDeviceMemoryOverallocationCreateInfoAMD.Create(const aOverallocationBehavior:TVkMemoryOverallocationBehaviorAMD);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
pNext:=nil;
overallocationBehavior:=aOverallocationBehavior;
end;
constructor TVkPhysicalDeviceFragmentDensityMapFeaturesEXT.Create(const aFragmentDensityMap:TVkBool32;
const aFragmentDensityMapDynamic:TVkBool32;
const aFragmentDensityMapNonSubsampledImages:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
pNext:=nil;
fragmentDensityMap:=aFragmentDensityMap;
fragmentDensityMapDynamic:=aFragmentDensityMapDynamic;
fragmentDensityMapNonSubsampledImages:=aFragmentDensityMapNonSubsampledImages;
end;
constructor TVkPhysicalDeviceFragmentDensityMap2FeaturesEXT.Create(const aFragmentDensityMapDeferred:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
pNext:=nil;
fragmentDensityMapDeferred:=aFragmentDensityMapDeferred;
end;
constructor TVkPhysicalDeviceFragmentDensityMapPropertiesEXT.Create(const aMinFragmentDensityTexelSize:TVkExtent2D;
const aMaxFragmentDensityTexelSize:TVkExtent2D;
const aFragmentDensityInvocations:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
pNext:=nil;
minFragmentDensityTexelSize:=aMinFragmentDensityTexelSize;
maxFragmentDensityTexelSize:=aMaxFragmentDensityTexelSize;
fragmentDensityInvocations:=aFragmentDensityInvocations;
end;
constructor TVkPhysicalDeviceFragmentDensityMap2PropertiesEXT.Create(const aSubsampledLoads:TVkBool32;
const aSubsampledCoarseReconstructionEarlyAccess:TVkBool32;
const aMaxSubsampledArrayLayers:TVkUInt32;
const aMaxDescriptorSetSubsampledSamplers:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
pNext:=nil;
subsampledLoads:=aSubsampledLoads;
subsampledCoarseReconstructionEarlyAccess:=aSubsampledCoarseReconstructionEarlyAccess;
maxSubsampledArrayLayers:=aMaxSubsampledArrayLayers;
maxDescriptorSetSubsampledSamplers:=aMaxDescriptorSetSubsampledSamplers;
end;
constructor TVkRenderPassFragmentDensityMapCreateInfoEXT.Create(const aFragmentDensityMapAttachment:TVkAttachmentReference);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
pNext:=nil;
fragmentDensityMapAttachment:=aFragmentDensityMapAttachment;
end;
constructor TVkPhysicalDeviceScalarBlockLayoutFeatures.Create(const aScalarBlockLayout:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
pNext:=nil;
scalarBlockLayout:=aScalarBlockLayout;
end;
constructor TVkSurfaceProtectedCapabilitiesKHR.Create(const aSupportsProtected:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
pNext:=nil;
supportsProtected:=aSupportsProtected;
end;
constructor TVkPhysicalDeviceUniformBufferStandardLayoutFeatures.Create(const aUniformBufferStandardLayout:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
pNext:=nil;
uniformBufferStandardLayout:=aUniformBufferStandardLayout;
end;
constructor TVkPhysicalDeviceDepthClipEnableFeaturesEXT.Create(const aDepthClipEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
pNext:=nil;
depthClipEnable:=aDepthClipEnable;
end;
constructor TVkPipelineRasterizationDepthClipStateCreateInfoEXT.Create(const aFlags:TVkPipelineRasterizationDepthClipStateCreateFlagsEXT;
const aDepthClipEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
depthClipEnable:=aDepthClipEnable;
end;
constructor TVkPhysicalDeviceMemoryBudgetPropertiesEXT.Create(const aHeapBudget:array of TVkDeviceSize;
const aHeapUsage:array of TVkDeviceSize);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceMemoryBudgetPropertiesEXT),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
pNext:=nil;
ArrayItemCount:=length(aHeapBudget);
if ArrayItemCount>length(heapBudget) then begin
ArrayItemCount:=length(heapBudget);
end;
if ArrayItemCount>0 then begin
Move(aHeapBudget[0],heapBudget[0],ArrayItemCount*SizeOf(TVkDeviceSize));
end;
ArrayItemCount:=length(aHeapUsage);
if ArrayItemCount>length(heapUsage) then begin
ArrayItemCount:=length(heapUsage);
end;
if ArrayItemCount>0 then begin
Move(aHeapUsage[0],heapUsage[0],ArrayItemCount*SizeOf(TVkDeviceSize));
end;
end;
constructor TVkPhysicalDeviceMemoryPriorityFeaturesEXT.Create(const aMemoryPriority:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
pNext:=nil;
memoryPriority:=aMemoryPriority;
end;
constructor TVkMemoryPriorityAllocateInfoEXT.Create(const aPriority:TVkFloat);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
pNext:=nil;
priority:=aPriority;
end;
constructor TVkPhysicalDeviceBufferDeviceAddressFeatures.Create(const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
pNext:=nil;
bufferDeviceAddress:=aBufferDeviceAddress;
bufferDeviceAddressCaptureReplay:=aBufferDeviceAddressCaptureReplay;
bufferDeviceAddressMultiDevice:=aBufferDeviceAddressMultiDevice;
end;
constructor TVkPhysicalDeviceBufferDeviceAddressFeaturesEXT.Create(const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
pNext:=nil;
bufferDeviceAddress:=aBufferDeviceAddress;
bufferDeviceAddressCaptureReplay:=aBufferDeviceAddressCaptureReplay;
bufferDeviceAddressMultiDevice:=aBufferDeviceAddressMultiDevice;
end;
constructor TVkBufferDeviceAddressInfo.Create(const aBuffer:TVkBuffer);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
pNext:=nil;
buffer:=aBuffer;
end;
constructor TVkBufferOpaqueCaptureAddressCreateInfo.Create(const aOpaqueCaptureAddress:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
pNext:=nil;
opaqueCaptureAddress:=aOpaqueCaptureAddress;
end;
constructor TVkBufferDeviceAddressCreateInfoEXT.Create(const aDeviceAddress:TVkDeviceAddress);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
pNext:=nil;
deviceAddress:=aDeviceAddress;
end;
constructor TVkPhysicalDeviceImageViewImageFormatInfoEXT.Create(const aImageViewType:TVkImageViewType);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
pNext:=nil;
imageViewType:=aImageViewType;
end;
constructor TVkFilterCubicImageViewImageFormatPropertiesEXT.Create(const aFilterCubic:TVkBool32;
const aFilterCubicMinmax:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
pNext:=nil;
filterCubic:=aFilterCubic;
filterCubicMinmax:=aFilterCubicMinmax;
end;
constructor TVkPhysicalDeviceImagelessFramebufferFeatures.Create(const aImagelessFramebuffer:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
pNext:=nil;
imagelessFramebuffer:=aImagelessFramebuffer;
end;
constructor TVkFramebufferAttachmentImageInfo.Create(const aFlags:TVkImageCreateFlags;
const aUsage:TVkImageUsageFlags;
const aWidth:TVkUInt32;
const aHeight:TVkUInt32;
const aLayerCount:TVkUInt32;
const aViewFormatCount:TVkUInt32;
const aPViewFormats:PVkFormat);
begin
sType:=VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
pNext:=nil;
flags:=aFlags;
usage:=aUsage;
width:=aWidth;
height:=aHeight;
layerCount:=aLayerCount;
viewFormatCount:=aViewFormatCount;
pViewFormats:=aPViewFormats;
end;
constructor TVkFramebufferAttachmentsCreateInfo.Create(const aAttachmentImageInfoCount:TVkUInt32;
const aPAttachmentImageInfos:PVkFramebufferAttachmentImageInfo);
begin
sType:=VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
pNext:=nil;
attachmentImageInfoCount:=aAttachmentImageInfoCount;
pAttachmentImageInfos:=aPAttachmentImageInfos;
end;
constructor TVkRenderPassAttachmentBeginInfo.Create(const aAttachmentCount:TVkUInt32;
const aPAttachments:PVkImageView);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
pNext:=nil;
attachmentCount:=aAttachmentCount;
pAttachments:=aPAttachments;
end;
constructor TVkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.Create(const aTextureCompressionASTC_HDR:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT;
pNext:=nil;
textureCompressionASTC_HDR:=aTextureCompressionASTC_HDR;
end;
constructor TVkPhysicalDeviceCooperativeMatrixFeaturesNV.Create(const aCooperativeMatrix:TVkBool32;
const aCooperativeMatrixRobustBufferAccess:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
pNext:=nil;
cooperativeMatrix:=aCooperativeMatrix;
cooperativeMatrixRobustBufferAccess:=aCooperativeMatrixRobustBufferAccess;
end;
constructor TVkPhysicalDeviceCooperativeMatrixPropertiesNV.Create(const aCooperativeMatrixSupportedStages:TVkShaderStageFlags);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
pNext:=nil;
cooperativeMatrixSupportedStages:=aCooperativeMatrixSupportedStages;
end;
constructor TVkCooperativeMatrixPropertiesNV.Create(const aMSize:TVkUInt32;
const aNSize:TVkUInt32;
const aKSize:TVkUInt32;
const aAType:TVkComponentTypeNV;
const aBType:TVkComponentTypeNV;
const aCType:TVkComponentTypeNV;
const aDType:TVkComponentTypeNV;
const aScope:TVkScopeNV);
begin
sType:=VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
pNext:=nil;
MSize:=aMSize;
NSize:=aNSize;
KSize:=aKSize;
AType:=aAType;
BType:=aBType;
CType:=aCType;
DType:=aDType;
scope:=aScope;
end;
constructor TVkPhysicalDeviceYcbcrImageArraysFeaturesEXT.Create(const aYcbcrImageArrays:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
pNext:=nil;
ycbcrImageArrays:=aYcbcrImageArrays;
end;
constructor TVkImageViewHandleInfoNVX.Create(const aImageView:TVkImageView;
const aDescriptorType:TVkDescriptorType;
const aSampler:TVkSampler);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
pNext:=nil;
imageView:=aImageView;
descriptorType:=aDescriptorType;
sampler:=aSampler;
end;
constructor TVkImageViewAddressPropertiesNVX.Create(const aDeviceAddress:TVkDeviceAddress;
const aSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
pNext:=nil;
deviceAddress:=aDeviceAddress;
size:=aSize;
end;
constructor TVkPresentFrameTokenGGP.Create(const aFrameToken:TVkGgpFrameToken);
begin
sType:=VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP;
pNext:=nil;
frameToken:=aFrameToken;
end;
constructor TVkPipelineCreationFeedbackEXT.Create(const aFlags:TVkPipelineCreationFeedbackFlagsEXT;
const aDuration:TVkUInt64);
begin
flags:=aFlags;
duration:=aDuration;
end;
constructor TVkPipelineCreationFeedbackCreateInfoEXT.Create(const aPPipelineCreationFeedback:PVkPipelineCreationFeedbackEXT;
const aPipelineStageCreationFeedbackCount:TVkUInt32;
const aPPipelineStageCreationFeedbacks:PPVkPipelineCreationFeedbackEXT);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT;
pNext:=nil;
pPipelineCreationFeedback:=aPPipelineCreationFeedback;
pipelineStageCreationFeedbackCount:=aPipelineStageCreationFeedbackCount;
pPipelineStageCreationFeedbacks:=aPPipelineStageCreationFeedbacks;
end;
constructor TVkSurfaceFullScreenExclusiveInfoEXT.Create(const aFullScreenExclusive:TVkFullScreenExclusiveEXT);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
pNext:=nil;
fullScreenExclusive:=aFullScreenExclusive;
end;
{$ifdef Windows}
constructor TVkSurfaceFullScreenExclusiveWin32InfoEXT.Create(const aHmonitor_:TVkHMONITOR);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
pNext:=nil;
hmonitor_:=aHmonitor_;
end;
{$endif}
constructor TVkSurfaceCapabilitiesFullScreenExclusiveEXT.Create(const aFullScreenExclusiveSupported:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
pNext:=nil;
fullScreenExclusiveSupported:=aFullScreenExclusiveSupported;
end;
constructor TVkPhysicalDevicePerformanceQueryFeaturesKHR.Create(const aPerformanceCounterQueryPools:TVkBool32;
const aPerformanceCounterMultipleQueryPools:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
pNext:=nil;
performanceCounterQueryPools:=aPerformanceCounterQueryPools;
performanceCounterMultipleQueryPools:=aPerformanceCounterMultipleQueryPools;
end;
constructor TVkPhysicalDevicePerformanceQueryPropertiesKHR.Create(const aAllowCommandBufferQueryCopies:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
pNext:=nil;
allowCommandBufferQueryCopies:=aAllowCommandBufferQueryCopies;
end;
constructor TVkPerformanceCounterKHR.Create(const aUnit_:TVkPerformanceCounterUnitKHR;
const aScope:TVkPerformanceCounterScopeKHR;
const aStorage:TVkPerformanceCounterStorageKHR;
const aUuid:array of TVkUInt8);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPerformanceCounterKHR),#0);
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR;
pNext:=nil;
unit_:=aUnit_;
scope:=aScope;
storage:=aStorage;
ArrayItemCount:=length(aUuid);
if ArrayItemCount>length(uuid) then begin
ArrayItemCount:=length(uuid);
end;
if ArrayItemCount>0 then begin
Move(aUuid[0],uuid[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
end;
constructor TVkPerformanceCounterDescriptionKHR.Create(const aFlags:TVkPerformanceCounterDescriptionFlagsKHR;
const aName:TVkCharString;
const aCategory:TVkCharString;
const aDescription:TVkCharString);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPerformanceCounterDescriptionKHR),#0);
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR;
pNext:=nil;
flags:=aFlags;
ArrayItemCount:=length(aName);
if ArrayItemCount>length(name) then begin
ArrayItemCount:=length(name);
end;
if ArrayItemCount>0 then begin
Move(aName[1],name[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aCategory);
if ArrayItemCount>length(category) then begin
ArrayItemCount:=length(category);
end;
if ArrayItemCount>0 then begin
Move(aCategory[1],category[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
end;
constructor TVkQueryPoolPerformanceCreateInfoKHR.Create(const aQueueFamilyIndex:TVkUInt32;
const aCounterIndexCount:TVkUInt32;
const aPCounterIndices:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
pNext:=nil;
queueFamilyIndex:=aQueueFamilyIndex;
counterIndexCount:=aCounterIndexCount;
pCounterIndices:=aPCounterIndices;
end;
constructor TVkAcquireProfilingLockInfoKHR.Create(const aFlags:TVkAcquireProfilingLockFlagsKHR;
const aTimeout:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR;
pNext:=nil;
flags:=aFlags;
timeout:=aTimeout;
end;
constructor TVkPerformanceQuerySubmitInfoKHR.Create(const aCounterPassIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
pNext:=nil;
counterPassIndex:=aCounterPassIndex;
end;
constructor TVkHeadlessSurfaceCreateInfoEXT.Create(const aFlags:TVkHeadlessSurfaceCreateFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkPhysicalDeviceCoverageReductionModeFeaturesNV.Create(const aCoverageReductionMode:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
pNext:=nil;
coverageReductionMode:=aCoverageReductionMode;
end;
constructor TVkPipelineCoverageReductionStateCreateInfoNV.Create(const aFlags:TVkPipelineCoverageReductionStateCreateFlagsNV;
const aCoverageReductionMode:TVkCoverageReductionModeNV);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
coverageReductionMode:=aCoverageReductionMode;
end;
constructor TVkFramebufferMixedSamplesCombinationNV.Create(const aCoverageReductionMode:TVkCoverageReductionModeNV;
const aRasterizationSamples:TVkSampleCountFlagBits;
const aDepthStencilSamples:TVkSampleCountFlags;
const aColorSamples:TVkSampleCountFlags);
begin
sType:=VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
pNext:=nil;
coverageReductionMode:=aCoverageReductionMode;
rasterizationSamples:=aRasterizationSamples;
depthStencilSamples:=aDepthStencilSamples;
colorSamples:=aColorSamples;
end;
constructor TVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.Create(const aShaderIntegerFunctions2:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL;
pNext:=nil;
shaderIntegerFunctions2:=aShaderIntegerFunctions2;
end;
constructor TVkPerformanceValueINTEL.Create(const aType_:TVkPerformanceValueTypeINTEL;
const aData:TVkPerformanceValueDataINTEL);
begin
type_:=aType_;
data:=aData;
end;
constructor TVkInitializePerformanceApiInfoINTEL.Create(const aPUserData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL;
pNext:=nil;
pUserData:=aPUserData;
end;
constructor TVkQueryPoolPerformanceQueryCreateInfoINTEL.Create(const aPerformanceCountersSampling:TVkQueryPoolSamplingModeINTEL);
begin
sType:=VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
pNext:=nil;
performanceCountersSampling:=aPerformanceCountersSampling;
end;
constructor TVkPerformanceMarkerInfoINTEL.Create(const aMarker:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL;
pNext:=nil;
marker:=aMarker;
end;
constructor TVkPerformanceStreamMarkerInfoINTEL.Create(const aMarker:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL;
pNext:=nil;
marker:=aMarker;
end;
constructor TVkPerformanceOverrideInfoINTEL.Create(const aType_:TVkPerformanceOverrideTypeINTEL;
const aEnable:TVkBool32;
const aParameter:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL;
pNext:=nil;
type_:=aType_;
enable:=aEnable;
parameter:=aParameter;
end;
constructor TVkPerformanceConfigurationAcquireInfoINTEL.Create(const aType_:TVkPerformanceConfigurationTypeINTEL);
begin
sType:=VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
pNext:=nil;
type_:=aType_;
end;
constructor TVkPhysicalDeviceShaderClockFeaturesKHR.Create(const aShaderSubgroupClock:TVkBool32;
const aShaderDeviceClock:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
pNext:=nil;
shaderSubgroupClock:=aShaderSubgroupClock;
shaderDeviceClock:=aShaderDeviceClock;
end;
constructor TVkPhysicalDeviceIndexTypeUint8FeaturesEXT.Create(const aIndexTypeUint8:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
pNext:=nil;
indexTypeUint8:=aIndexTypeUint8;
end;
constructor TVkPhysicalDeviceShaderSMBuiltinsPropertiesNV.Create(const aShaderSMCount:TVkUInt32;
const aShaderWarpsPerSM:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
pNext:=nil;
shaderSMCount:=aShaderSMCount;
shaderWarpsPerSM:=aShaderWarpsPerSM;
end;
constructor TVkPhysicalDeviceShaderSMBuiltinsFeaturesNV.Create(const aShaderSMBuiltins:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
pNext:=nil;
shaderSMBuiltins:=aShaderSMBuiltins;
end;
constructor TVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.Create(const aFragmentShaderSampleInterlock:TVkBool32;
const aFragmentShaderPixelInterlock:TVkBool32;
const aFragmentShaderShadingRateInterlock:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
pNext:=nil;
fragmentShaderSampleInterlock:=aFragmentShaderSampleInterlock;
fragmentShaderPixelInterlock:=aFragmentShaderPixelInterlock;
fragmentShaderShadingRateInterlock:=aFragmentShaderShadingRateInterlock;
end;
constructor TVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.Create(const aSeparateDepthStencilLayouts:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
pNext:=nil;
separateDepthStencilLayouts:=aSeparateDepthStencilLayouts;
end;
constructor TVkAttachmentReferenceStencilLayout.Create(const aStencilLayout:TVkImageLayout);
begin
sType:=VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
pNext:=nil;
stencilLayout:=aStencilLayout;
end;
constructor TVkAttachmentDescriptionStencilLayout.Create(const aStencilInitialLayout:TVkImageLayout;
const aStencilFinalLayout:TVkImageLayout);
begin
sType:=VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
pNext:=nil;
stencilInitialLayout:=aStencilInitialLayout;
stencilFinalLayout:=aStencilFinalLayout;
end;
constructor TVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.Create(const aPipelineExecutableInfo:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
pNext:=nil;
pipelineExecutableInfo:=aPipelineExecutableInfo;
end;
constructor TVkPipelineInfoKHR.Create(const aPipeline:TVkPipeline);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR;
pNext:=nil;
pipeline:=aPipeline;
end;
constructor TVkPipelineExecutablePropertiesKHR.Create(const aStages:TVkShaderStageFlags;
const aName:TVkCharString;
const aDescription:TVkCharString;
const aSubgroupSize:TVkUInt32);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineExecutablePropertiesKHR),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR;
pNext:=nil;
stages:=aStages;
ArrayItemCount:=length(aName);
if ArrayItemCount>length(name) then begin
ArrayItemCount:=length(name);
end;
if ArrayItemCount>0 then begin
Move(aName[1],name[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
subgroupSize:=aSubgroupSize;
end;
constructor TVkPipelineExecutableInfoKHR.Create(const aPipeline:TVkPipeline;
const aExecutableIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR;
pNext:=nil;
pipeline:=aPipeline;
executableIndex:=aExecutableIndex;
end;
constructor TVkPipelineExecutableStatisticKHR.Create(const aName:TVkCharString;
const aDescription:TVkCharString;
const aFormat:TVkPipelineExecutableStatisticFormatKHR;
const aValue:TVkPipelineExecutableStatisticValueKHR);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineExecutableStatisticKHR),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR;
pNext:=nil;
ArrayItemCount:=length(aName);
if ArrayItemCount>length(name) then begin
ArrayItemCount:=length(name);
end;
if ArrayItemCount>0 then begin
Move(aName[1],name[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
format:=aFormat;
value:=aValue;
end;
constructor TVkPipelineExecutableInternalRepresentationKHR.Create(const aName:TVkCharString;
const aDescription:TVkCharString;
const aIsText:TVkBool32;
const aDataSize:TVkSize;
const aPData:PVkVoid);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineExecutableInternalRepresentationKHR),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
pNext:=nil;
ArrayItemCount:=length(aName);
if ArrayItemCount>length(name) then begin
ArrayItemCount:=length(name);
end;
if ArrayItemCount>0 then begin
Move(aName[1],name[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
isText:=aIsText;
dataSize:=aDataSize;
pData:=aPData;
end;
constructor TVkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.Create(const aShaderDemoteToHelperInvocation:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
pNext:=nil;
shaderDemoteToHelperInvocation:=aShaderDemoteToHelperInvocation;
end;
constructor TVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.Create(const aTexelBufferAlignment:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
pNext:=nil;
texelBufferAlignment:=aTexelBufferAlignment;
end;
constructor TVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT.Create(const aStorageTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
const aStorageTexelBufferOffsetSingleTexelAlignment:TVkBool32;
const aUniformTexelBufferOffsetAlignmentBytes:TVkDeviceSize;
const aUniformTexelBufferOffsetSingleTexelAlignment:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
pNext:=nil;
storageTexelBufferOffsetAlignmentBytes:=aStorageTexelBufferOffsetAlignmentBytes;
storageTexelBufferOffsetSingleTexelAlignment:=aStorageTexelBufferOffsetSingleTexelAlignment;
uniformTexelBufferOffsetAlignmentBytes:=aUniformTexelBufferOffsetAlignmentBytes;
uniformTexelBufferOffsetSingleTexelAlignment:=aUniformTexelBufferOffsetSingleTexelAlignment;
end;
constructor TVkPhysicalDeviceSubgroupSizeControlFeaturesEXT.Create(const aSubgroupSizeControl:TVkBool32;
const aComputeFullSubgroups:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
pNext:=nil;
subgroupSizeControl:=aSubgroupSizeControl;
computeFullSubgroups:=aComputeFullSubgroups;
end;
constructor TVkPhysicalDeviceSubgroupSizeControlPropertiesEXT.Create(const aMinSubgroupSize:TVkUInt32;
const aMaxSubgroupSize:TVkUInt32;
const aMaxComputeWorkgroupSubgroups:TVkUInt32;
const aRequiredSubgroupSizeStages:TVkShaderStageFlags);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
pNext:=nil;
minSubgroupSize:=aMinSubgroupSize;
maxSubgroupSize:=aMaxSubgroupSize;
maxComputeWorkgroupSubgroups:=aMaxComputeWorkgroupSubgroups;
requiredSubgroupSizeStages:=aRequiredSubgroupSizeStages;
end;
constructor TVkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT.Create(const aRequiredSubgroupSize:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT;
pNext:=nil;
requiredSubgroupSize:=aRequiredSubgroupSize;
end;
constructor TVkSubpassShadingPipelineCreateInfoHUAWEI.Create(const aRenderPass:TVkRenderPass;
const aSubpass:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
pNext:=nil;
renderPass:=aRenderPass;
subpass:=aSubpass;
end;
constructor TVkPhysicalDeviceSubpassShadingPropertiesHUAWEI.Create(const aMaxSubpassShadingWorkgroupSizeAspectRatio:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
pNext:=nil;
maxSubpassShadingWorkgroupSizeAspectRatio:=aMaxSubpassShadingWorkgroupSizeAspectRatio;
end;
constructor TVkMemoryOpaqueCaptureAddressAllocateInfo.Create(const aOpaqueCaptureAddress:TVkUInt64);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
pNext:=nil;
opaqueCaptureAddress:=aOpaqueCaptureAddress;
end;
constructor TVkDeviceMemoryOpaqueCaptureAddressInfo.Create(const aMemory:TVkDeviceMemory);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
pNext:=nil;
memory:=aMemory;
end;
constructor TVkPhysicalDeviceLineRasterizationFeaturesEXT.Create(const aRectangularLines:TVkBool32;
const aBresenhamLines:TVkBool32;
const aSmoothLines:TVkBool32;
const aStippledRectangularLines:TVkBool32;
const aStippledBresenhamLines:TVkBool32;
const aStippledSmoothLines:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT;
pNext:=nil;
rectangularLines:=aRectangularLines;
bresenhamLines:=aBresenhamLines;
smoothLines:=aSmoothLines;
stippledRectangularLines:=aStippledRectangularLines;
stippledBresenhamLines:=aStippledBresenhamLines;
stippledSmoothLines:=aStippledSmoothLines;
end;
constructor TVkPhysicalDeviceLineRasterizationPropertiesEXT.Create(const aLineSubPixelPrecisionBits:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT;
pNext:=nil;
lineSubPixelPrecisionBits:=aLineSubPixelPrecisionBits;
end;
constructor TVkPipelineRasterizationLineStateCreateInfoEXT.Create(const aLineRasterizationMode:TVkLineRasterizationModeEXT;
const aStippledLineEnable:TVkBool32;
const aLineStippleFactor:TVkUInt32;
const aLineStipplePattern:TVkUInt16);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT;
pNext:=nil;
lineRasterizationMode:=aLineRasterizationMode;
stippledLineEnable:=aStippledLineEnable;
lineStippleFactor:=aLineStippleFactor;
lineStipplePattern:=aLineStipplePattern;
end;
constructor TVkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.Create(const aPipelineCreationCacheControl:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT;
pNext:=nil;
pipelineCreationCacheControl:=aPipelineCreationCacheControl;
end;
constructor TVkPhysicalDeviceVulkan11Features.Create(const aStorageBuffer16BitAccess:TVkBool32;
const aUniformAndStorageBuffer16BitAccess:TVkBool32;
const aStoragePushConstant16:TVkBool32;
const aStorageInputOutput16:TVkBool32;
const aMultiview:TVkBool32;
const aMultiviewGeometryShader:TVkBool32;
const aMultiviewTessellationShader:TVkBool32;
const aVariablePointersStorageBuffer:TVkBool32;
const aVariablePointers:TVkBool32;
const aProtectedMemory:TVkBool32;
const aSamplerYcbcrConversion:TVkBool32;
const aShaderDrawParameters:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
pNext:=nil;
storageBuffer16BitAccess:=aStorageBuffer16BitAccess;
uniformAndStorageBuffer16BitAccess:=aUniformAndStorageBuffer16BitAccess;
storagePushConstant16:=aStoragePushConstant16;
storageInputOutput16:=aStorageInputOutput16;
multiview:=aMultiview;
multiviewGeometryShader:=aMultiviewGeometryShader;
multiviewTessellationShader:=aMultiviewTessellationShader;
variablePointersStorageBuffer:=aVariablePointersStorageBuffer;
variablePointers:=aVariablePointers;
protectedMemory:=aProtectedMemory;
samplerYcbcrConversion:=aSamplerYcbcrConversion;
shaderDrawParameters:=aShaderDrawParameters;
end;
constructor TVkPhysicalDeviceVulkan11Properties.Create(const aDeviceUUID:array of TVkUInt8;
const aDriverUUID:array of TVkUInt8;
const aDeviceLUID:array of TVkUInt8;
const aDeviceNodeMask:TVkUInt32;
const aDeviceLUIDValid:TVkBool32;
const aSubgroupSize:TVkUInt32;
const aSubgroupSupportedStages:TVkShaderStageFlags;
const aSubgroupSupportedOperations:TVkSubgroupFeatureFlags;
const aSubgroupQuadOperationsInAllStages:TVkBool32;
const aPointClippingBehavior:TVkPointClippingBehavior;
const aMaxMultiviewViewCount:TVkUInt32;
const aMaxMultiviewInstanceIndex:TVkUInt32;
const aProtectedNoFault:TVkBool32;
const aMaxPerSetDescriptors:TVkUInt32;
const aMaxMemoryAllocationSize:TVkDeviceSize);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceVulkan11Properties),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
pNext:=nil;
ArrayItemCount:=length(aDeviceUUID);
if ArrayItemCount>length(deviceUUID) then begin
ArrayItemCount:=length(deviceUUID);
end;
if ArrayItemCount>0 then begin
Move(aDeviceUUID[0],deviceUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
ArrayItemCount:=length(aDriverUUID);
if ArrayItemCount>length(driverUUID) then begin
ArrayItemCount:=length(driverUUID);
end;
if ArrayItemCount>0 then begin
Move(aDriverUUID[0],driverUUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
ArrayItemCount:=length(aDeviceLUID);
if ArrayItemCount>length(deviceLUID) then begin
ArrayItemCount:=length(deviceLUID);
end;
if ArrayItemCount>0 then begin
Move(aDeviceLUID[0],deviceLUID[0],ArrayItemCount*SizeOf(TVkUInt8));
end;
deviceNodeMask:=aDeviceNodeMask;
deviceLUIDValid:=aDeviceLUIDValid;
subgroupSize:=aSubgroupSize;
subgroupSupportedStages:=aSubgroupSupportedStages;
subgroupSupportedOperations:=aSubgroupSupportedOperations;
subgroupQuadOperationsInAllStages:=aSubgroupQuadOperationsInAllStages;
pointClippingBehavior:=aPointClippingBehavior;
maxMultiviewViewCount:=aMaxMultiviewViewCount;
maxMultiviewInstanceIndex:=aMaxMultiviewInstanceIndex;
protectedNoFault:=aProtectedNoFault;
maxPerSetDescriptors:=aMaxPerSetDescriptors;
maxMemoryAllocationSize:=aMaxMemoryAllocationSize;
end;
constructor TVkPhysicalDeviceVulkan12Features.Create(const aSamplerMirrorClampToEdge:TVkBool32;
const aDrawIndirectCount:TVkBool32;
const aStorageBuffer8BitAccess:TVkBool32;
const aUniformAndStorageBuffer8BitAccess:TVkBool32;
const aStoragePushConstant8:TVkBool32;
const aShaderBufferInt64Atomics:TVkBool32;
const aShaderSharedInt64Atomics:TVkBool32;
const aShaderFloat16:TVkBool32;
const aShaderInt8:TVkBool32;
const aDescriptorIndexing:TVkBool32;
const aShaderInputAttachmentArrayDynamicIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayDynamicIndexing:TVkBool32;
const aShaderUniformBufferArrayNonUniformIndexing:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexing:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexing:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexing:TVkBool32;
const aShaderUniformTexelBufferArrayNonUniformIndexing:TVkBool32;
const aShaderStorageTexelBufferArrayNonUniformIndexing:TVkBool32;
const aDescriptorBindingUniformBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingSampledImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageImageUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUniformTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingStorageTexelBufferUpdateAfterBind:TVkBool32;
const aDescriptorBindingUpdateUnusedWhilePending:TVkBool32;
const aDescriptorBindingPartiallyBound:TVkBool32;
const aDescriptorBindingVariableDescriptorCount:TVkBool32;
const aRuntimeDescriptorArray:TVkBool32;
const aSamplerFilterMinmax:TVkBool32;
const aScalarBlockLayout:TVkBool32;
const aImagelessFramebuffer:TVkBool32;
const aUniformBufferStandardLayout:TVkBool32;
const aShaderSubgroupExtendedTypes:TVkBool32;
const aSeparateDepthStencilLayouts:TVkBool32;
const aHostQueryReset:TVkBool32;
const aTimelineSemaphore:TVkBool32;
const aBufferDeviceAddress:TVkBool32;
const aBufferDeviceAddressCaptureReplay:TVkBool32;
const aBufferDeviceAddressMultiDevice:TVkBool32;
const aVulkanMemoryModel:TVkBool32;
const aVulkanMemoryModelDeviceScope:TVkBool32;
const aVulkanMemoryModelAvailabilityVisibilityChains:TVkBool32;
const aShaderOutputViewportIndex:TVkBool32;
const aShaderOutputLayer:TVkBool32;
const aSubgroupBroadcastDynamicId:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
pNext:=nil;
samplerMirrorClampToEdge:=aSamplerMirrorClampToEdge;
drawIndirectCount:=aDrawIndirectCount;
storageBuffer8BitAccess:=aStorageBuffer8BitAccess;
uniformAndStorageBuffer8BitAccess:=aUniformAndStorageBuffer8BitAccess;
storagePushConstant8:=aStoragePushConstant8;
shaderBufferInt64Atomics:=aShaderBufferInt64Atomics;
shaderSharedInt64Atomics:=aShaderSharedInt64Atomics;
shaderFloat16:=aShaderFloat16;
shaderInt8:=aShaderInt8;
descriptorIndexing:=aDescriptorIndexing;
shaderInputAttachmentArrayDynamicIndexing:=aShaderInputAttachmentArrayDynamicIndexing;
shaderUniformTexelBufferArrayDynamicIndexing:=aShaderUniformTexelBufferArrayDynamicIndexing;
shaderStorageTexelBufferArrayDynamicIndexing:=aShaderStorageTexelBufferArrayDynamicIndexing;
shaderUniformBufferArrayNonUniformIndexing:=aShaderUniformBufferArrayNonUniformIndexing;
shaderSampledImageArrayNonUniformIndexing:=aShaderSampledImageArrayNonUniformIndexing;
shaderStorageBufferArrayNonUniformIndexing:=aShaderStorageBufferArrayNonUniformIndexing;
shaderStorageImageArrayNonUniformIndexing:=aShaderStorageImageArrayNonUniformIndexing;
shaderInputAttachmentArrayNonUniformIndexing:=aShaderInputAttachmentArrayNonUniformIndexing;
shaderUniformTexelBufferArrayNonUniformIndexing:=aShaderUniformTexelBufferArrayNonUniformIndexing;
shaderStorageTexelBufferArrayNonUniformIndexing:=aShaderStorageTexelBufferArrayNonUniformIndexing;
descriptorBindingUniformBufferUpdateAfterBind:=aDescriptorBindingUniformBufferUpdateAfterBind;
descriptorBindingSampledImageUpdateAfterBind:=aDescriptorBindingSampledImageUpdateAfterBind;
descriptorBindingStorageImageUpdateAfterBind:=aDescriptorBindingStorageImageUpdateAfterBind;
descriptorBindingStorageBufferUpdateAfterBind:=aDescriptorBindingStorageBufferUpdateAfterBind;
descriptorBindingUniformTexelBufferUpdateAfterBind:=aDescriptorBindingUniformTexelBufferUpdateAfterBind;
descriptorBindingStorageTexelBufferUpdateAfterBind:=aDescriptorBindingStorageTexelBufferUpdateAfterBind;
descriptorBindingUpdateUnusedWhilePending:=aDescriptorBindingUpdateUnusedWhilePending;
descriptorBindingPartiallyBound:=aDescriptorBindingPartiallyBound;
descriptorBindingVariableDescriptorCount:=aDescriptorBindingVariableDescriptorCount;
runtimeDescriptorArray:=aRuntimeDescriptorArray;
samplerFilterMinmax:=aSamplerFilterMinmax;
scalarBlockLayout:=aScalarBlockLayout;
imagelessFramebuffer:=aImagelessFramebuffer;
uniformBufferStandardLayout:=aUniformBufferStandardLayout;
shaderSubgroupExtendedTypes:=aShaderSubgroupExtendedTypes;
separateDepthStencilLayouts:=aSeparateDepthStencilLayouts;
hostQueryReset:=aHostQueryReset;
timelineSemaphore:=aTimelineSemaphore;
bufferDeviceAddress:=aBufferDeviceAddress;
bufferDeviceAddressCaptureReplay:=aBufferDeviceAddressCaptureReplay;
bufferDeviceAddressMultiDevice:=aBufferDeviceAddressMultiDevice;
vulkanMemoryModel:=aVulkanMemoryModel;
vulkanMemoryModelDeviceScope:=aVulkanMemoryModelDeviceScope;
vulkanMemoryModelAvailabilityVisibilityChains:=aVulkanMemoryModelAvailabilityVisibilityChains;
shaderOutputViewportIndex:=aShaderOutputViewportIndex;
shaderOutputLayer:=aShaderOutputLayer;
subgroupBroadcastDynamicId:=aSubgroupBroadcastDynamicId;
end;
constructor TVkPhysicalDeviceVulkan12Properties.Create(const aDriverID:TVkDriverId;
const aDriverName:TVkCharString;
const aDriverInfo:TVkCharString;
const aConformanceVersion:TVkConformanceVersion;
const aDenormBehaviorIndependence:TVkShaderFloatControlsIndependence;
const aRoundingModeIndependence:TVkShaderFloatControlsIndependence;
const aShaderSignedZeroInfNanPreserveFloat16:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat32:TVkBool32;
const aShaderSignedZeroInfNanPreserveFloat64:TVkBool32;
const aShaderDenormPreserveFloat16:TVkBool32;
const aShaderDenormPreserveFloat32:TVkBool32;
const aShaderDenormPreserveFloat64:TVkBool32;
const aShaderDenormFlushToZeroFloat16:TVkBool32;
const aShaderDenormFlushToZeroFloat32:TVkBool32;
const aShaderDenormFlushToZeroFloat64:TVkBool32;
const aShaderRoundingModeRTEFloat16:TVkBool32;
const aShaderRoundingModeRTEFloat32:TVkBool32;
const aShaderRoundingModeRTEFloat64:TVkBool32;
const aShaderRoundingModeRTZFloat16:TVkBool32;
const aShaderRoundingModeRTZFloat32:TVkBool32;
const aShaderRoundingModeRTZFloat64:TVkBool32;
const aMaxUpdateAfterBindDescriptorsInAllPools:TVkUInt32;
const aShaderUniformBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderSampledImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageBufferArrayNonUniformIndexingNative:TVkBool32;
const aShaderStorageImageArrayNonUniformIndexingNative:TVkBool32;
const aShaderInputAttachmentArrayNonUniformIndexingNative:TVkBool32;
const aRobustBufferAccessUpdateAfterBind:TVkBool32;
const aQuadDivergentImplicitLod:TVkBool32;
const aMaxPerStageDescriptorUpdateAfterBindSamplers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindSampledImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindStorageImages:TVkUInt32;
const aMaxPerStageDescriptorUpdateAfterBindInputAttachments:TVkUInt32;
const aMaxPerStageUpdateAfterBindResources:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSamplers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffers:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindSampledImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindStorageImages:TVkUInt32;
const aMaxDescriptorSetUpdateAfterBindInputAttachments:TVkUInt32;
const aSupportedDepthResolveModes:TVkResolveModeFlags;
const aSupportedStencilResolveModes:TVkResolveModeFlags;
const aIndependentResolveNone:TVkBool32;
const aIndependentResolve:TVkBool32;
const aFilterMinmaxSingleComponentFormats:TVkBool32;
const aFilterMinmaxImageComponentMapping:TVkBool32;
const aMaxTimelineSemaphoreValueDifference:TVkUInt64;
const aFramebufferIntegerColorSampleCounts:TVkSampleCountFlags);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceVulkan12Properties),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
pNext:=nil;
driverID:=aDriverID;
ArrayItemCount:=length(aDriverName);
if ArrayItemCount>length(driverName) then begin
ArrayItemCount:=length(driverName);
end;
if ArrayItemCount>0 then begin
Move(aDriverName[1],driverName[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aDriverInfo);
if ArrayItemCount>length(driverInfo) then begin
ArrayItemCount:=length(driverInfo);
end;
if ArrayItemCount>0 then begin
Move(aDriverInfo[1],driverInfo[0],ArrayItemCount*SizeOf(TVkChar));
end;
conformanceVersion:=aConformanceVersion;
denormBehaviorIndependence:=aDenormBehaviorIndependence;
roundingModeIndependence:=aRoundingModeIndependence;
shaderSignedZeroInfNanPreserveFloat16:=aShaderSignedZeroInfNanPreserveFloat16;
shaderSignedZeroInfNanPreserveFloat32:=aShaderSignedZeroInfNanPreserveFloat32;
shaderSignedZeroInfNanPreserveFloat64:=aShaderSignedZeroInfNanPreserveFloat64;
shaderDenormPreserveFloat16:=aShaderDenormPreserveFloat16;
shaderDenormPreserveFloat32:=aShaderDenormPreserveFloat32;
shaderDenormPreserveFloat64:=aShaderDenormPreserveFloat64;
shaderDenormFlushToZeroFloat16:=aShaderDenormFlushToZeroFloat16;
shaderDenormFlushToZeroFloat32:=aShaderDenormFlushToZeroFloat32;
shaderDenormFlushToZeroFloat64:=aShaderDenormFlushToZeroFloat64;
shaderRoundingModeRTEFloat16:=aShaderRoundingModeRTEFloat16;
shaderRoundingModeRTEFloat32:=aShaderRoundingModeRTEFloat32;
shaderRoundingModeRTEFloat64:=aShaderRoundingModeRTEFloat64;
shaderRoundingModeRTZFloat16:=aShaderRoundingModeRTZFloat16;
shaderRoundingModeRTZFloat32:=aShaderRoundingModeRTZFloat32;
shaderRoundingModeRTZFloat64:=aShaderRoundingModeRTZFloat64;
maxUpdateAfterBindDescriptorsInAllPools:=aMaxUpdateAfterBindDescriptorsInAllPools;
shaderUniformBufferArrayNonUniformIndexingNative:=aShaderUniformBufferArrayNonUniformIndexingNative;
shaderSampledImageArrayNonUniformIndexingNative:=aShaderSampledImageArrayNonUniformIndexingNative;
shaderStorageBufferArrayNonUniformIndexingNative:=aShaderStorageBufferArrayNonUniformIndexingNative;
shaderStorageImageArrayNonUniformIndexingNative:=aShaderStorageImageArrayNonUniformIndexingNative;
shaderInputAttachmentArrayNonUniformIndexingNative:=aShaderInputAttachmentArrayNonUniformIndexingNative;
robustBufferAccessUpdateAfterBind:=aRobustBufferAccessUpdateAfterBind;
quadDivergentImplicitLod:=aQuadDivergentImplicitLod;
maxPerStageDescriptorUpdateAfterBindSamplers:=aMaxPerStageDescriptorUpdateAfterBindSamplers;
maxPerStageDescriptorUpdateAfterBindUniformBuffers:=aMaxPerStageDescriptorUpdateAfterBindUniformBuffers;
maxPerStageDescriptorUpdateAfterBindStorageBuffers:=aMaxPerStageDescriptorUpdateAfterBindStorageBuffers;
maxPerStageDescriptorUpdateAfterBindSampledImages:=aMaxPerStageDescriptorUpdateAfterBindSampledImages;
maxPerStageDescriptorUpdateAfterBindStorageImages:=aMaxPerStageDescriptorUpdateAfterBindStorageImages;
maxPerStageDescriptorUpdateAfterBindInputAttachments:=aMaxPerStageDescriptorUpdateAfterBindInputAttachments;
maxPerStageUpdateAfterBindResources:=aMaxPerStageUpdateAfterBindResources;
maxDescriptorSetUpdateAfterBindSamplers:=aMaxDescriptorSetUpdateAfterBindSamplers;
maxDescriptorSetUpdateAfterBindUniformBuffers:=aMaxDescriptorSetUpdateAfterBindUniformBuffers;
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic:=aMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
maxDescriptorSetUpdateAfterBindStorageBuffers:=aMaxDescriptorSetUpdateAfterBindStorageBuffers;
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic:=aMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
maxDescriptorSetUpdateAfterBindSampledImages:=aMaxDescriptorSetUpdateAfterBindSampledImages;
maxDescriptorSetUpdateAfterBindStorageImages:=aMaxDescriptorSetUpdateAfterBindStorageImages;
maxDescriptorSetUpdateAfterBindInputAttachments:=aMaxDescriptorSetUpdateAfterBindInputAttachments;
supportedDepthResolveModes:=aSupportedDepthResolveModes;
supportedStencilResolveModes:=aSupportedStencilResolveModes;
independentResolveNone:=aIndependentResolveNone;
independentResolve:=aIndependentResolve;
filterMinmaxSingleComponentFormats:=aFilterMinmaxSingleComponentFormats;
filterMinmaxImageComponentMapping:=aFilterMinmaxImageComponentMapping;
maxTimelineSemaphoreValueDifference:=aMaxTimelineSemaphoreValueDifference;
framebufferIntegerColorSampleCounts:=aFramebufferIntegerColorSampleCounts;
end;
constructor TVkPipelineCompilerControlCreateInfoAMD.Create(const aCompilerControlFlags:TVkPipelineCompilerControlFlagsAMD);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
pNext:=nil;
compilerControlFlags:=aCompilerControlFlags;
end;
constructor TVkPhysicalDeviceCoherentMemoryFeaturesAMD.Create(const aDeviceCoherentMemory:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
pNext:=nil;
deviceCoherentMemory:=aDeviceCoherentMemory;
end;
constructor TVkPhysicalDeviceToolPropertiesEXT.Create(const aName:TVkCharString;
const aVersion:TVkCharString;
const aPurposes:TVkToolPurposeFlagsEXT;
const aDescription:TVkCharString;
const aLayer:TVkCharString);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPhysicalDeviceToolPropertiesEXT),#0);
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT;
pNext:=nil;
ArrayItemCount:=length(aName);
if ArrayItemCount>length(name) then begin
ArrayItemCount:=length(name);
end;
if ArrayItemCount>0 then begin
Move(aName[1],name[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aVersion);
if ArrayItemCount>length(version) then begin
ArrayItemCount:=length(version);
end;
if ArrayItemCount>0 then begin
Move(aVersion[1],version[0],ArrayItemCount*SizeOf(TVkChar));
end;
purposes:=aPurposes;
ArrayItemCount:=length(aDescription);
if ArrayItemCount>length(description) then begin
ArrayItemCount:=length(description);
end;
if ArrayItemCount>0 then begin
Move(aDescription[1],description[0],ArrayItemCount*SizeOf(TVkChar));
end;
ArrayItemCount:=length(aLayer);
if ArrayItemCount>length(layer) then begin
ArrayItemCount:=length(layer);
end;
if ArrayItemCount>0 then begin
Move(aLayer[1],layer[0],ArrayItemCount*SizeOf(TVkChar));
end;
end;
constructor TVkSamplerCustomBorderColorCreateInfoEXT.Create(const aCustomBorderColor:TVkClearColorValue;
const aFormat:TVkFormat);
begin
sType:=VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
pNext:=nil;
customBorderColor:=aCustomBorderColor;
format:=aFormat;
end;
constructor TVkPhysicalDeviceCustomBorderColorPropertiesEXT.Create(const aMaxCustomBorderColorSamplers:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
pNext:=nil;
maxCustomBorderColorSamplers:=aMaxCustomBorderColorSamplers;
end;
constructor TVkPhysicalDeviceCustomBorderColorFeaturesEXT.Create(const aCustomBorderColors:TVkBool32;
const aCustomBorderColorWithoutFormat:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
pNext:=nil;
customBorderColors:=aCustomBorderColors;
customBorderColorWithoutFormat:=aCustomBorderColorWithoutFormat;
end;
constructor TVkAccelerationStructureGeometryTrianglesDataKHR.Create(const aVertexFormat:TVkFormat;
const aVertexData:TVkDeviceOrHostAddressConstKHR;
const aVertexStride:TVkDeviceSize;
const aMaxVertex:TVkUInt32;
const aIndexType:TVkIndexType;
const aIndexData:TVkDeviceOrHostAddressConstKHR;
const aTransformData:TVkDeviceOrHostAddressConstKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
pNext:=nil;
vertexFormat:=aVertexFormat;
vertexData:=aVertexData;
vertexStride:=aVertexStride;
maxVertex:=aMaxVertex;
indexType:=aIndexType;
indexData:=aIndexData;
transformData:=aTransformData;
end;
constructor TVkAccelerationStructureGeometryAabbsDataKHR.Create(const aData:TVkDeviceOrHostAddressConstKHR;
const aStride:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
pNext:=nil;
data:=aData;
stride:=aStride;
end;
constructor TVkAccelerationStructureGeometryInstancesDataKHR.Create(const aArrayOfPointers:TVkBool32;
const aData:TVkDeviceOrHostAddressConstKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
pNext:=nil;
arrayOfPointers:=aArrayOfPointers;
data:=aData;
end;
constructor TVkAccelerationStructureGeometryKHR.Create(const aGeometryType:TVkGeometryTypeKHR;
const aGeometry:TVkAccelerationStructureGeometryDataKHR;
const aFlags:TVkGeometryFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
pNext:=nil;
geometryType:=aGeometryType;
geometry:=aGeometry;
flags:=aFlags;
end;
constructor TVkAccelerationStructureBuildGeometryInfoKHR.Create(const aType_:TVkAccelerationStructureTypeKHR;
const aFlags:TVkBuildAccelerationStructureFlagsKHR;
const aMode:TVkBuildAccelerationStructureModeKHR;
const aSrcAccelerationStructure:TVkAccelerationStructureKHR;
const aDstAccelerationStructure:TVkAccelerationStructureKHR;
const aGeometryCount:TVkUInt32;
const aPGeometries:PVkAccelerationStructureGeometryKHR;
const aPpGeometries:PPVkAccelerationStructureGeometryKHR;
const aScratchData:TVkDeviceOrHostAddressKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
pNext:=nil;
type_:=aType_;
flags:=aFlags;
mode:=aMode;
srcAccelerationStructure:=aSrcAccelerationStructure;
dstAccelerationStructure:=aDstAccelerationStructure;
geometryCount:=aGeometryCount;
pGeometries:=aPGeometries;
ppGeometries:=aPpGeometries;
scratchData:=aScratchData;
end;
constructor TVkAccelerationStructureBuildRangeInfoKHR.Create(const aPrimitiveCount:TVkUInt32;
const aPrimitiveOffset:TVkUInt32;
const aFirstVertex:TVkUInt32;
const aTransformOffset:TVkUInt32);
begin
primitiveCount:=aPrimitiveCount;
primitiveOffset:=aPrimitiveOffset;
firstVertex:=aFirstVertex;
transformOffset:=aTransformOffset;
end;
constructor TVkAccelerationStructureCreateInfoKHR.Create(const aCreateFlags:TVkAccelerationStructureCreateFlagsKHR;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize;
const aType_:TVkAccelerationStructureTypeKHR;
const aDeviceAddress:TVkDeviceAddress);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
pNext:=nil;
createFlags:=aCreateFlags;
buffer:=aBuffer;
offset:=aOffset;
size:=aSize;
type_:=aType_;
deviceAddress:=aDeviceAddress;
end;
constructor TVkAabbPositionsKHR.Create(const aMinX:TVkFloat;
const aMinY:TVkFloat;
const aMinZ:TVkFloat;
const aMaxX:TVkFloat;
const aMaxY:TVkFloat;
const aMaxZ:TVkFloat);
begin
minX:=aMinX;
minY:=aMinY;
minZ:=aMinZ;
maxX:=aMaxX;
maxY:=aMaxY;
maxZ:=aMaxZ;
end;
constructor TVkTransformMatrixKHR.Create(const aMatrix:array of TVkFloat);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkTransformMatrixKHR),#0);
ArrayItemCount:=length(aMatrix);
if ArrayItemCount>length(matrix) then begin
ArrayItemCount:=length(matrix);
end;
if ArrayItemCount>0 then begin
Move(aMatrix[0],matrix[0],ArrayItemCount*SizeOf(TVkFloat));
end;
end;
constructor TVkAccelerationStructureInstanceKHR.Create(const aTransform:TVkTransformMatrixKHR;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
begin
transform:=aTransform;
instanceCustomIndex:=aInstanceCustomIndex;
mask:=aMask;
instanceShaderBindingTableRecordOffset:=aInstanceShaderBindingTableRecordOffset;
flags:=aFlags;
accelerationStructureReference:=aAccelerationStructureReference;
end;
constructor TVkAccelerationStructureDeviceAddressInfoKHR.Create(const aAccelerationStructure:TVkAccelerationStructureKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
pNext:=nil;
accelerationStructure:=aAccelerationStructure;
end;
constructor TVkAccelerationStructureVersionInfoKHR.Create(const aPVersionData:PVkUInt8);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
pNext:=nil;
pVersionData:=aPVersionData;
end;
constructor TVkCopyAccelerationStructureInfoKHR.Create(const aSrc:TVkAccelerationStructureKHR;
const aDst:TVkAccelerationStructureKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
pNext:=nil;
src:=aSrc;
dst:=aDst;
mode:=aMode;
end;
constructor TVkCopyAccelerationStructureToMemoryInfoKHR.Create(const aSrc:TVkAccelerationStructureKHR;
const aDst:TVkDeviceOrHostAddressKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
pNext:=nil;
src:=aSrc;
dst:=aDst;
mode:=aMode;
end;
constructor TVkCopyMemoryToAccelerationStructureInfoKHR.Create(const aSrc:TVkDeviceOrHostAddressConstKHR;
const aDst:TVkAccelerationStructureKHR;
const aMode:TVkCopyAccelerationStructureModeKHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
pNext:=nil;
src:=aSrc;
dst:=aDst;
mode:=aMode;
end;
constructor TVkPipelineLibraryCreateInfoKHR.Create(const aLibraryCount:TVkUInt32;
const aPLibraries:PVkPipeline);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
pNext:=nil;
libraryCount:=aLibraryCount;
pLibraries:=aPLibraries;
end;
constructor TVkRayTracingPipelineCreateInfoKHR.Create(const aFlags:TVkPipelineCreateFlags;
const aStageCount:TVkUInt32;
const aPStages:PVkPipelineShaderStageCreateInfo;
const aGroupCount:TVkUInt32;
const aPGroups:PVkRayTracingShaderGroupCreateInfoKHR;
const aMaxPipelineRayRecursionDepth:TVkUInt32;
const aPLibraryInfo:PVkPipelineLibraryCreateInfoKHR;
const aPLibraryInterface:PVkRayTracingPipelineInterfaceCreateInfoKHR;
const aPDynamicState:PVkPipelineDynamicStateCreateInfo;
const aLayout:TVkPipelineLayout;
const aBasePipelineHandle:TVkPipeline;
const aBasePipelineIndex:TVkInt32);
begin
sType:=VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
stageCount:=aStageCount;
pStages:=aPStages;
groupCount:=aGroupCount;
pGroups:=aPGroups;
maxPipelineRayRecursionDepth:=aMaxPipelineRayRecursionDepth;
pLibraryInfo:=aPLibraryInfo;
pLibraryInterface:=aPLibraryInterface;
pDynamicState:=aPDynamicState;
layout:=aLayout;
basePipelineHandle:=aBasePipelineHandle;
basePipelineIndex:=aBasePipelineIndex;
end;
constructor TVkPhysicalDeviceExtendedDynamicStateFeaturesEXT.Create(const aExtendedDynamicState:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
pNext:=nil;
extendedDynamicState:=aExtendedDynamicState;
end;
constructor TVkPhysicalDeviceExtendedDynamicState2FeaturesEXT.Create(const aExtendedDynamicState2:TVkBool32;
const aExtendedDynamicState2LogicOp:TVkBool32;
const aExtendedDynamicState2PatchControlPoints:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
pNext:=nil;
extendedDynamicState2:=aExtendedDynamicState2;
extendedDynamicState2LogicOp:=aExtendedDynamicState2LogicOp;
extendedDynamicState2PatchControlPoints:=aExtendedDynamicState2PatchControlPoints;
end;
constructor TVkRenderPassTransformBeginInfoQCOM.Create(const aTransform:TVkSurfaceTransformFlagBitsKHR);
begin
sType:=VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
pNext:=nil;
transform:=aTransform;
end;
constructor TVkCopyCommandTransformInfoQCOM.Create(const aTransform:TVkSurfaceTransformFlagBitsKHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM;
pNext:=nil;
transform:=aTransform;
end;
constructor TVkCommandBufferInheritanceRenderPassTransformInfoQCOM.Create(const aTransform:TVkSurfaceTransformFlagBitsKHR;
const aRenderArea:TVkRect2D);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
pNext:=nil;
transform:=aTransform;
renderArea:=aRenderArea;
end;
constructor TVkPhysicalDeviceDiagnosticsConfigFeaturesNV.Create(const aDiagnosticsConfig:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
pNext:=nil;
diagnosticsConfig:=aDiagnosticsConfig;
end;
constructor TVkDeviceDiagnosticsConfigCreateInfoNV.Create(const aFlags:TVkDeviceDiagnosticsConfigFlagsNV);
begin
sType:=VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
pNext:=nil;
flags:=aFlags;
end;
constructor TVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.Create(const aShaderZeroInitializeWorkgroupMemory:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR;
pNext:=nil;
shaderZeroInitializeWorkgroupMemory:=aShaderZeroInitializeWorkgroupMemory;
end;
constructor TVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.Create(const aShaderSubgroupUniformControlFlow:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
pNext:=nil;
shaderSubgroupUniformControlFlow:=aShaderSubgroupUniformControlFlow;
end;
constructor TVkPhysicalDeviceRobustness2FeaturesEXT.Create(const aRobustBufferAccess2:TVkBool32;
const aRobustImageAccess2:TVkBool32;
const aNullDescriptor:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
pNext:=nil;
robustBufferAccess2:=aRobustBufferAccess2;
robustImageAccess2:=aRobustImageAccess2;
nullDescriptor:=aNullDescriptor;
end;
constructor TVkPhysicalDeviceRobustness2PropertiesEXT.Create(const aRobustStorageBufferAccessSizeAlignment:TVkDeviceSize;
const aRobustUniformBufferAccessSizeAlignment:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
pNext:=nil;
robustStorageBufferAccessSizeAlignment:=aRobustStorageBufferAccessSizeAlignment;
robustUniformBufferAccessSizeAlignment:=aRobustUniformBufferAccessSizeAlignment;
end;
constructor TVkPhysicalDeviceImageRobustnessFeaturesEXT.Create(const aRobustImageAccess:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT;
pNext:=nil;
robustImageAccess:=aRobustImageAccess;
end;
constructor TVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.Create(const aWorkgroupMemoryExplicitLayout:TVkBool32;
const aWorkgroupMemoryExplicitLayoutScalarBlockLayout:TVkBool32;
const aWorkgroupMemoryExplicitLayout8BitAccess:TVkBool32;
const aWorkgroupMemoryExplicitLayout16BitAccess:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
pNext:=nil;
workgroupMemoryExplicitLayout:=aWorkgroupMemoryExplicitLayout;
workgroupMemoryExplicitLayoutScalarBlockLayout:=aWorkgroupMemoryExplicitLayoutScalarBlockLayout;
workgroupMemoryExplicitLayout8BitAccess:=aWorkgroupMemoryExplicitLayout8BitAccess;
workgroupMemoryExplicitLayout16BitAccess:=aWorkgroupMemoryExplicitLayout16BitAccess;
end;
constructor TVkPhysicalDevicePortabilitySubsetFeaturesKHR.Create(const aConstantAlphaColorBlendFactors:TVkBool32;
const aEvents:TVkBool32;
const aImageViewFormatReinterpretation:TVkBool32;
const aImageViewFormatSwizzle:TVkBool32;
const aImageView2DOn3DImage:TVkBool32;
const aMultisampleArrayImage:TVkBool32;
const aMutableComparisonSamplers:TVkBool32;
const aPointPolygons:TVkBool32;
const aSamplerMipLodBias:TVkBool32;
const aSeparateStencilMaskRef:TVkBool32;
const aShaderSampleRateInterpolationFunctions:TVkBool32;
const aTessellationIsolines:TVkBool32;
const aTessellationPointMode:TVkBool32;
const aTriangleFans:TVkBool32;
const aVertexAttributeAccessBeyondStride:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
pNext:=nil;
constantAlphaColorBlendFactors:=aConstantAlphaColorBlendFactors;
events:=aEvents;
imageViewFormatReinterpretation:=aImageViewFormatReinterpretation;
imageViewFormatSwizzle:=aImageViewFormatSwizzle;
imageView2DOn3DImage:=aImageView2DOn3DImage;
multisampleArrayImage:=aMultisampleArrayImage;
mutableComparisonSamplers:=aMutableComparisonSamplers;
pointPolygons:=aPointPolygons;
samplerMipLodBias:=aSamplerMipLodBias;
separateStencilMaskRef:=aSeparateStencilMaskRef;
shaderSampleRateInterpolationFunctions:=aShaderSampleRateInterpolationFunctions;
tessellationIsolines:=aTessellationIsolines;
tessellationPointMode:=aTessellationPointMode;
triangleFans:=aTriangleFans;
vertexAttributeAccessBeyondStride:=aVertexAttributeAccessBeyondStride;
end;
constructor TVkPhysicalDevicePortabilitySubsetPropertiesKHR.Create(const aMinVertexInputBindingStrideAlignment:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
pNext:=nil;
minVertexInputBindingStrideAlignment:=aMinVertexInputBindingStrideAlignment;
end;
constructor TVkPhysicalDevice4444FormatsFeaturesEXT.Create(const aFormatA4R4G4B4:TVkBool32;
const aFormatA4B4G4R4:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
pNext:=nil;
formatA4R4G4B4:=aFormatA4R4G4B4;
formatA4B4G4R4:=aFormatA4B4G4R4;
end;
constructor TVkPhysicalDeviceSubpassShadingFeaturesHUAWEI.Create(const aSubpassShading:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
pNext:=nil;
subpassShading:=aSubpassShading;
end;
constructor TVkBufferCopy2KHR.Create(const aSrcOffset:TVkDeviceSize;
const aDstOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR;
pNext:=nil;
srcOffset:=aSrcOffset;
dstOffset:=aDstOffset;
size:=aSize;
end;
constructor TVkImageCopy2KHR.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR;
pNext:=nil;
srcSubresource:=aSrcSubresource;
srcOffset:=aSrcOffset;
dstSubresource:=aDstSubresource;
dstOffset:=aDstOffset;
extent:=aExtent;
end;
constructor TVkImageBlit2KHR.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffsets:array of TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffsets:array of TVkOffset3D);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkImageBlit2KHR),#0);
sType:=VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR;
pNext:=nil;
srcSubresource:=aSrcSubresource;
ArrayItemCount:=length(aSrcOffsets);
if ArrayItemCount>length(srcOffsets) then begin
ArrayItemCount:=length(srcOffsets);
end;
if ArrayItemCount>0 then begin
Move(aSrcOffsets[0],srcOffsets[0],ArrayItemCount*SizeOf(TVkOffset3D));
end;
dstSubresource:=aDstSubresource;
ArrayItemCount:=length(aDstOffsets);
if ArrayItemCount>length(dstOffsets) then begin
ArrayItemCount:=length(dstOffsets);
end;
if ArrayItemCount>0 then begin
Move(aDstOffsets[0],dstOffsets[0],ArrayItemCount*SizeOf(TVkOffset3D));
end;
end;
constructor TVkBufferImageCopy2KHR.Create(const aBufferOffset:TVkDeviceSize;
const aBufferRowLength:TVkUInt32;
const aBufferImageHeight:TVkUInt32;
const aImageSubresource:TVkImageSubresourceLayers;
const aImageOffset:TVkOffset3D;
const aImageExtent:TVkExtent3D);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR;
pNext:=nil;
bufferOffset:=aBufferOffset;
bufferRowLength:=aBufferRowLength;
bufferImageHeight:=aBufferImageHeight;
imageSubresource:=aImageSubresource;
imageOffset:=aImageOffset;
imageExtent:=aImageExtent;
end;
constructor TVkImageResolve2KHR.Create(const aSrcSubresource:TVkImageSubresourceLayers;
const aSrcOffset:TVkOffset3D;
const aDstSubresource:TVkImageSubresourceLayers;
const aDstOffset:TVkOffset3D;
const aExtent:TVkExtent3D);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR;
pNext:=nil;
srcSubresource:=aSrcSubresource;
srcOffset:=aSrcOffset;
dstSubresource:=aDstSubresource;
dstOffset:=aDstOffset;
extent:=aExtent;
end;
constructor TVkCopyBufferInfo2KHR.Create(const aSrcBuffer:TVkBuffer;
const aDstBuffer:TVkBuffer;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferCopy2KHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR;
pNext:=nil;
srcBuffer:=aSrcBuffer;
dstBuffer:=aDstBuffer;
regionCount:=aRegionCount;
pRegions:=aPRegions;
end;
constructor TVkCopyImageInfo2KHR.Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageCopy2KHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR;
pNext:=nil;
srcImage:=aSrcImage;
srcImageLayout:=aSrcImageLayout;
dstImage:=aDstImage;
dstImageLayout:=aDstImageLayout;
regionCount:=aRegionCount;
pRegions:=aPRegions;
end;
constructor TVkBlitImageInfo2KHR.Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageBlit2KHR;
const aFilter:TVkFilter);
begin
sType:=VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR;
pNext:=nil;
srcImage:=aSrcImage;
srcImageLayout:=aSrcImageLayout;
dstImage:=aDstImage;
dstImageLayout:=aDstImageLayout;
regionCount:=aRegionCount;
pRegions:=aPRegions;
filter:=aFilter;
end;
constructor TVkCopyBufferToImageInfo2KHR.Create(const aSrcBuffer:TVkBuffer;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferImageCopy2KHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR;
pNext:=nil;
srcBuffer:=aSrcBuffer;
dstImage:=aDstImage;
dstImageLayout:=aDstImageLayout;
regionCount:=aRegionCount;
pRegions:=aPRegions;
end;
constructor TVkCopyImageToBufferInfo2KHR.Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstBuffer:TVkBuffer;
const aRegionCount:TVkUInt32;
const aPRegions:PVkBufferImageCopy2KHR);
begin
sType:=VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR;
pNext:=nil;
srcImage:=aSrcImage;
srcImageLayout:=aSrcImageLayout;
dstBuffer:=aDstBuffer;
regionCount:=aRegionCount;
pRegions:=aPRegions;
end;
constructor TVkResolveImageInfo2KHR.Create(const aSrcImage:TVkImage;
const aSrcImageLayout:TVkImageLayout;
const aDstImage:TVkImage;
const aDstImageLayout:TVkImageLayout;
const aRegionCount:TVkUInt32;
const aPRegions:PVkImageResolve2KHR);
begin
sType:=VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR;
pNext:=nil;
srcImage:=aSrcImage;
srcImageLayout:=aSrcImageLayout;
dstImage:=aDstImage;
dstImageLayout:=aDstImageLayout;
regionCount:=aRegionCount;
pRegions:=aPRegions;
end;
constructor TVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.Create(const aShaderImageInt64Atomics:TVkBool32;
const aSparseImageInt64Atomics:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
pNext:=nil;
shaderImageInt64Atomics:=aShaderImageInt64Atomics;
sparseImageInt64Atomics:=aSparseImageInt64Atomics;
end;
constructor TVkFragmentShadingRateAttachmentInfoKHR.Create(const aPFragmentShadingRateAttachment:PVkAttachmentReference2;
const aShadingRateAttachmentTexelSize:TVkExtent2D);
begin
sType:=VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
pNext:=nil;
pFragmentShadingRateAttachment:=aPFragmentShadingRateAttachment;
shadingRateAttachmentTexelSize:=aShadingRateAttachmentTexelSize;
end;
constructor TVkPipelineFragmentShadingRateStateCreateInfoKHR.Create(const aFragmentSize:TVkExtent2D;
const aCombinerOps:array of TVkFragmentShadingRateCombinerOpKHR);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineFragmentShadingRateStateCreateInfoKHR),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
pNext:=nil;
fragmentSize:=aFragmentSize;
ArrayItemCount:=length(aCombinerOps);
if ArrayItemCount>length(combinerOps) then begin
ArrayItemCount:=length(combinerOps);
end;
if ArrayItemCount>0 then begin
Move(aCombinerOps[0],combinerOps[0],ArrayItemCount*SizeOf(TVkFragmentShadingRateCombinerOpKHR));
end;
end;
constructor TVkPhysicalDeviceFragmentShadingRateFeaturesKHR.Create(const aPipelineFragmentShadingRate:TVkBool32;
const aPrimitiveFragmentShadingRate:TVkBool32;
const aAttachmentFragmentShadingRate:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
pNext:=nil;
pipelineFragmentShadingRate:=aPipelineFragmentShadingRate;
primitiveFragmentShadingRate:=aPrimitiveFragmentShadingRate;
attachmentFragmentShadingRate:=aAttachmentFragmentShadingRate;
end;
constructor TVkPhysicalDeviceFragmentShadingRatePropertiesKHR.Create(const aMinFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
const aMaxFragmentShadingRateAttachmentTexelSize:TVkExtent2D;
const aMaxFragmentShadingRateAttachmentTexelSizeAspectRatio:TVkUInt32;
const aPrimitiveFragmentShadingRateWithMultipleViewports:TVkBool32;
const aLayeredShadingRateAttachments:TVkBool32;
const aFragmentShadingRateNonTrivialCombinerOps:TVkBool32;
const aMaxFragmentSize:TVkExtent2D;
const aMaxFragmentSizeAspectRatio:TVkUInt32;
const aMaxFragmentShadingRateCoverageSamples:TVkUInt32;
const aMaxFragmentShadingRateRasterizationSamples:TVkSampleCountFlagBits;
const aFragmentShadingRateWithShaderDepthStencilWrites:TVkBool32;
const aFragmentShadingRateWithSampleMask:TVkBool32;
const aFragmentShadingRateWithShaderSampleMask:TVkBool32;
const aFragmentShadingRateWithConservativeRasterization:TVkBool32;
const aFragmentShadingRateWithFragmentShaderInterlock:TVkBool32;
const aFragmentShadingRateWithCustomSampleLocations:TVkBool32;
const aFragmentShadingRateStrictMultiplyCombiner:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
pNext:=nil;
minFragmentShadingRateAttachmentTexelSize:=aMinFragmentShadingRateAttachmentTexelSize;
maxFragmentShadingRateAttachmentTexelSize:=aMaxFragmentShadingRateAttachmentTexelSize;
maxFragmentShadingRateAttachmentTexelSizeAspectRatio:=aMaxFragmentShadingRateAttachmentTexelSizeAspectRatio;
primitiveFragmentShadingRateWithMultipleViewports:=aPrimitiveFragmentShadingRateWithMultipleViewports;
layeredShadingRateAttachments:=aLayeredShadingRateAttachments;
fragmentShadingRateNonTrivialCombinerOps:=aFragmentShadingRateNonTrivialCombinerOps;
maxFragmentSize:=aMaxFragmentSize;
maxFragmentSizeAspectRatio:=aMaxFragmentSizeAspectRatio;
maxFragmentShadingRateCoverageSamples:=aMaxFragmentShadingRateCoverageSamples;
maxFragmentShadingRateRasterizationSamples:=aMaxFragmentShadingRateRasterizationSamples;
fragmentShadingRateWithShaderDepthStencilWrites:=aFragmentShadingRateWithShaderDepthStencilWrites;
fragmentShadingRateWithSampleMask:=aFragmentShadingRateWithSampleMask;
fragmentShadingRateWithShaderSampleMask:=aFragmentShadingRateWithShaderSampleMask;
fragmentShadingRateWithConservativeRasterization:=aFragmentShadingRateWithConservativeRasterization;
fragmentShadingRateWithFragmentShaderInterlock:=aFragmentShadingRateWithFragmentShaderInterlock;
fragmentShadingRateWithCustomSampleLocations:=aFragmentShadingRateWithCustomSampleLocations;
fragmentShadingRateStrictMultiplyCombiner:=aFragmentShadingRateStrictMultiplyCombiner;
end;
constructor TVkPhysicalDeviceFragmentShadingRateKHR.Create(const aSampleCounts:TVkSampleCountFlags;
const aFragmentSize:TVkExtent2D);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
pNext:=nil;
sampleCounts:=aSampleCounts;
fragmentSize:=aFragmentSize;
end;
constructor TVkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.Create(const aShaderTerminateInvocation:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR;
pNext:=nil;
shaderTerminateInvocation:=aShaderTerminateInvocation;
end;
constructor TVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.Create(const aFragmentShadingRateEnums:TVkBool32;
const aSupersampleFragmentShadingRates:TVkBool32;
const aNoInvocationFragmentShadingRates:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
pNext:=nil;
fragmentShadingRateEnums:=aFragmentShadingRateEnums;
supersampleFragmentShadingRates:=aSupersampleFragmentShadingRates;
noInvocationFragmentShadingRates:=aNoInvocationFragmentShadingRates;
end;
constructor TVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.Create(const aMaxFragmentShadingRateInvocationCount:TVkSampleCountFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
pNext:=nil;
maxFragmentShadingRateInvocationCount:=aMaxFragmentShadingRateInvocationCount;
end;
constructor TVkPipelineFragmentShadingRateEnumStateCreateInfoNV.Create(const aShadingRateType:TVkFragmentShadingRateTypeNV;
const aShadingRate:TVkFragmentShadingRateNV;
const aCombinerOps:array of TVkFragmentShadingRateCombinerOpKHR);
var ArrayItemCount:TVkInt32;
begin
FillChar(self,SizeOf(TVkPipelineFragmentShadingRateEnumStateCreateInfoNV),#0);
sType:=VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
pNext:=nil;
shadingRateType:=aShadingRateType;
shadingRate:=aShadingRate;
ArrayItemCount:=length(aCombinerOps);
if ArrayItemCount>length(combinerOps) then begin
ArrayItemCount:=length(combinerOps);
end;
if ArrayItemCount>0 then begin
Move(aCombinerOps[0],combinerOps[0],ArrayItemCount*SizeOf(TVkFragmentShadingRateCombinerOpKHR));
end;
end;
constructor TVkAccelerationStructureBuildSizesInfoKHR.Create(const aAccelerationStructureSize:TVkDeviceSize;
const aUpdateScratchSize:TVkDeviceSize;
const aBuildScratchSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
pNext:=nil;
accelerationStructureSize:=aAccelerationStructureSize;
updateScratchSize:=aUpdateScratchSize;
buildScratchSize:=aBuildScratchSize;
end;
constructor TVkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.Create(const aMutableDescriptorType:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE;
pNext:=nil;
mutableDescriptorType:=aMutableDescriptorType;
end;
constructor TVkMutableDescriptorTypeListVALVE.Create(const aDescriptorTypeCount:TVkUInt32;
const aPDescriptorTypes:PVkDescriptorType);
begin
descriptorTypeCount:=aDescriptorTypeCount;
pDescriptorTypes:=aPDescriptorTypes;
end;
constructor TVkMutableDescriptorTypeCreateInfoVALVE.Create(const aMutableDescriptorTypeListCount:TVkUInt32;
const aPMutableDescriptorTypeLists:PVkMutableDescriptorTypeListVALVE);
begin
sType:=VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE;
pNext:=nil;
mutableDescriptorTypeListCount:=aMutableDescriptorTypeListCount;
pMutableDescriptorTypeLists:=aPMutableDescriptorTypeLists;
end;
constructor TVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.Create(const aVertexInputDynamicState:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
pNext:=nil;
vertexInputDynamicState:=aVertexInputDynamicState;
end;
constructor TVkPhysicalDeviceExternalMemoryRDMAFeaturesNV.Create(const aExternalMemoryRDMA:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
pNext:=nil;
externalMemoryRDMA:=aExternalMemoryRDMA;
end;
constructor TVkVertexInputBindingDescription2EXT.Create(const aBinding:TVkUInt32;
const aStride:TVkUInt32;
const aInputRate:TVkVertexInputRate;
const aDivisor:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
pNext:=nil;
binding:=aBinding;
stride:=aStride;
inputRate:=aInputRate;
divisor:=aDivisor;
end;
constructor TVkVertexInputAttributeDescription2EXT.Create(const aLocation:TVkUInt32;
const aBinding:TVkUInt32;
const aFormat:TVkFormat;
const aOffset:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
pNext:=nil;
location:=aLocation;
binding:=aBinding;
format:=aFormat;
offset:=aOffset;
end;
constructor TVkPhysicalDeviceColorWriteEnableFeaturesEXT.Create(const aColorWriteEnable:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT;
pNext:=nil;
colorWriteEnable:=aColorWriteEnable;
end;
constructor TVkPipelineColorWriteCreateInfoEXT.Create(const aAttachmentCount:TVkUInt32;
const aPColorWriteEnables:PVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
pNext:=nil;
attachmentCount:=aAttachmentCount;
pColorWriteEnables:=aPColorWriteEnables;
end;
constructor TVkMemoryBarrier2KHR.Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR;
pNext:=nil;
srcStageMask:=aSrcStageMask;
srcAccessMask:=aSrcAccessMask;
dstStageMask:=aDstStageMask;
dstAccessMask:=aDstAccessMask;
end;
constructor TVkImageMemoryBarrier2KHR.Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR;
const aOldLayout:TVkImageLayout;
const aNewLayout:TVkImageLayout;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aImage:TVkImage;
const aSubresourceRange:TVkImageSubresourceRange);
begin
sType:=VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR;
pNext:=nil;
srcStageMask:=aSrcStageMask;
srcAccessMask:=aSrcAccessMask;
dstStageMask:=aDstStageMask;
dstAccessMask:=aDstAccessMask;
oldLayout:=aOldLayout;
newLayout:=aNewLayout;
srcQueueFamilyIndex:=aSrcQueueFamilyIndex;
dstQueueFamilyIndex:=aDstQueueFamilyIndex;
image:=aImage;
subresourceRange:=aSubresourceRange;
end;
constructor TVkBufferMemoryBarrier2KHR.Create(const aSrcStageMask:TVkPipelineStageFlags2KHR;
const aSrcAccessMask:TVkAccessFlags2KHR;
const aDstStageMask:TVkPipelineStageFlags2KHR;
const aDstAccessMask:TVkAccessFlags2KHR;
const aSrcQueueFamilyIndex:TVkUInt32;
const aDstQueueFamilyIndex:TVkUInt32;
const aBuffer:TVkBuffer;
const aOffset:TVkDeviceSize;
const aSize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR;
pNext:=nil;
srcStageMask:=aSrcStageMask;
srcAccessMask:=aSrcAccessMask;
dstStageMask:=aDstStageMask;
dstAccessMask:=aDstAccessMask;
srcQueueFamilyIndex:=aSrcQueueFamilyIndex;
dstQueueFamilyIndex:=aDstQueueFamilyIndex;
buffer:=aBuffer;
offset:=aOffset;
size:=aSize;
end;
constructor TVkDependencyInfoKHR.Create(const aDependencyFlags:TVkDependencyFlags;
const aMemoryBarrierCount:TVkUInt32;
const aPMemoryBarriers:PVkMemoryBarrier2KHR;
const aBufferMemoryBarrierCount:TVkUInt32;
const aPBufferMemoryBarriers:PVkBufferMemoryBarrier2KHR;
const aImageMemoryBarrierCount:TVkUInt32;
const aPImageMemoryBarriers:PVkImageMemoryBarrier2KHR);
begin
sType:=VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR;
pNext:=nil;
dependencyFlags:=aDependencyFlags;
memoryBarrierCount:=aMemoryBarrierCount;
pMemoryBarriers:=aPMemoryBarriers;
bufferMemoryBarrierCount:=aBufferMemoryBarrierCount;
pBufferMemoryBarriers:=aPBufferMemoryBarriers;
imageMemoryBarrierCount:=aImageMemoryBarrierCount;
pImageMemoryBarriers:=aPImageMemoryBarriers;
end;
constructor TVkSemaphoreSubmitInfoKHR.Create(const aSemaphore:TVkSemaphore;
const aValue:TVkUInt64;
const aStageMask:TVkPipelineStageFlags2KHR;
const aDeviceIndex:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR;
pNext:=nil;
semaphore:=aSemaphore;
value:=aValue;
stageMask:=aStageMask;
deviceIndex:=aDeviceIndex;
end;
constructor TVkCommandBufferSubmitInfoKHR.Create(const aCommandBuffer:TVkCommandBuffer;
const aDeviceMask:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR;
pNext:=nil;
commandBuffer:=aCommandBuffer;
deviceMask:=aDeviceMask;
end;
constructor TVkSubmitInfo2KHR.Create(const aFlags:TVkSubmitFlagsKHR;
const aWaitSemaphoreInfoCount:TVkUInt32;
const aPWaitSemaphoreInfos:PVkSemaphoreSubmitInfoKHR;
const aCommandBufferInfoCount:TVkUInt32;
const aPCommandBufferInfos:PVkCommandBufferSubmitInfoKHR;
const aSignalSemaphoreInfoCount:TVkUInt32;
const aPSignalSemaphoreInfos:PVkSemaphoreSubmitInfoKHR);
begin
sType:=VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR;
pNext:=nil;
flags:=aFlags;
waitSemaphoreInfoCount:=aWaitSemaphoreInfoCount;
pWaitSemaphoreInfos:=aPWaitSemaphoreInfos;
commandBufferInfoCount:=aCommandBufferInfoCount;
pCommandBufferInfos:=aPCommandBufferInfos;
signalSemaphoreInfoCount:=aSignalSemaphoreInfoCount;
pSignalSemaphoreInfos:=aPSignalSemaphoreInfos;
end;
constructor TVkQueueFamilyCheckpointProperties2NV.Create(const aCheckpointExecutionStageMask:TVkPipelineStageFlags2KHR);
begin
sType:=VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
pNext:=nil;
checkpointExecutionStageMask:=aCheckpointExecutionStageMask;
end;
constructor TVkCheckpointData2NV.Create(const aStage:TVkPipelineStageFlags2KHR;
const aPCheckpointMarker:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV;
pNext:=nil;
stage:=aStage;
pCheckpointMarker:=aPCheckpointMarker;
end;
constructor TVkPhysicalDeviceSynchronization2FeaturesKHR.Create(const aSynchronization2:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR;
pNext:=nil;
synchronization2:=aSynchronization2;
end;
{$ifdef VkVideo}
constructor TVkVideoQueueFamilyProperties2KHR.Create(const aVideoCodecOperations:TVkVideoCodecOperationFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR;
pNext:=nil;
videoCodecOperations:=aVideoCodecOperations;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoProfileKHR.Create(const aVideoCodecOperation:TVkVideoCodecOperationFlagBitsKHR;
const aChromaSubsampling:TVkVideoChromaSubsamplingFlagsKHR;
const aLumaBitDepth:TVkVideoComponentBitDepthFlagsKHR;
const aChromaBitDepth:TVkVideoComponentBitDepthFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR;
pNext:=nil;
videoCodecOperation:=aVideoCodecOperation;
chromaSubsampling:=aChromaSubsampling;
lumaBitDepth:=aLumaBitDepth;
chromaBitDepth:=aChromaBitDepth;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoProfilesKHR.Create(const aProfileCount:TVkUInt32;
const aPProfiles:PVkVideoProfileKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR;
pNext:=nil;
profileCount:=aProfileCount;
pProfiles:=aPProfiles;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoFormatPropertiesKHR.Create(const aFormat:TVkFormat);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR;
pNext:=nil;
format:=aFormat;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkPhysicalDeviceVideoFormatInfoKHR.Create(const aImageUsage:TVkImageUsageFlags;
const aPVideoProfiles:PVkVideoProfilesKHR);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
pNext:=nil;
imageUsage:=aImageUsage;
pVideoProfiles:=aPVideoProfiles;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoCapabilitiesKHR.Create(const aCapabilityFlags:TVkVideoCapabilitiesFlagsKHR;
const aMinBitstreamBufferOffsetAlignment:TVkDeviceSize;
const aMinBitstreamBufferSizeAlignment:TVkDeviceSize;
const aVideoPictureExtentGranularity:TVkExtent2D;
const aMinExtent:TVkExtent2D;
const aMaxExtent:TVkExtent2D;
const aMaxReferencePicturesSlotsCount:TVkUInt32;
const aMaxReferencePicturesActiveCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR;
pNext:=nil;
capabilityFlags:=aCapabilityFlags;
minBitstreamBufferOffsetAlignment:=aMinBitstreamBufferOffsetAlignment;
minBitstreamBufferSizeAlignment:=aMinBitstreamBufferSizeAlignment;
videoPictureExtentGranularity:=aVideoPictureExtentGranularity;
minExtent:=aMinExtent;
maxExtent:=aMaxExtent;
maxReferencePicturesSlotsCount:=aMaxReferencePicturesSlotsCount;
maxReferencePicturesActiveCount:=aMaxReferencePicturesActiveCount;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoGetMemoryPropertiesKHR.Create(const aMemoryBindIndex:TVkUInt32;
const aPMemoryRequirements:PVkMemoryRequirements2);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR;
pNext:=nil;
memoryBindIndex:=aMemoryBindIndex;
pMemoryRequirements:=aPMemoryRequirements;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoBindMemoryKHR.Create(const aMemoryBindIndex:TVkUInt32;
const aMemory:TVkDeviceMemory;
const aMemoryOffset:TVkDeviceSize;
const aMemorySize:TVkDeviceSize);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR;
pNext:=nil;
memoryBindIndex:=aMemoryBindIndex;
memory:=aMemory;
memoryOffset:=aMemoryOffset;
memorySize:=aMemorySize;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoPictureResourceKHR.Create(const aCodedOffset:TVkOffset2D;
const aCodedExtent:TVkExtent2D;
const aBaseArrayLayer:TVkUInt32;
const aImageViewBinding:TVkImageView);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR;
pNext:=nil;
codedOffset:=aCodedOffset;
codedExtent:=aCodedExtent;
baseArrayLayer:=aBaseArrayLayer;
imageViewBinding:=aImageViewBinding;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoReferenceSlotKHR.Create(const aSlotIndex:TVkInt8;
const aPPictureResource:PVkVideoPictureResourceKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR;
pNext:=nil;
slotIndex:=aSlotIndex;
pPictureResource:=aPPictureResource;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeInfoKHR.Create(const aFlags:TVkVideoDecodeFlagsKHR;
const aCodedOffset:TVkOffset2D;
const aCodedExtent:TVkExtent2D;
const aSrcBuffer:TVkBuffer;
const aSrcBufferOffset:TVkDeviceSize;
const aSrcBufferRange:TVkDeviceSize;
const aDstPictureResource:TVkVideoPictureResourceKHR;
const aPSetupReferenceSlot:PVkVideoReferenceSlotKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
codedOffset:=aCodedOffset;
codedExtent:=aCodedExtent;
srcBuffer:=aSrcBuffer;
srcBufferOffset:=aSrcBufferOffset;
srcBufferRange:=aSrcBufferRange;
dstPictureResource:=aDstPictureResource;
pSetupReferenceSlot:=aPSetupReferenceSlot;
referenceSlotCount:=aReferenceSlotCount;
pReferenceSlots:=aPReferenceSlots;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH264ProfileEXT.Create(const aStdProfileIdc:TStdVideoH264ProfileIdc;
const aFieldLayout:TVkVideoDecodeH264FieldLayoutFlagsEXT);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT;
pNext:=nil;
stdProfileIdc:=aStdProfileIdc;
fieldLayout:=aFieldLayout;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH264CapabilitiesEXT.Create(const aMaxLevel:TVkUInt32;
const aFieldOffsetGranularity:TVkOffset2D;
const aStdExtensionVersion:TVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT;
pNext:=nil;
maxLevel:=aMaxLevel;
fieldOffsetGranularity:=aFieldOffsetGranularity;
stdExtensionVersion:=aStdExtensionVersion;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH264SessionCreateInfoEXT.Create(const aFlags:TVkVideoDecodeH264CreateFlagsEXT;
const aPStdExtensionVersion:PVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
pStdExtensionVersion:=aPStdExtensionVersion;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH264SessionParametersAddInfoEXT.Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH264SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH264PictureParameterSet);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
pNext:=nil;
spsStdCount:=aSpsStdCount;
pSpsStd:=aPSpsStd;
ppsStdCount:=aPpsStdCount;
pPpsStd:=aPPpsStd;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH264SessionParametersCreateInfoEXT.Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoDecodeH264SessionParametersAddInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
pNext:=nil;
maxSpsStdCount:=aMaxSpsStdCount;
maxPpsStdCount:=aMaxPpsStdCount;
pParametersAddInfo:=aPParametersAddInfo;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH264PictureInfoEXT.Create(const aPStdPictureInfo:PStdVideoDecodeH264PictureInfo;
const aSlicesCount:TVkUInt32;
const aPSlicesDataOffsets:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT;
pNext:=nil;
pStdPictureInfo:=aPStdPictureInfo;
slicesCount:=aSlicesCount;
pSlicesDataOffsets:=aPSlicesDataOffsets;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH264DpbSlotInfoEXT.Create(const aPStdReferenceInfo:PStdVideoDecodeH264ReferenceInfo);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT;
pNext:=nil;
pStdReferenceInfo:=aPStdReferenceInfo;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH264MvcEXT.Create(const aPStdMvc:PStdVideoDecodeH264Mvc);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT;
pNext:=nil;
pStdMvc:=aPStdMvc;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH265ProfileEXT.Create(const aStdProfileIdc:TStdVideoH265ProfileIdc);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT;
pNext:=nil;
stdProfileIdc:=aStdProfileIdc;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH265CapabilitiesEXT.Create(const aMaxLevel:TVkUInt32;
const aStdExtensionVersion:TVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT;
pNext:=nil;
maxLevel:=aMaxLevel;
stdExtensionVersion:=aStdExtensionVersion;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH265SessionCreateInfoEXT.Create(const aFlags:TVkVideoDecodeH265CreateFlagsEXT;
const aPStdExtensionVersion:PVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
pStdExtensionVersion:=aPStdExtensionVersion;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH265SessionParametersAddInfoEXT.Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH265SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH265PictureParameterSet);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
pNext:=nil;
spsStdCount:=aSpsStdCount;
pSpsStd:=aPSpsStd;
ppsStdCount:=aPpsStdCount;
pPpsStd:=aPPpsStd;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoDecodeH265SessionParametersCreateInfoEXT.Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoDecodeH265SessionParametersAddInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
pNext:=nil;
maxSpsStdCount:=aMaxSpsStdCount;
maxPpsStdCount:=aMaxPpsStdCount;
pParametersAddInfo:=aPParametersAddInfo;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH265PictureInfoEXT.Create(const aPStdPictureInfo:PStdVideoDecodeH265PictureInfo;
const aSlicesCount:TVkUInt32;
const aPSlicesDataOffsets:PVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT;
pNext:=nil;
pStdPictureInfo:=aPStdPictureInfo;
slicesCount:=aSlicesCount;
pSlicesDataOffsets:=aPSlicesDataOffsets;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoDecodeH265DpbSlotInfoEXT.Create(const aPStdReferenceInfo:PStdVideoDecodeH265ReferenceInfo);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT;
pNext:=nil;
pStdReferenceInfo:=aPStdReferenceInfo;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoSessionCreateInfoKHR.Create(const aQueueFamilyIndex:TVkUInt32;
const aFlags:TVkVideoSessionCreateFlagsKHR;
const aPVideoProfile:PVkVideoProfileKHR;
const aPictureFormat:TVkFormat;
const aMaxCodedExtent:TVkExtent2D;
const aReferencePicturesFormat:TVkFormat;
const aMaxReferencePicturesSlotsCount:TVkUInt32;
const aMaxReferencePicturesActiveCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR;
pNext:=nil;
queueFamilyIndex:=aQueueFamilyIndex;
flags:=aFlags;
pVideoProfile:=aPVideoProfile;
pictureFormat:=aPictureFormat;
maxCodedExtent:=aMaxCodedExtent;
referencePicturesFormat:=aReferencePicturesFormat;
maxReferencePicturesSlotsCount:=aMaxReferencePicturesSlotsCount;
maxReferencePicturesActiveCount:=aMaxReferencePicturesActiveCount;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoSessionParametersCreateInfoKHR.Create(const aVideoSessionParametersTemplate:TVkVideoSessionParametersKHR;
const aVideoSession:TVkVideoSessionKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
pNext:=nil;
videoSessionParametersTemplate:=aVideoSessionParametersTemplate;
videoSession:=aVideoSession;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoSessionParametersUpdateInfoKHR.Create(const aUpdateSequenceCount:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
pNext:=nil;
updateSequenceCount:=aUpdateSequenceCount;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoBeginCodingInfoKHR.Create(const aFlags:TVkVideoBeginCodingFlagsKHR;
const aCodecQualityPreset:TVkVideoCodingQualityPresetFlagsKHR;
const aVideoSession:TVkVideoSessionKHR;
const aVideoSessionParameters:TVkVideoSessionParametersKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR;
pNext:=nil;
flags:=aFlags;
codecQualityPreset:=aCodecQualityPreset;
videoSession:=aVideoSession;
videoSessionParameters:=aVideoSessionParameters;
referenceSlotCount:=aReferenceSlotCount;
pReferenceSlots:=aPReferenceSlots;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEndCodingInfoKHR.Create(const aFlags:TVkVideoEndCodingFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR;
pNext:=nil;
flags:=aFlags;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoCodingControlInfoKHR.Create(const aFlags:TVkVideoCodingControlFlagsKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR;
pNext:=nil;
flags:=aFlags;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeInfoKHR.Create(const aFlags:TVkVideoEncodeFlagsKHR;
const aQualityLevel:TVkUInt32;
const aCodedExtent:TVkExtent2D;
const aDstBitstreamBuffer:TVkBuffer;
const aDstBitstreamBufferOffset:TVkDeviceSize;
const aDstBitstreamBufferMaxRange:TVkDeviceSize;
const aSrcPictureResource:TVkVideoPictureResourceKHR;
const aPSetupReferenceSlot:PVkVideoReferenceSlotKHR;
const aReferenceSlotCount:TVkUInt32;
const aPReferenceSlots:PVkVideoReferenceSlotKHR);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR;
pNext:=nil;
flags:=aFlags;
qualityLevel:=aQualityLevel;
codedExtent:=aCodedExtent;
dstBitstreamBuffer:=aDstBitstreamBuffer;
dstBitstreamBufferOffset:=aDstBitstreamBufferOffset;
dstBitstreamBufferMaxRange:=aDstBitstreamBufferMaxRange;
srcPictureResource:=aSrcPictureResource;
pSetupReferenceSlot:=aPSetupReferenceSlot;
referenceSlotCount:=aReferenceSlotCount;
pReferenceSlots:=aPReferenceSlots;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeRateControlInfoKHR.Create(const aFlags:TVkVideoEncodeRateControlFlagsKHR;
const aRateControlMode:TVkVideoEncodeRateControlModeFlagBitsKHR;
const aAverageBitrate:TVkUInt32;
const aPeakToAverageBitrateRatio:TVkUInt16;
const aFrameRateNumerator:TVkUInt16;
const aFrameRateDenominator:TVkUInt16;
const aVirtualBufferSizeInMs:TVkUInt32);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
pNext:=nil;
flags:=aFlags;
rateControlMode:=aRateControlMode;
averageBitrate:=aAverageBitrate;
peakToAverageBitrateRatio:=aPeakToAverageBitrateRatio;
frameRateNumerator:=aFrameRateNumerator;
frameRateDenominator:=aFrameRateDenominator;
virtualBufferSizeInMs:=aVirtualBufferSizeInMs;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264CapabilitiesEXT.Create(const aFlags:TVkVideoEncodeH264CapabilitiesFlagsEXT;
const aInputModeFlags:TVkVideoEncodeH264InputModeFlagsEXT;
const aOutputModeFlags:TVkVideoEncodeH264OutputModeFlagsEXT;
const aMinPictureSizeInMbs:TVkExtent2D;
const aMaxPictureSizeInMbs:TVkExtent2D;
const aInputImageDataAlignment:TVkExtent2D;
const aMaxNumL0ReferenceForP:TVkUInt8;
const aMaxNumL0ReferenceForB:TVkUInt8;
const aMaxNumL1Reference:TVkUInt8;
const aQualityLevelCount:TVkUInt8;
const aStdExtensionVersion:TVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT;
pNext:=nil;
flags:=aFlags;
inputModeFlags:=aInputModeFlags;
outputModeFlags:=aOutputModeFlags;
minPictureSizeInMbs:=aMinPictureSizeInMbs;
maxPictureSizeInMbs:=aMaxPictureSizeInMbs;
inputImageDataAlignment:=aInputImageDataAlignment;
maxNumL0ReferenceForP:=aMaxNumL0ReferenceForP;
maxNumL0ReferenceForB:=aMaxNumL0ReferenceForB;
maxNumL1Reference:=aMaxNumL1Reference;
qualityLevelCount:=aQualityLevelCount;
stdExtensionVersion:=aStdExtensionVersion;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264SessionCreateInfoEXT.Create(const aFlags:TVkVideoEncodeH264CreateFlagsEXT;
const aMaxPictureSizeInMbs:TVkExtent2D;
const aPStdExtensionVersion:PVkExtensionProperties);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT;
pNext:=nil;
flags:=aFlags;
maxPictureSizeInMbs:=aMaxPictureSizeInMbs;
pStdExtensionVersion:=aPStdExtensionVersion;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoEncodeH264SessionParametersAddInfoEXT.Create(const aSpsStdCount:TVkUInt32;
const aPSpsStd:PStdVideoH264SequenceParameterSet;
const aPpsStdCount:TVkUInt32;
const aPPpsStd:PStdVideoH264PictureParameterSet);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
pNext:=nil;
spsStdCount:=aSpsStdCount;
pSpsStd:=aPSpsStd;
ppsStdCount:=aPpsStdCount;
pPpsStd:=aPPpsStd;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264SessionParametersCreateInfoEXT.Create(const aMaxSpsStdCount:TVkUInt32;
const aMaxPpsStdCount:TVkUInt32;
const aPParametersAddInfo:PVkVideoEncodeH264SessionParametersAddInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
pNext:=nil;
maxSpsStdCount:=aMaxSpsStdCount;
maxPpsStdCount:=aMaxPpsStdCount;
pParametersAddInfo:=aPParametersAddInfo;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoEncodeH264DpbSlotInfoEXT.Create(const aSlotIndex:TVkInt8;
const aPStdPictureInfo:PStdVideoEncodeH264PictureInfo);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT;
pNext:=nil;
slotIndex:=aSlotIndex;
pStdPictureInfo:=aPStdPictureInfo;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264NaluSliceEXT.Create(const aPSliceHeaderStd:PStdVideoEncodeH264SliceHeader;
const aMbCount:TVkUInt32;
const aRefFinalList0EntryCount:TVkUInt8;
const aPRefFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aRefFinalList1EntryCount:TVkUInt8;
const aPRefFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aPrecedingNaluBytes:TVkUInt32;
const aMinQp:TVkUInt8;
const aMaxQp:TVkUInt8);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT;
pNext:=nil;
pSliceHeaderStd:=aPSliceHeaderStd;
mbCount:=aMbCount;
refFinalList0EntryCount:=aRefFinalList0EntryCount;
pRefFinalList0Entries:=aPRefFinalList0Entries;
refFinalList1EntryCount:=aRefFinalList1EntryCount;
pRefFinalList1Entries:=aPRefFinalList1Entries;
precedingNaluBytes:=aPrecedingNaluBytes;
minQp:=aMinQp;
maxQp:=aMaxQp;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264EmitPictureParametersEXT.Create(const aSpsId:TVkUInt8;
const aEmitSpsEnable:TVkBool32;
const aPpsIdEntryCount:TVkUInt32;
const aPpsIdEntries:PVkUInt8);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT;
pNext:=nil;
spsId:=aSpsId;
emitSpsEnable:=aEmitSpsEnable;
ppsIdEntryCount:=aPpsIdEntryCount;
ppsIdEntries:=aPpsIdEntries;
end;
{$endif}
{$ifdef VkStdVideo}
constructor TVkVideoEncodeH264ProfileEXT.Create(const aStdProfileIdc:TStdVideoH264ProfileIdc);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT;
pNext:=nil;
stdProfileIdc:=aStdProfileIdc;
end;
{$endif}
{$ifdef VkVideo}
constructor TVkVideoEncodeH264VclFrameInfoEXT.Create(const aRefDefaultFinalList0EntryCount:TVkUInt8;
const aPRefDefaultFinalList0Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aRefDefaultFinalList1EntryCount:TVkUInt8;
const aPRefDefaultFinalList1Entries:PVkVideoEncodeH264DpbSlotInfoEXT;
const aNaluSliceEntryCount:TVkUInt32;
const aPNaluSliceEntries:PVkVideoEncodeH264NaluSliceEXT;
const aPCurrentPictureInfo:PVkVideoEncodeH264DpbSlotInfoEXT);
begin
sType:=VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT;
pNext:=nil;
refDefaultFinalList0EntryCount:=aRefDefaultFinalList0EntryCount;
pRefDefaultFinalList0Entries:=aPRefDefaultFinalList0Entries;
refDefaultFinalList1EntryCount:=aRefDefaultFinalList1EntryCount;
pRefDefaultFinalList1Entries:=aPRefDefaultFinalList1Entries;
naluSliceEntryCount:=aNaluSliceEntryCount;
pNaluSliceEntries:=aPNaluSliceEntries;
pCurrentPictureInfo:=aPCurrentPictureInfo;
end;
{$endif}
constructor TVkPhysicalDeviceInheritedViewportScissorFeaturesNV.Create(const aInheritedViewportScissor2D:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
pNext:=nil;
inheritedViewportScissor2D:=aInheritedViewportScissor2D;
end;
constructor TVkCommandBufferInheritanceViewportScissorInfoNV.Create(const aViewportScissor2D:TVkBool32;
const aViewportDepthCount:TVkUInt32;
const aPViewportDepths:PVkViewport);
begin
sType:=VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
pNext:=nil;
viewportScissor2D:=aViewportScissor2D;
viewportDepthCount:=aViewportDepthCount;
pViewportDepths:=aPViewportDepths;
end;
constructor TVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.Create(const aYcbcr2plane444Formats:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
pNext:=nil;
ycbcr2plane444Formats:=aYcbcr2plane444Formats;
end;
constructor TVkPhysicalDeviceProvokingVertexFeaturesEXT.Create(const aProvokingVertexLast:TVkBool32;
const aTransformFeedbackPreservesProvokingVertex:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
pNext:=nil;
provokingVertexLast:=aProvokingVertexLast;
transformFeedbackPreservesProvokingVertex:=aTransformFeedbackPreservesProvokingVertex;
end;
constructor TVkPhysicalDeviceProvokingVertexPropertiesEXT.Create(const aProvokingVertexModePerPipeline:TVkBool32;
const aTransformFeedbackPreservesTriangleFanProvokingVertex:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
pNext:=nil;
provokingVertexModePerPipeline:=aProvokingVertexModePerPipeline;
transformFeedbackPreservesTriangleFanProvokingVertex:=aTransformFeedbackPreservesTriangleFanProvokingVertex;
end;
constructor TVkPipelineRasterizationProvokingVertexStateCreateInfoEXT.Create(const aProvokingVertexMode:TVkProvokingVertexModeEXT);
begin
sType:=VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
pNext:=nil;
provokingVertexMode:=aProvokingVertexMode;
end;
constructor TVkCuModuleCreateInfoNVX.Create(const aDataSize:TVkSize;
const aPData:PVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX;
pNext:=nil;
dataSize:=aDataSize;
pData:=aPData;
end;
constructor TVkCuFunctionCreateInfoNVX.Create(const aModule:TVkCuModuleNVX;
const aPName:PVkChar);
begin
sType:=VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX;
pNext:=nil;
module:=aModule;
pName:=aPName;
end;
constructor TVkCuLaunchInfoNVX.Create(const aFunction_:TVkCuFunctionNVX;
const aGridDimX:TVkUInt32;
const aGridDimY:TVkUInt32;
const aGridDimZ:TVkUInt32;
const aBlockDimX:TVkUInt32;
const aBlockDimY:TVkUInt32;
const aBlockDimZ:TVkUInt32;
const aSharedMemBytes:TVkUInt32;
const aParamCount:TVkSize;
const aPParams:PPVkVoid;
const aExtraCount:TVkSize;
const aPExtras:PPVkVoid);
begin
sType:=VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX;
pNext:=nil;
function_:=aFunction_;
gridDimX:=aGridDimX;
gridDimY:=aGridDimY;
gridDimZ:=aGridDimZ;
blockDimX:=aBlockDimX;
blockDimY:=aBlockDimY;
blockDimZ:=aBlockDimZ;
sharedMemBytes:=aSharedMemBytes;
paramCount:=aParamCount;
pParams:=aPParams;
extraCount:=aExtraCount;
pExtras:=aPExtras;
end;
constructor TVkPhysicalDeviceDrmPropertiesEXT.Create(const aHasPrimary:TVkBool32;
const aHasRender:TVkBool32;
const aPrimaryMajor:TVkInt64;
const aPrimaryMinor:TVkInt64;
const aRenderMajor:TVkInt64;
const aRenderMinor:TVkInt64);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
pNext:=nil;
hasPrimary:=aHasPrimary;
hasRender:=aHasRender;
primaryMajor:=aPrimaryMajor;
primaryMinor:=aPrimaryMinor;
renderMajor:=aRenderMajor;
renderMinor:=aRenderMinor;
end;
constructor TVkPhysicalDeviceRayTracingMotionBlurFeaturesNV.Create(const aRayTracingMotionBlur:TVkBool32;
const aRayTracingMotionBlurPipelineTraceRaysIndirect:TVkBool32);
begin
sType:=VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
pNext:=nil;
rayTracingMotionBlur:=aRayTracingMotionBlur;
rayTracingMotionBlurPipelineTraceRaysIndirect:=aRayTracingMotionBlurPipelineTraceRaysIndirect;
end;
constructor TVkAccelerationStructureGeometryMotionTrianglesDataNV.Create(const aVertexData:TVkDeviceOrHostAddressConstKHR);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
pNext:=nil;
vertexData:=aVertexData;
end;
constructor TVkAccelerationStructureMotionInfoNV.Create(const aMaxInstances:TVkUInt32;
const aFlags:TVkAccelerationStructureMotionInfoFlagsNV);
begin
sType:=VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV;
pNext:=nil;
maxInstances:=aMaxInstances;
flags:=aFlags;
end;
constructor TVkSRTDataNV.Create(const aSx:TVkFloat;
const aA:TVkFloat;
const aB:TVkFloat;
const aPvx:TVkFloat;
const aSy:TVkFloat;
const aC:TVkFloat;
const aPvy:TVkFloat;
const aSz:TVkFloat;
const aPvz:TVkFloat;
const aQx:TVkFloat;
const aQy:TVkFloat;
const aQz:TVkFloat;
const aQw:TVkFloat;
const aTx:TVkFloat;
const aTy:TVkFloat;
const aTz:TVkFloat);
begin
sx:=aSx;
a:=aA;
b:=aB;
pvx:=aPvx;
sy:=aSy;
c:=aC;
pvy:=aPvy;
sz:=aSz;
pvz:=aPvz;
qx:=aQx;
qy:=aQy;
qz:=aQz;
qw:=aQw;
tx:=aTx;
ty:=aTy;
tz:=aTz;
end;
constructor TVkAccelerationStructureSRTMotionInstanceNV.Create(const aTransformT0:TVkSRTDataNV;
const aTransformT1:TVkSRTDataNV;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
begin
transformT0:=aTransformT0;
transformT1:=aTransformT1;
instanceCustomIndex:=aInstanceCustomIndex;
mask:=aMask;
instanceShaderBindingTableRecordOffset:=aInstanceShaderBindingTableRecordOffset;
flags:=aFlags;
accelerationStructureReference:=aAccelerationStructureReference;
end;
constructor TVkAccelerationStructureMatrixMotionInstanceNV.Create(const aTransformT0:TVkTransformMatrixKHR;
const aTransformT1:TVkTransformMatrixKHR;
const aInstanceCustomIndex:TVkUInt32;
const aMask:TVkUInt32;
const aInstanceShaderBindingTableRecordOffset:TVkUInt32;
const aFlags:TVkGeometryInstanceFlagsKHR;
const aAccelerationStructureReference:TVkUInt64);
begin
transformT0:=aTransformT0;
transformT1:=aTransformT1;
instanceCustomIndex:=aInstanceCustomIndex;
mask:=aMask;
instanceShaderBindingTableRecordOffset:=aInstanceShaderBindingTableRecordOffset;
flags:=aFlags;
accelerationStructureReference:=aAccelerationStructureReference;
end;
constructor TVkAccelerationStructureMotionInstanceNV.Create(const aType_:TVkAccelerationStructureMotionInstanceTypeNV;
const aFlags:TVkAccelerationStructureMotionInstanceFlagsNV;
const aData:TVkAccelerationStructureMotionInstanceDataNV);
begin
type_:=aType_;
flags:=aFlags;
data:=aData;
end;
constructor TVkMemoryGetRemoteAddressInfoNV.Create(const aMemory:TVkDeviceMemory;
const aHandleType:TVkExternalMemoryHandleTypeFlagBits);
begin
sType:=VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
pNext:=nil;
memory:=aMemory;
handleType:=aHandleType;
end;
{$endif}
constructor TVulkan.Create;
begin
inherited Create;
FillChar(fCommands,SizeOf(TVulkanCommands),#0);
end;
constructor TVulkan.Create(const AVulkanCommands:TVulkanCommands);
begin
inherited Create;
fCommands:=AVulkanCommands;
end;
destructor TVulkan.Destroy;
begin
inherited Destroy;
end;
function TVulkan.CreateInstance(const pCreateInfo:PVkInstanceCreateInfo;const pAllocator:PVkAllocationCallbacks;pInstance:PVkInstance):TVkResult;
begin
result:=fCommands.CreateInstance(pCreateInfo,pAllocator,pInstance);
end;
procedure TVulkan.DestroyInstance(instance:TVkInstance;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyInstance(instance,pAllocator);
end;
function TVulkan.EnumeratePhysicalDevices(instance:TVkInstance;pPhysicalDeviceCount:PVkUInt32;pPhysicalDevices:PVkPhysicalDevice):TVkResult;
begin
result:=fCommands.EnumeratePhysicalDevices(instance,pPhysicalDeviceCount,pPhysicalDevices);
end;
function TVulkan.GetDeviceProcAddr(device:TVkDevice;const pName:PVkChar):TPFN_vkVoidFunction;
begin
result:=fCommands.GetDeviceProcAddr(device,pName);
end;
function TVulkan.GetInstanceProcAddr(instance:TVkInstance;const pName:PVkChar):TPFN_vkVoidFunction;
begin
result:=fCommands.GetInstanceProcAddr(instance,pName);
end;
procedure TVulkan.GetPhysicalDeviceProperties(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties);
begin
fCommands.GetPhysicalDeviceProperties(physicalDevice,pProperties);
end;
procedure TVulkan.GetPhysicalDeviceQueueFamilyProperties(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties);
begin
fCommands.GetPhysicalDeviceQueueFamilyProperties(physicalDevice,pQueueFamilyPropertyCount,pQueueFamilyProperties);
end;
procedure TVulkan.GetPhysicalDeviceMemoryProperties(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties);
begin
fCommands.GetPhysicalDeviceMemoryProperties(physicalDevice,pMemoryProperties);
end;
procedure TVulkan.GetPhysicalDeviceFeatures(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures);
begin
fCommands.GetPhysicalDeviceFeatures(physicalDevice,pFeatures);
end;
procedure TVulkan.GetPhysicalDeviceFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties);
begin
fCommands.GetPhysicalDeviceFormatProperties(physicalDevice,format,pFormatProperties);
end;
function TVulkan.GetPhysicalDeviceImageFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;pImageFormatProperties:PVkImageFormatProperties):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceImageFormatProperties(physicalDevice,format,type_,tiling,usage,flags,pImageFormatProperties);
end;
function TVulkan.CreateDevice(physicalDevice:TVkPhysicalDevice;const pCreateInfo:PVkDeviceCreateInfo;const pAllocator:PVkAllocationCallbacks;pDevice:PVkDevice):TVkResult;
begin
result:=fCommands.CreateDevice(physicalDevice,pCreateInfo,pAllocator,pDevice);
end;
procedure TVulkan.DestroyDevice(device:TVkDevice;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDevice(device,pAllocator);
end;
function TVulkan.EnumerateInstanceVersion(pApiVersion:PVkUInt32):TVkResult;
begin
result:=fCommands.EnumerateInstanceVersion(pApiVersion);
end;
function TVulkan.EnumerateInstanceLayerProperties(pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult;
begin
result:=fCommands.EnumerateInstanceLayerProperties(pPropertyCount,pProperties);
end;
function TVulkan.EnumerateInstanceExtensionProperties(const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult;
begin
result:=fCommands.EnumerateInstanceExtensionProperties(pLayerName,pPropertyCount,pProperties);
end;
function TVulkan.EnumerateDeviceLayerProperties(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkLayerProperties):TVkResult;
begin
result:=fCommands.EnumerateDeviceLayerProperties(physicalDevice,pPropertyCount,pProperties);
end;
function TVulkan.EnumerateDeviceExtensionProperties(physicalDevice:TVkPhysicalDevice;const pLayerName:PVkChar;pPropertyCount:PVkUInt32;pProperties:PVkExtensionProperties):TVkResult;
begin
result:=fCommands.EnumerateDeviceExtensionProperties(physicalDevice,pLayerName,pPropertyCount,pProperties);
end;
procedure TVulkan.GetDeviceQueue(device:TVkDevice;queueFamilyIndex:TVkUInt32;queueIndex:TVkUInt32;pQueue:PVkQueue);
begin
fCommands.GetDeviceQueue(device,queueFamilyIndex,queueIndex,pQueue);
end;
function TVulkan.QueueSubmit(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo;fence:TVkFence):TVkResult;
begin
result:=fCommands.QueueSubmit(queue,submitCount,pSubmits,fence);
end;
function TVulkan.QueueWaitIdle(queue:TVkQueue):TVkResult;
begin
result:=fCommands.QueueWaitIdle(queue);
end;
function TVulkan.DeviceWaitIdle(device:TVkDevice):TVkResult;
begin
result:=fCommands.DeviceWaitIdle(device);
end;
function TVulkan.AllocateMemory(device:TVkDevice;const pAllocateInfo:PVkMemoryAllocateInfo;const pAllocator:PVkAllocationCallbacks;pMemory:PVkDeviceMemory):TVkResult;
begin
result:=fCommands.AllocateMemory(device,pAllocateInfo,pAllocator,pMemory);
end;
procedure TVulkan.FreeMemory(device:TVkDevice;memory:TVkDeviceMemory;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.FreeMemory(device,memory,pAllocator);
end;
function TVulkan.MapMemory(device:TVkDevice;memory:TVkDeviceMemory;offset:TVkDeviceSize;size:TVkDeviceSize;flags:TVkMemoryMapFlags;ppData:PPVkVoid):TVkResult;
begin
result:=fCommands.MapMemory(device,memory,offset,size,flags,ppData);
end;
procedure TVulkan.UnmapMemory(device:TVkDevice;memory:TVkDeviceMemory);
begin
fCommands.UnmapMemory(device,memory);
end;
function TVulkan.FlushMappedMemoryRanges(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult;
begin
result:=fCommands.FlushMappedMemoryRanges(device,memoryRangeCount,pMemoryRanges);
end;
function TVulkan.InvalidateMappedMemoryRanges(device:TVkDevice;memoryRangeCount:TVkUInt32;const pMemoryRanges:PVkMappedMemoryRange):TVkResult;
begin
result:=fCommands.InvalidateMappedMemoryRanges(device,memoryRangeCount,pMemoryRanges);
end;
procedure TVulkan.GetDeviceMemoryCommitment(device:TVkDevice;memory:TVkDeviceMemory;pCommittedMemoryInBytes:PVkDeviceSize);
begin
fCommands.GetDeviceMemoryCommitment(device,memory,pCommittedMemoryInBytes);
end;
procedure TVulkan.GetBufferMemoryRequirements(device:TVkDevice;buffer:TVkBuffer;pMemoryRequirements:PVkMemoryRequirements);
begin
fCommands.GetBufferMemoryRequirements(device,buffer,pMemoryRequirements);
end;
function TVulkan.BindBufferMemory(device:TVkDevice;buffer:TVkBuffer;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult;
begin
result:=fCommands.BindBufferMemory(device,buffer,memory,memoryOffset);
end;
procedure TVulkan.GetImageMemoryRequirements(device:TVkDevice;image:TVkImage;pMemoryRequirements:PVkMemoryRequirements);
begin
fCommands.GetImageMemoryRequirements(device,image,pMemoryRequirements);
end;
function TVulkan.BindImageMemory(device:TVkDevice;image:TVkImage;memory:TVkDeviceMemory;memoryOffset:TVkDeviceSize):TVkResult;
begin
result:=fCommands.BindImageMemory(device,image,memory,memoryOffset);
end;
procedure TVulkan.GetImageSparseMemoryRequirements(device:TVkDevice;image:TVkImage;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements);
begin
fCommands.GetImageSparseMemoryRequirements(device,image,pSparseMemoryRequirementCount,pSparseMemoryRequirements);
end;
procedure TVulkan.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;samples:TVkSampleCountFlagBits;usage:TVkImageUsageFlags;tiling:TVkImageTiling;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties);
begin
fCommands.GetPhysicalDeviceSparseImageFormatProperties(physicalDevice,format,type_,samples,usage,tiling,pPropertyCount,pProperties);
end;
function TVulkan.QueueBindSparse(queue:TVkQueue;bindInfoCount:TVkUInt32;const pBindInfo:PVkBindSparseInfo;fence:TVkFence):TVkResult;
begin
result:=fCommands.QueueBindSparse(queue,bindInfoCount,pBindInfo,fence);
end;
function TVulkan.CreateFence(device:TVkDevice;const pCreateInfo:PVkFenceCreateInfo;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult;
begin
result:=fCommands.CreateFence(device,pCreateInfo,pAllocator,pFence);
end;
procedure TVulkan.DestroyFence(device:TVkDevice;fence:TVkFence;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyFence(device,fence,pAllocator);
end;
function TVulkan.ResetFences(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence):TVkResult;
begin
result:=fCommands.ResetFences(device,fenceCount,pFences);
end;
function TVulkan.GetFenceStatus(device:TVkDevice;fence:TVkFence):TVkResult;
begin
result:=fCommands.GetFenceStatus(device,fence);
end;
function TVulkan.WaitForFences(device:TVkDevice;fenceCount:TVkUInt32;const pFences:PVkFence;waitAll:TVkBool32;timeout:TVkUInt64):TVkResult;
begin
result:=fCommands.WaitForFences(device,fenceCount,pFences,waitAll,timeout);
end;
function TVulkan.CreateSemaphore(device:TVkDevice;const pCreateInfo:PVkSemaphoreCreateInfo;const pAllocator:PVkAllocationCallbacks;pSemaphore:PVkSemaphore):TVkResult;
begin
result:=fCommands.CreateSemaphore(device,pCreateInfo,pAllocator,pSemaphore);
end;
procedure TVulkan.DestroySemaphore(device:TVkDevice;semaphore:TVkSemaphore;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySemaphore(device,semaphore,pAllocator);
end;
function TVulkan.CreateEvent(device:TVkDevice;const pCreateInfo:PVkEventCreateInfo;const pAllocator:PVkAllocationCallbacks;pEvent:PVkEvent):TVkResult;
begin
result:=fCommands.CreateEvent(device,pCreateInfo,pAllocator,pEvent);
end;
procedure TVulkan.DestroyEvent(device:TVkDevice;event:TVkEvent;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyEvent(device,event,pAllocator);
end;
function TVulkan.GetEventStatus(device:TVkDevice;event:TVkEvent):TVkResult;
begin
result:=fCommands.GetEventStatus(device,event);
end;
function TVulkan.SetEvent(device:TVkDevice;event:TVkEvent):TVkResult;
begin
result:=fCommands.SetEvent(device,event);
end;
function TVulkan.ResetEvent(device:TVkDevice;event:TVkEvent):TVkResult;
begin
result:=fCommands.ResetEvent(device,event);
end;
function TVulkan.CreateQueryPool(device:TVkDevice;const pCreateInfo:PVkQueryPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pQueryPool:PVkQueryPool):TVkResult;
begin
result:=fCommands.CreateQueryPool(device,pCreateInfo,pAllocator,pQueryPool);
end;
procedure TVulkan.DestroyQueryPool(device:TVkDevice;queryPool:TVkQueryPool;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyQueryPool(device,queryPool,pAllocator);
end;
function TVulkan.GetQueryPoolResults(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid;stride:TVkDeviceSize;flags:TVkQueryResultFlags):TVkResult;
begin
result:=fCommands.GetQueryPoolResults(device,queryPool,firstQuery,queryCount,dataSize,pData,stride,flags);
end;
procedure TVulkan.ResetQueryPool(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32);
begin
fCommands.ResetQueryPool(device,queryPool,firstQuery,queryCount);
end;
procedure TVulkan.ResetQueryPoolEXT(device:TVkDevice;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32);
begin
fCommands.ResetQueryPoolEXT(device,queryPool,firstQuery,queryCount);
end;
function TVulkan.CreateBuffer(device:TVkDevice;const pCreateInfo:PVkBufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pBuffer:PVkBuffer):TVkResult;
begin
result:=fCommands.CreateBuffer(device,pCreateInfo,pAllocator,pBuffer);
end;
procedure TVulkan.DestroyBuffer(device:TVkDevice;buffer:TVkBuffer;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyBuffer(device,buffer,pAllocator);
end;
function TVulkan.CreateBufferView(device:TVkDevice;const pCreateInfo:PVkBufferViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkBufferView):TVkResult;
begin
result:=fCommands.CreateBufferView(device,pCreateInfo,pAllocator,pView);
end;
procedure TVulkan.DestroyBufferView(device:TVkDevice;bufferView:TVkBufferView;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyBufferView(device,bufferView,pAllocator);
end;
function TVulkan.CreateImage(device:TVkDevice;const pCreateInfo:PVkImageCreateInfo;const pAllocator:PVkAllocationCallbacks;pImage:PVkImage):TVkResult;
begin
result:=fCommands.CreateImage(device,pCreateInfo,pAllocator,pImage);
end;
procedure TVulkan.DestroyImage(device:TVkDevice;image:TVkImage;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyImage(device,image,pAllocator);
end;
procedure TVulkan.GetImageSubresourceLayout(device:TVkDevice;image:TVkImage;const pSubresource:PVkImageSubresource;pLayout:PVkSubresourceLayout);
begin
fCommands.GetImageSubresourceLayout(device,image,pSubresource,pLayout);
end;
function TVulkan.CreateImageView(device:TVkDevice;const pCreateInfo:PVkImageViewCreateInfo;const pAllocator:PVkAllocationCallbacks;pView:PVkImageView):TVkResult;
begin
result:=fCommands.CreateImageView(device,pCreateInfo,pAllocator,pView);
end;
procedure TVulkan.DestroyImageView(device:TVkDevice;imageView:TVkImageView;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyImageView(device,imageView,pAllocator);
end;
function TVulkan.CreateShaderModule(device:TVkDevice;const pCreateInfo:PVkShaderModuleCreateInfo;const pAllocator:PVkAllocationCallbacks;pShaderModule:PVkShaderModule):TVkResult;
begin
result:=fCommands.CreateShaderModule(device,pCreateInfo,pAllocator,pShaderModule);
end;
procedure TVulkan.DestroyShaderModule(device:TVkDevice;shaderModule:TVkShaderModule;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyShaderModule(device,shaderModule,pAllocator);
end;
function TVulkan.CreatePipelineCache(device:TVkDevice;const pCreateInfo:PVkPipelineCacheCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineCache:PVkPipelineCache):TVkResult;
begin
result:=fCommands.CreatePipelineCache(device,pCreateInfo,pAllocator,pPipelineCache);
end;
procedure TVulkan.DestroyPipelineCache(device:TVkDevice;pipelineCache:TVkPipelineCache;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyPipelineCache(device,pipelineCache,pAllocator);
end;
function TVulkan.GetPipelineCacheData(device:TVkDevice;pipelineCache:TVkPipelineCache;pDataSize:PVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetPipelineCacheData(device,pipelineCache,pDataSize,pData);
end;
function TVulkan.MergePipelineCaches(device:TVkDevice;dstCache:TVkPipelineCache;srcCacheCount:TVkUInt32;const pSrcCaches:PVkPipelineCache):TVkResult;
begin
result:=fCommands.MergePipelineCaches(device,dstCache,srcCacheCount,pSrcCaches);
end;
function TVulkan.CreateGraphicsPipelines(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkGraphicsPipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult;
begin
result:=fCommands.CreateGraphicsPipelines(device,pipelineCache,createInfoCount,pCreateInfos,pAllocator,pPipelines);
end;
function TVulkan.CreateComputePipelines(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkComputePipelineCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult;
begin
result:=fCommands.CreateComputePipelines(device,pipelineCache,createInfoCount,pCreateInfos,pAllocator,pPipelines);
end;
function TVulkan.GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device:TVkDevice;renderpass:TVkRenderPass;pMaxWorkgroupSize:PVkExtent2D):TVkResult;
begin
result:=fCommands.GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device,renderpass,pMaxWorkgroupSize);
end;
procedure TVulkan.DestroyPipeline(device:TVkDevice;pipeline:TVkPipeline;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyPipeline(device,pipeline,pAllocator);
end;
function TVulkan.CreatePipelineLayout(device:TVkDevice;const pCreateInfo:PVkPipelineLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pPipelineLayout:PVkPipelineLayout):TVkResult;
begin
result:=fCommands.CreatePipelineLayout(device,pCreateInfo,pAllocator,pPipelineLayout);
end;
procedure TVulkan.DestroyPipelineLayout(device:TVkDevice;pipelineLayout:TVkPipelineLayout;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyPipelineLayout(device,pipelineLayout,pAllocator);
end;
function TVulkan.CreateSampler(device:TVkDevice;const pCreateInfo:PVkSamplerCreateInfo;const pAllocator:PVkAllocationCallbacks;pSampler:PVkSampler):TVkResult;
begin
result:=fCommands.CreateSampler(device,pCreateInfo,pAllocator,pSampler);
end;
procedure TVulkan.DestroySampler(device:TVkDevice;sampler:TVkSampler;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySampler(device,sampler,pAllocator);
end;
function TVulkan.CreateDescriptorSetLayout(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;const pAllocator:PVkAllocationCallbacks;pSetLayout:PVkDescriptorSetLayout):TVkResult;
begin
result:=fCommands.CreateDescriptorSetLayout(device,pCreateInfo,pAllocator,pSetLayout);
end;
procedure TVulkan.DestroyDescriptorSetLayout(device:TVkDevice;descriptorSetLayout:TVkDescriptorSetLayout;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDescriptorSetLayout(device,descriptorSetLayout,pAllocator);
end;
function TVulkan.CreateDescriptorPool(device:TVkDevice;const pCreateInfo:PVkDescriptorPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorPool:PVkDescriptorPool):TVkResult;
begin
result:=fCommands.CreateDescriptorPool(device,pCreateInfo,pAllocator,pDescriptorPool);
end;
procedure TVulkan.DestroyDescriptorPool(device:TVkDevice;descriptorPool:TVkDescriptorPool;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDescriptorPool(device,descriptorPool,pAllocator);
end;
function TVulkan.ResetDescriptorPool(device:TVkDevice;descriptorPool:TVkDescriptorPool;flags:TVkDescriptorPoolResetFlags):TVkResult;
begin
result:=fCommands.ResetDescriptorPool(device,descriptorPool,flags);
end;
function TVulkan.AllocateDescriptorSets(device:TVkDevice;const pAllocateInfo:PVkDescriptorSetAllocateInfo;pDescriptorSets:PVkDescriptorSet):TVkResult;
begin
result:=fCommands.AllocateDescriptorSets(device,pAllocateInfo,pDescriptorSets);
end;
function TVulkan.FreeDescriptorSets(device:TVkDevice;descriptorPool:TVkDescriptorPool;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet):TVkResult;
begin
result:=fCommands.FreeDescriptorSets(device,descriptorPool,descriptorSetCount,pDescriptorSets);
end;
procedure TVulkan.UpdateDescriptorSets(device:TVkDevice;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet;descriptorCopyCount:TVkUInt32;const pDescriptorCopies:PVkCopyDescriptorSet);
begin
fCommands.UpdateDescriptorSets(device,descriptorWriteCount,pDescriptorWrites,descriptorCopyCount,pDescriptorCopies);
end;
function TVulkan.CreateFramebuffer(device:TVkDevice;const pCreateInfo:PVkFramebufferCreateInfo;const pAllocator:PVkAllocationCallbacks;pFramebuffer:PVkFramebuffer):TVkResult;
begin
result:=fCommands.CreateFramebuffer(device,pCreateInfo,pAllocator,pFramebuffer);
end;
procedure TVulkan.DestroyFramebuffer(device:TVkDevice;framebuffer:TVkFramebuffer;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyFramebuffer(device,framebuffer,pAllocator);
end;
function TVulkan.CreateRenderPass(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult;
begin
result:=fCommands.CreateRenderPass(device,pCreateInfo,pAllocator,pRenderPass);
end;
procedure TVulkan.DestroyRenderPass(device:TVkDevice;renderPass:TVkRenderPass;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyRenderPass(device,renderPass,pAllocator);
end;
procedure TVulkan.GetRenderAreaGranularity(device:TVkDevice;renderPass:TVkRenderPass;pGranularity:PVkExtent2D);
begin
fCommands.GetRenderAreaGranularity(device,renderPass,pGranularity);
end;
function TVulkan.CreateCommandPool(device:TVkDevice;const pCreateInfo:PVkCommandPoolCreateInfo;const pAllocator:PVkAllocationCallbacks;pCommandPool:PVkCommandPool):TVkResult;
begin
result:=fCommands.CreateCommandPool(device,pCreateInfo,pAllocator,pCommandPool);
end;
procedure TVulkan.DestroyCommandPool(device:TVkDevice;commandPool:TVkCommandPool;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyCommandPool(device,commandPool,pAllocator);
end;
function TVulkan.ResetCommandPool(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolResetFlags):TVkResult;
begin
result:=fCommands.ResetCommandPool(device,commandPool,flags);
end;
function TVulkan.AllocateCommandBuffers(device:TVkDevice;const pAllocateInfo:PVkCommandBufferAllocateInfo;pCommandBuffers:PVkCommandBuffer):TVkResult;
begin
result:=fCommands.AllocateCommandBuffers(device,pAllocateInfo,pCommandBuffers);
end;
procedure TVulkan.FreeCommandBuffers(device:TVkDevice;commandPool:TVkCommandPool;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer);
begin
fCommands.FreeCommandBuffers(device,commandPool,commandBufferCount,pCommandBuffers);
end;
function TVulkan.BeginCommandBuffer(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkCommandBufferBeginInfo):TVkResult;
begin
result:=fCommands.BeginCommandBuffer(commandBuffer,pBeginInfo);
end;
function TVulkan.EndCommandBuffer(commandBuffer:TVkCommandBuffer):TVkResult;
begin
result:=fCommands.EndCommandBuffer(commandBuffer);
end;
function TVulkan.ResetCommandBuffer(commandBuffer:TVkCommandBuffer;flags:TVkCommandBufferResetFlags):TVkResult;
begin
result:=fCommands.ResetCommandBuffer(commandBuffer,flags);
end;
procedure TVulkan.CmdBindPipeline(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline);
begin
fCommands.CmdBindPipeline(commandBuffer,pipelineBindPoint,pipeline);
end;
procedure TVulkan.CmdSetViewport(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewports:PVkViewport);
begin
fCommands.CmdSetViewport(commandBuffer,firstViewport,viewportCount,pViewports);
end;
procedure TVulkan.CmdSetScissor(commandBuffer:TVkCommandBuffer;firstScissor:TVkUInt32;scissorCount:TVkUInt32;const pScissors:PVkRect2D);
begin
fCommands.CmdSetScissor(commandBuffer,firstScissor,scissorCount,pScissors);
end;
procedure TVulkan.CmdSetLineWidth(commandBuffer:TVkCommandBuffer;lineWidth:TVkFloat);
begin
fCommands.CmdSetLineWidth(commandBuffer,lineWidth);
end;
procedure TVulkan.CmdSetDepthBias(commandBuffer:TVkCommandBuffer;depthBiasConstantFactor:TVkFloat;depthBiasClamp:TVkFloat;depthBiasSlopeFactor:TVkFloat);
begin
fCommands.CmdSetDepthBias(commandBuffer,depthBiasConstantFactor,depthBiasClamp,depthBiasSlopeFactor);
end;
procedure TVulkan.CmdSetBlendConstants(commandBuffer:TVkCommandBuffer;const blendConstants:TVkFloat);
begin
fCommands.CmdSetBlendConstants(commandBuffer,blendConstants);
end;
procedure TVulkan.CmdSetDepthBounds(commandBuffer:TVkCommandBuffer;minDepthBounds:TVkFloat;maxDepthBounds:TVkFloat);
begin
fCommands.CmdSetDepthBounds(commandBuffer,minDepthBounds,maxDepthBounds);
end;
procedure TVulkan.CmdSetStencilCompareMask(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;compareMask:TVkUInt32);
begin
fCommands.CmdSetStencilCompareMask(commandBuffer,faceMask,compareMask);
end;
procedure TVulkan.CmdSetStencilWriteMask(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;writeMask:TVkUInt32);
begin
fCommands.CmdSetStencilWriteMask(commandBuffer,faceMask,writeMask);
end;
procedure TVulkan.CmdSetStencilReference(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;reference:TVkUInt32);
begin
fCommands.CmdSetStencilReference(commandBuffer,faceMask,reference);
end;
procedure TVulkan.CmdBindDescriptorSets(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;firstSet:TVkUInt32;descriptorSetCount:TVkUInt32;const pDescriptorSets:PVkDescriptorSet;dynamicOffsetCount:TVkUInt32;const pDynamicOffsets:PVkUInt32);
begin
fCommands.CmdBindDescriptorSets(commandBuffer,pipelineBindPoint,layout,firstSet,descriptorSetCount,pDescriptorSets,dynamicOffsetCount,pDynamicOffsets);
end;
procedure TVulkan.CmdBindIndexBuffer(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;indexType:TVkIndexType);
begin
fCommands.CmdBindIndexBuffer(commandBuffer,buffer,offset,indexType);
end;
procedure TVulkan.CmdBindVertexBuffers(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize);
begin
fCommands.CmdBindVertexBuffers(commandBuffer,firstBinding,bindingCount,pBuffers,pOffsets);
end;
procedure TVulkan.CmdDraw(commandBuffer:TVkCommandBuffer;vertexCount:TVkUInt32;instanceCount:TVkUInt32;firstVertex:TVkUInt32;firstInstance:TVkUInt32);
begin
fCommands.CmdDraw(commandBuffer,vertexCount,instanceCount,firstVertex,firstInstance);
end;
procedure TVulkan.CmdDrawIndexed(commandBuffer:TVkCommandBuffer;indexCount:TVkUInt32;instanceCount:TVkUInt32;firstIndex:TVkUInt32;vertexOffset:TVkInt32;firstInstance:TVkUInt32);
begin
fCommands.CmdDrawIndexed(commandBuffer,indexCount,instanceCount,firstIndex,vertexOffset,firstInstance);
end;
procedure TVulkan.CmdDrawMultiEXT(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pVertexInfo:PVkMultiDrawInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawMultiEXT(commandBuffer,drawCount,pVertexInfo,instanceCount,firstInstance,stride);
end;
procedure TVulkan.CmdDrawMultiIndexedEXT(commandBuffer:TVkCommandBuffer;drawCount:TVkUInt32;const pIndexInfo:PVkMultiDrawIndexedInfoEXT;instanceCount:TVkUInt32;firstInstance:TVkUInt32;stride:TVkUInt32;const pVertexOffset:PVkInt32);
begin
fCommands.CmdDrawMultiIndexedEXT(commandBuffer,drawCount,pIndexInfo,instanceCount,firstInstance,stride,pVertexOffset);
end;
procedure TVulkan.CmdDrawIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndirect(commandBuffer,buffer,offset,drawCount,stride);
end;
procedure TVulkan.CmdDrawIndexedIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndexedIndirect(commandBuffer,buffer,offset,drawCount,stride);
end;
procedure TVulkan.CmdDispatch(commandBuffer:TVkCommandBuffer;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32);
begin
fCommands.CmdDispatch(commandBuffer,groupCountX,groupCountY,groupCountZ);
end;
procedure TVulkan.CmdDispatchIndirect(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize);
begin
fCommands.CmdDispatchIndirect(commandBuffer,buffer,offset);
end;
procedure TVulkan.CmdSubpassShadingHUAWEI(commandBuffer:TVkCommandBuffer);
begin
fCommands.CmdSubpassShadingHUAWEI(commandBuffer);
end;
procedure TVulkan.CmdCopyBuffer(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferCopy);
begin
fCommands.CmdCopyBuffer(commandBuffer,srcBuffer,dstBuffer,regionCount,pRegions);
end;
procedure TVulkan.CmdCopyImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageCopy);
begin
fCommands.CmdCopyImage(commandBuffer,srcImage,srcImageLayout,dstImage,dstImageLayout,regionCount,pRegions);
end;
procedure TVulkan.CmdBlitImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageBlit;filter:TVkFilter);
begin
fCommands.CmdBlitImage(commandBuffer,srcImage,srcImageLayout,dstImage,dstImageLayout,regionCount,pRegions,filter);
end;
procedure TVulkan.CmdCopyBufferToImage(commandBuffer:TVkCommandBuffer;srcBuffer:TVkBuffer;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy);
begin
fCommands.CmdCopyBufferToImage(commandBuffer,srcBuffer,dstImage,dstImageLayout,regionCount,pRegions);
end;
procedure TVulkan.CmdCopyImageToBuffer(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstBuffer:TVkBuffer;regionCount:TVkUInt32;const pRegions:PVkBufferImageCopy);
begin
fCommands.CmdCopyImageToBuffer(commandBuffer,srcImage,srcImageLayout,dstBuffer,regionCount,pRegions);
end;
procedure TVulkan.CmdUpdateBuffer(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;dataSize:TVkDeviceSize;const pData:PVkVoid);
begin
fCommands.CmdUpdateBuffer(commandBuffer,dstBuffer,dstOffset,dataSize,pData);
end;
procedure TVulkan.CmdFillBuffer(commandBuffer:TVkCommandBuffer;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;size:TVkDeviceSize;data:TVkUInt32);
begin
fCommands.CmdFillBuffer(commandBuffer,dstBuffer,dstOffset,size,data);
end;
procedure TVulkan.CmdClearColorImage(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pColor:PVkClearColorValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange);
begin
fCommands.CmdClearColorImage(commandBuffer,image,imageLayout,pColor,rangeCount,pRanges);
end;
procedure TVulkan.CmdClearDepthStencilImage(commandBuffer:TVkCommandBuffer;image:TVkImage;imageLayout:TVkImageLayout;const pDepthStencil:PVkClearDepthStencilValue;rangeCount:TVkUInt32;const pRanges:PVkImageSubresourceRange);
begin
fCommands.CmdClearDepthStencilImage(commandBuffer,image,imageLayout,pDepthStencil,rangeCount,pRanges);
end;
procedure TVulkan.CmdClearAttachments(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pAttachments:PVkClearAttachment;rectCount:TVkUInt32;const pRects:PVkClearRect);
begin
fCommands.CmdClearAttachments(commandBuffer,attachmentCount,pAttachments,rectCount,pRects);
end;
procedure TVulkan.CmdResolveImage(commandBuffer:TVkCommandBuffer;srcImage:TVkImage;srcImageLayout:TVkImageLayout;dstImage:TVkImage;dstImageLayout:TVkImageLayout;regionCount:TVkUInt32;const pRegions:PVkImageResolve);
begin
fCommands.CmdResolveImage(commandBuffer,srcImage,srcImageLayout,dstImage,dstImageLayout,regionCount,pRegions);
end;
procedure TVulkan.CmdSetEvent(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags);
begin
fCommands.CmdSetEvent(commandBuffer,event,stageMask);
end;
procedure TVulkan.CmdResetEvent(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags);
begin
fCommands.CmdResetEvent(commandBuffer,event,stageMask);
end;
procedure TVulkan.CmdWaitEvents(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier);
begin
fCommands.CmdWaitEvents(commandBuffer,eventCount,pEvents,srcStageMask,dstStageMask,memoryBarrierCount,pMemoryBarriers,bufferMemoryBarrierCount,pBufferMemoryBarriers,imageMemoryBarrierCount,pImageMemoryBarriers);
end;
procedure TVulkan.CmdPipelineBarrier(commandBuffer:TVkCommandBuffer;srcStageMask:TVkPipelineStageFlags;dstStageMask:TVkPipelineStageFlags;dependencyFlags:TVkDependencyFlags;memoryBarrierCount:TVkUInt32;const pMemoryBarriers:PVkMemoryBarrier;bufferMemoryBarrierCount:TVkUInt32;const pBufferMemoryBarriers:PVkBufferMemoryBarrier;imageMemoryBarrierCount:TVkUInt32;const pImageMemoryBarriers:PVkImageMemoryBarrier);
begin
fCommands.CmdPipelineBarrier(commandBuffer,srcStageMask,dstStageMask,dependencyFlags,memoryBarrierCount,pMemoryBarriers,bufferMemoryBarrierCount,pBufferMemoryBarriers,imageMemoryBarrierCount,pImageMemoryBarriers);
end;
procedure TVulkan.CmdBeginQuery(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags);
begin
fCommands.CmdBeginQuery(commandBuffer,queryPool,query,flags);
end;
procedure TVulkan.CmdEndQuery(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32);
begin
fCommands.CmdEndQuery(commandBuffer,queryPool,query);
end;
procedure TVulkan.CmdBeginConditionalRenderingEXT(commandBuffer:TVkCommandBuffer;const pConditionalRenderingBegin:PVkConditionalRenderingBeginInfoEXT);
begin
fCommands.CmdBeginConditionalRenderingEXT(commandBuffer,pConditionalRenderingBegin);
end;
procedure TVulkan.CmdEndConditionalRenderingEXT(commandBuffer:TVkCommandBuffer);
begin
fCommands.CmdEndConditionalRenderingEXT(commandBuffer);
end;
procedure TVulkan.CmdResetQueryPool(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32);
begin
fCommands.CmdResetQueryPool(commandBuffer,queryPool,firstQuery,queryCount);
end;
procedure TVulkan.CmdWriteTimestamp(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;queryPool:TVkQueryPool;query:TVkUInt32);
begin
fCommands.CmdWriteTimestamp(commandBuffer,pipelineStage,queryPool,query);
end;
procedure TVulkan.CmdCopyQueryPoolResults(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;firstQuery:TVkUInt32;queryCount:TVkUInt32;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;stride:TVkDeviceSize;flags:TVkQueryResultFlags);
begin
fCommands.CmdCopyQueryPoolResults(commandBuffer,queryPool,firstQuery,queryCount,dstBuffer,dstOffset,stride,flags);
end;
procedure TVulkan.CmdPushConstants(commandBuffer:TVkCommandBuffer;layout:TVkPipelineLayout;stageFlags:TVkShaderStageFlags;offset:TVkUInt32;size:TVkUInt32;const pValues:PVkVoid);
begin
fCommands.CmdPushConstants(commandBuffer,layout,stageFlags,offset,size,pValues);
end;
procedure TVulkan.CmdBeginRenderPass(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;contents:TVkSubpassContents);
begin
fCommands.CmdBeginRenderPass(commandBuffer,pRenderPassBegin,contents);
end;
procedure TVulkan.CmdNextSubpass(commandBuffer:TVkCommandBuffer;contents:TVkSubpassContents);
begin
fCommands.CmdNextSubpass(commandBuffer,contents);
end;
procedure TVulkan.CmdEndRenderPass(commandBuffer:TVkCommandBuffer);
begin
fCommands.CmdEndRenderPass(commandBuffer);
end;
procedure TVulkan.CmdExecuteCommands(commandBuffer:TVkCommandBuffer;commandBufferCount:TVkUInt32;const pCommandBuffers:PVkCommandBuffer);
begin
fCommands.CmdExecuteCommands(commandBuffer,commandBufferCount,pCommandBuffers);
end;
{$ifdef Android}
function TVulkan.CreateAndroidSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkAndroidSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateAndroidSurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
function TVulkan.GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPropertiesKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice,pPropertyCount,pProperties);
end;
function TVulkan.GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlanePropertiesKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice,pPropertyCount,pProperties);
end;
function TVulkan.GetDisplayPlaneSupportedDisplaysKHR(physicalDevice:TVkPhysicalDevice;planeIndex:TVkUInt32;pDisplayCount:PVkUInt32;pDisplays:PVkDisplayKHR):TVkResult;
begin
result:=fCommands.GetDisplayPlaneSupportedDisplaysKHR(physicalDevice,planeIndex,pDisplayCount,pDisplays);
end;
function TVulkan.GetDisplayModePropertiesKHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModePropertiesKHR):TVkResult;
begin
result:=fCommands.GetDisplayModePropertiesKHR(physicalDevice,display,pPropertyCount,pProperties);
end;
function TVulkan.CreateDisplayModeKHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;const pCreateInfo:PVkDisplayModeCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pMode:PVkDisplayModeKHR):TVkResult;
begin
result:=fCommands.CreateDisplayModeKHR(physicalDevice,display,pCreateInfo,pAllocator,pMode);
end;
function TVulkan.GetDisplayPlaneCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;mode:TVkDisplayModeKHR;planeIndex:TVkUInt32;pCapabilities:PVkDisplayPlaneCapabilitiesKHR):TVkResult;
begin
result:=fCommands.GetDisplayPlaneCapabilitiesKHR(physicalDevice,mode,planeIndex,pCapabilities);
end;
function TVulkan.CreateDisplayPlaneSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkDisplaySurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateDisplayPlaneSurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
function TVulkan.CreateSharedSwapchainsKHR(device:TVkDevice;swapchainCount:TVkUInt32;const pCreateInfos:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchains:PVkSwapchainKHR):TVkResult;
begin
result:=fCommands.CreateSharedSwapchainsKHR(device,swapchainCount,pCreateInfos,pAllocator,pSwapchains);
end;
procedure TVulkan.DestroySurfaceKHR(instance:TVkInstance;surface:TVkSurfaceKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySurfaceKHR(instance,surface,pAllocator);
end;
function TVulkan.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;surface:TVkSurfaceKHR;pSupported:PVkBool32):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice,queueFamilyIndex,surface,pSupported);
end;
function TVulkan.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilitiesKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice,surface,pSurfaceCapabilities);
end;
function TVulkan.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormatKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice,surface,pSurfaceFormatCount,pSurfaceFormats);
end;
function TVulkan.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice,surface,pPresentModeCount,pPresentModes);
end;
function TVulkan.CreateSwapchainKHR(device:TVkDevice;const pCreateInfo:PVkSwapchainCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSwapchain:PVkSwapchainKHR):TVkResult;
begin
result:=fCommands.CreateSwapchainKHR(device,pCreateInfo,pAllocator,pSwapchain);
end;
procedure TVulkan.DestroySwapchainKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySwapchainKHR(device,swapchain,pAllocator);
end;
function TVulkan.GetSwapchainImagesKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;pSwapchainImageCount:PVkUInt32;pSwapchainImages:PVkImage):TVkResult;
begin
result:=fCommands.GetSwapchainImagesKHR(device,swapchain,pSwapchainImageCount,pSwapchainImages);
end;
function TVulkan.AcquireNextImageKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;timeout:TVkUInt64;semaphore:TVkSemaphore;fence:TVkFence;pImageIndex:PVkUInt32):TVkResult;
begin
result:=fCommands.AcquireNextImageKHR(device,swapchain,timeout,semaphore,fence,pImageIndex);
end;
function TVulkan.QueuePresentKHR(queue:TVkQueue;const pPresentInfo:PVkPresentInfoKHR):TVkResult;
begin
result:=fCommands.QueuePresentKHR(queue,pPresentInfo);
end;
function TVulkan.CreateViSurfaceNN(instance:TVkInstance;const pCreateInfo:PVkViSurfaceCreateInfoNN;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateViSurfaceNN(instance,pCreateInfo,pAllocator,pSurface);
end;
{$ifdef Wayland}
function TVulkan.CreateWaylandSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkWaylandSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateWaylandSurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef Wayland}
function TVulkan.GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;display:PVkWaylandDisplay):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice,queueFamilyIndex,display);
end;
{$endif}
{$ifdef Windows}
function TVulkan.CreateWin32SurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkWin32SurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateWin32SurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef Windows}
function TVulkan.GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice,queueFamilyIndex);
end;
{$endif}
{$ifdef XLIB}
function TVulkan.CreateXlibSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkXlibSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateXlibSurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef XLIB}
function TVulkan.GetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dpy:PVkXLIBDisplay;visualID:TVkXLIBVisualID):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice,queueFamilyIndex,dpy,visualID);
end;
{$endif}
{$ifdef XCB}
function TVulkan.CreateXcbSurfaceKHR(instance:TVkInstance;const pCreateInfo:PVkXcbSurfaceCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateXcbSurfaceKHR(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef XCB}
function TVulkan.GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;connection:PVkXCBConnection;visual_id:TVkXCBVisualID):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice,queueFamilyIndex,connection,visual_id);
end;
{$endif}
{$ifdef DirectFB}
function TVulkan.CreateDirectFBSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkDirectFBSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateDirectFBSurfaceEXT(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef DirectFB}
function TVulkan.GetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;dfb:PVkDirectFBIDirectFB):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice,queueFamilyIndex,dfb);
end;
{$endif}
{$ifdef Fuchsia}
function TVulkan.CreateImagePipeSurfaceFUCHSIA(instance:TVkInstance;const pCreateInfo:PVkImagePipeSurfaceCreateInfoFUCHSIA;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateImagePipeSurfaceFUCHSIA(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
function TVulkan.CreateStreamDescriptorSurfaceGGP(instance:TVkInstance;const pCreateInfo:PVkStreamDescriptorSurfaceCreateInfoGGP;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateStreamDescriptorSurfaceGGP(instance,pCreateInfo,pAllocator,pSurface);
end;
{$ifdef QNX}
function TVulkan.CreateScreenSurfaceQNX(instance:TVkInstance;const pCreateInfo:PVkScreenSurfaceCreateInfoQNX;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateScreenSurfaceQNX(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef QNX}
function TVulkan.GetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;window:PVkQNXScreenWindow):TVkBool32;
begin
result:=fCommands.GetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice,queueFamilyIndex,window);
end;
{$endif}
function TVulkan.CreateDebugReportCallbackEXT(instance:TVkInstance;const pCreateInfo:PVkDebugReportCallbackCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pCallback:PVkDebugReportCallbackEXT):TVkResult;
begin
result:=fCommands.CreateDebugReportCallbackEXT(instance,pCreateInfo,pAllocator,pCallback);
end;
procedure TVulkan.DestroyDebugReportCallbackEXT(instance:TVkInstance;callback:TVkDebugReportCallbackEXT;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDebugReportCallbackEXT(instance,callback,pAllocator);
end;
procedure TVulkan.DebugReportMessageEXT(instance:TVkInstance;flags:TVkDebugReportFlagsEXT;objectType:TVkDebugReportObjectTypeEXT;object_:TVkUInt64;location:TVkSize;messageCode:TVkInt32;const pLayerPrefix:PVkChar;const pMessage:PVkChar);
begin
fCommands.DebugReportMessageEXT(instance,flags,objectType,object_,location,messageCode,pLayerPrefix,pMessage);
end;
function TVulkan.DebugMarkerSetObjectNameEXT(device:TVkDevice;const pNameInfo:PVkDebugMarkerObjectNameInfoEXT):TVkResult;
begin
result:=fCommands.DebugMarkerSetObjectNameEXT(device,pNameInfo);
end;
function TVulkan.DebugMarkerSetObjectTagEXT(device:TVkDevice;const pTagInfo:PVkDebugMarkerObjectTagInfoEXT):TVkResult;
begin
result:=fCommands.DebugMarkerSetObjectTagEXT(device,pTagInfo);
end;
procedure TVulkan.CmdDebugMarkerBeginEXT(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT);
begin
fCommands.CmdDebugMarkerBeginEXT(commandBuffer,pMarkerInfo);
end;
procedure TVulkan.CmdDebugMarkerEndEXT(commandBuffer:TVkCommandBuffer);
begin
fCommands.CmdDebugMarkerEndEXT(commandBuffer);
end;
procedure TVulkan.CmdDebugMarkerInsertEXT(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkDebugMarkerMarkerInfoEXT);
begin
fCommands.CmdDebugMarkerInsertEXT(commandBuffer,pMarkerInfo);
end;
function TVulkan.GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice:TVkPhysicalDevice;format:TVkFormat;type_:TVkImageType;tiling:TVkImageTiling;usage:TVkImageUsageFlags;flags:TVkImageCreateFlags;externalHandleType:TVkExternalMemoryHandleTypeFlagsNV;pExternalImageFormatProperties:PVkExternalImageFormatPropertiesNV):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice,format,type_,tiling,usage,flags,externalHandleType,pExternalImageFormatProperties);
end;
{$ifdef Windows}
function TVulkan.GetMemoryWin32HandleNV(device:TVkDevice;memory:TVkDeviceMemory;handleType:TVkExternalMemoryHandleTypeFlagsNV;pHandle:PHANDLE):TVkResult;
begin
result:=fCommands.GetMemoryWin32HandleNV(device,memory,handleType,pHandle);
end;
{$endif}
procedure TVulkan.CmdExecuteGeneratedCommandsNV(commandBuffer:TVkCommandBuffer;isPreprocessed:TVkBool32;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV);
begin
fCommands.CmdExecuteGeneratedCommandsNV(commandBuffer,isPreprocessed,pGeneratedCommandsInfo);
end;
procedure TVulkan.CmdPreprocessGeneratedCommandsNV(commandBuffer:TVkCommandBuffer;const pGeneratedCommandsInfo:PVkGeneratedCommandsInfoNV);
begin
fCommands.CmdPreprocessGeneratedCommandsNV(commandBuffer,pGeneratedCommandsInfo);
end;
procedure TVulkan.CmdBindPipelineShaderGroupNV(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;pipeline:TVkPipeline;groupIndex:TVkUInt32);
begin
fCommands.CmdBindPipelineShaderGroupNV(commandBuffer,pipelineBindPoint,pipeline,groupIndex);
end;
procedure TVulkan.GetGeneratedCommandsMemoryRequirementsNV(device:TVkDevice;const pInfo:PVkGeneratedCommandsMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2);
begin
fCommands.GetGeneratedCommandsMemoryRequirementsNV(device,pInfo,pMemoryRequirements);
end;
function TVulkan.CreateIndirectCommandsLayoutNV(device:TVkDevice;const pCreateInfo:PVkIndirectCommandsLayoutCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pIndirectCommandsLayout:PVkIndirectCommandsLayoutNV):TVkResult;
begin
result:=fCommands.CreateIndirectCommandsLayoutNV(device,pCreateInfo,pAllocator,pIndirectCommandsLayout);
end;
procedure TVulkan.DestroyIndirectCommandsLayoutNV(device:TVkDevice;indirectCommandsLayout:TVkIndirectCommandsLayoutNV;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyIndirectCommandsLayoutNV(device,indirectCommandsLayout,pAllocator);
end;
procedure TVulkan.GetPhysicalDeviceFeatures2(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2);
begin
fCommands.GetPhysicalDeviceFeatures2(physicalDevice,pFeatures);
end;
procedure TVulkan.GetPhysicalDeviceFeatures2KHR(physicalDevice:TVkPhysicalDevice;pFeatures:PVkPhysicalDeviceFeatures2);
begin
fCommands.GetPhysicalDeviceFeatures2KHR(physicalDevice,pFeatures);
end;
procedure TVulkan.GetPhysicalDeviceProperties2(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2);
begin
fCommands.GetPhysicalDeviceProperties2(physicalDevice,pProperties);
end;
procedure TVulkan.GetPhysicalDeviceProperties2KHR(physicalDevice:TVkPhysicalDevice;pProperties:PVkPhysicalDeviceProperties2);
begin
fCommands.GetPhysicalDeviceProperties2KHR(physicalDevice,pProperties);
end;
procedure TVulkan.GetPhysicalDeviceFormatProperties2(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2);
begin
fCommands.GetPhysicalDeviceFormatProperties2(physicalDevice,format,pFormatProperties);
end;
procedure TVulkan.GetPhysicalDeviceFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;format:TVkFormat;pFormatProperties:PVkFormatProperties2);
begin
fCommands.GetPhysicalDeviceFormatProperties2KHR(physicalDevice,format,pFormatProperties);
end;
function TVulkan.GetPhysicalDeviceImageFormatProperties2(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceImageFormatProperties2(physicalDevice,pImageFormatInfo,pImageFormatProperties);
end;
function TVulkan.GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;const pImageFormatInfo:PVkPhysicalDeviceImageFormatInfo2;pImageFormatProperties:PVkImageFormatProperties2):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice,pImageFormatInfo,pImageFormatProperties);
end;
procedure TVulkan.GetPhysicalDeviceQueueFamilyProperties2(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2);
begin
fCommands.GetPhysicalDeviceQueueFamilyProperties2(physicalDevice,pQueueFamilyPropertyCount,pQueueFamilyProperties);
end;
procedure TVulkan.GetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice:TVkPhysicalDevice;pQueueFamilyPropertyCount:PVkUInt32;pQueueFamilyProperties:PVkQueueFamilyProperties2);
begin
fCommands.GetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice,pQueueFamilyPropertyCount,pQueueFamilyProperties);
end;
procedure TVulkan.GetPhysicalDeviceMemoryProperties2(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2);
begin
fCommands.GetPhysicalDeviceMemoryProperties2(physicalDevice,pMemoryProperties);
end;
procedure TVulkan.GetPhysicalDeviceMemoryProperties2KHR(physicalDevice:TVkPhysicalDevice;pMemoryProperties:PVkPhysicalDeviceMemoryProperties2);
begin
fCommands.GetPhysicalDeviceMemoryProperties2KHR(physicalDevice,pMemoryProperties);
end;
procedure TVulkan.GetPhysicalDeviceSparseImageFormatProperties2(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2);
begin
fCommands.GetPhysicalDeviceSparseImageFormatProperties2(physicalDevice,pFormatInfo,pPropertyCount,pProperties);
end;
procedure TVulkan.GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice:TVkPhysicalDevice;const pFormatInfo:PVkPhysicalDeviceSparseImageFormatInfo2;pPropertyCount:PVkUInt32;pProperties:PVkSparseImageFormatProperties2);
begin
fCommands.GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice,pFormatInfo,pPropertyCount,pProperties);
end;
procedure TVulkan.CmdPushDescriptorSetKHR(commandBuffer:TVkCommandBuffer;pipelineBindPoint:TVkPipelineBindPoint;layout:TVkPipelineLayout;set_:TVkUInt32;descriptorWriteCount:TVkUInt32;const pDescriptorWrites:PVkWriteDescriptorSet);
begin
fCommands.CmdPushDescriptorSetKHR(commandBuffer,pipelineBindPoint,layout,set_,descriptorWriteCount,pDescriptorWrites);
end;
procedure TVulkan.TrimCommandPool(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags);
begin
fCommands.TrimCommandPool(device,commandPool,flags);
end;
procedure TVulkan.TrimCommandPoolKHR(device:TVkDevice;commandPool:TVkCommandPool;flags:TVkCommandPoolTrimFlags);
begin
fCommands.TrimCommandPoolKHR(device,commandPool,flags);
end;
procedure TVulkan.GetPhysicalDeviceExternalBufferProperties(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties);
begin
fCommands.GetPhysicalDeviceExternalBufferProperties(physicalDevice,pExternalBufferInfo,pExternalBufferProperties);
end;
procedure TVulkan.GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalBufferInfo:PVkPhysicalDeviceExternalBufferInfo;pExternalBufferProperties:PVkExternalBufferProperties);
begin
fCommands.GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice,pExternalBufferInfo,pExternalBufferProperties);
end;
{$ifdef Windows}
function TVulkan.GetMemoryWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkMemoryGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult;
begin
result:=fCommands.GetMemoryWin32HandleKHR(device,pGetWin32HandleInfo,pHandle);
end;
{$endif}
{$ifdef Windows}
function TVulkan.GetMemoryWin32HandlePropertiesKHR(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;handle:THANDLE;pMemoryWin32HandleProperties:PVkMemoryWin32HandlePropertiesKHR):TVkResult;
begin
result:=fCommands.GetMemoryWin32HandlePropertiesKHR(device,handleType,handle,pMemoryWin32HandleProperties);
end;
{$endif}
function TVulkan.GetMemoryFdKHR(device:TVkDevice;const pGetFdInfo:PVkMemoryGetFdInfoKHR;pFd:PVkInt32):TVkResult;
begin
result:=fCommands.GetMemoryFdKHR(device,pGetFdInfo,pFd);
end;
function TVulkan.GetMemoryFdPropertiesKHR(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;fd:TVkInt32;pMemoryFdProperties:PVkMemoryFdPropertiesKHR):TVkResult;
begin
result:=fCommands.GetMemoryFdPropertiesKHR(device,handleType,fd,pMemoryFdProperties);
end;
{$ifdef Fuchsia}
function TVulkan.GetMemoryZirconHandleFUCHSIA(device:TVkDevice;const pGetZirconHandleInfo:PVkMemoryGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult;
begin
result:=fCommands.GetMemoryZirconHandleFUCHSIA(device,pGetZirconHandleInfo,pZirconHandle);
end;
{$endif}
{$ifdef Fuchsia}
function TVulkan.GetMemoryZirconHandlePropertiesFUCHSIA(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;zirconHandle:TVkFuchsiaZXHandle;pMemoryZirconHandleProperties:PVkMemoryZirconHandlePropertiesFUCHSIA):TVkResult;
begin
result:=fCommands.GetMemoryZirconHandlePropertiesFUCHSIA(device,handleType,zirconHandle,pMemoryZirconHandleProperties);
end;
{$endif}
function TVulkan.GetMemoryRemoteAddressNV(device:TVkDevice;const pMemoryGetRemoteAddressInfo:PVkMemoryGetRemoteAddressInfoNV;pAddress:PVkRemoteAddressNV):TVkResult;
begin
result:=fCommands.GetMemoryRemoteAddressNV(device,pMemoryGetRemoteAddressInfo,pAddress);
end;
procedure TVulkan.GetPhysicalDeviceExternalSemaphoreProperties(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties);
begin
fCommands.GetPhysicalDeviceExternalSemaphoreProperties(physicalDevice,pExternalSemaphoreInfo,pExternalSemaphoreProperties);
end;
procedure TVulkan.GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalSemaphoreInfo:PVkPhysicalDeviceExternalSemaphoreInfo;pExternalSemaphoreProperties:PVkExternalSemaphoreProperties);
begin
fCommands.GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice,pExternalSemaphoreInfo,pExternalSemaphoreProperties);
end;
{$ifdef Windows}
function TVulkan.GetSemaphoreWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkSemaphoreGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult;
begin
result:=fCommands.GetSemaphoreWin32HandleKHR(device,pGetWin32HandleInfo,pHandle);
end;
{$endif}
{$ifdef Windows}
function TVulkan.ImportSemaphoreWin32HandleKHR(device:TVkDevice;const pImportSemaphoreWin32HandleInfo:PVkImportSemaphoreWin32HandleInfoKHR):TVkResult;
begin
result:=fCommands.ImportSemaphoreWin32HandleKHR(device,pImportSemaphoreWin32HandleInfo);
end;
{$endif}
function TVulkan.GetSemaphoreFdKHR(device:TVkDevice;const pGetFdInfo:PVkSemaphoreGetFdInfoKHR;pFd:PVkInt32):TVkResult;
begin
result:=fCommands.GetSemaphoreFdKHR(device,pGetFdInfo,pFd);
end;
function TVulkan.ImportSemaphoreFdKHR(device:TVkDevice;const pImportSemaphoreFdInfo:PVkImportSemaphoreFdInfoKHR):TVkResult;
begin
result:=fCommands.ImportSemaphoreFdKHR(device,pImportSemaphoreFdInfo);
end;
{$ifdef Fuchsia}
function TVulkan.GetSemaphoreZirconHandleFUCHSIA(device:TVkDevice;const pGetZirconHandleInfo:PVkSemaphoreGetZirconHandleInfoFUCHSIA;pZirconHandle:PVkFuchsiaZXHandle):TVkResult;
begin
result:=fCommands.GetSemaphoreZirconHandleFUCHSIA(device,pGetZirconHandleInfo,pZirconHandle);
end;
{$endif}
{$ifdef Fuchsia}
function TVulkan.ImportSemaphoreZirconHandleFUCHSIA(device:TVkDevice;const pImportSemaphoreZirconHandleInfo:PVkImportSemaphoreZirconHandleInfoFUCHSIA):TVkResult;
begin
result:=fCommands.ImportSemaphoreZirconHandleFUCHSIA(device,pImportSemaphoreZirconHandleInfo);
end;
{$endif}
procedure TVulkan.GetPhysicalDeviceExternalFenceProperties(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties);
begin
fCommands.GetPhysicalDeviceExternalFenceProperties(physicalDevice,pExternalFenceInfo,pExternalFenceProperties);
end;
procedure TVulkan.GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice:TVkPhysicalDevice;const pExternalFenceInfo:PVkPhysicalDeviceExternalFenceInfo;pExternalFenceProperties:PVkExternalFenceProperties);
begin
fCommands.GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice,pExternalFenceInfo,pExternalFenceProperties);
end;
{$ifdef Windows}
function TVulkan.GetFenceWin32HandleKHR(device:TVkDevice;const pGetWin32HandleInfo:PVkFenceGetWin32HandleInfoKHR;pHandle:PHANDLE):TVkResult;
begin
result:=fCommands.GetFenceWin32HandleKHR(device,pGetWin32HandleInfo,pHandle);
end;
{$endif}
{$ifdef Windows}
function TVulkan.ImportFenceWin32HandleKHR(device:TVkDevice;const pImportFenceWin32HandleInfo:PVkImportFenceWin32HandleInfoKHR):TVkResult;
begin
result:=fCommands.ImportFenceWin32HandleKHR(device,pImportFenceWin32HandleInfo);
end;
{$endif}
function TVulkan.GetFenceFdKHR(device:TVkDevice;const pGetFdInfo:PVkFenceGetFdInfoKHR;pFd:PVkInt32):TVkResult;
begin
result:=fCommands.GetFenceFdKHR(device,pGetFdInfo,pFd);
end;
function TVulkan.ImportFenceFdKHR(device:TVkDevice;const pImportFenceFdInfo:PVkImportFenceFdInfoKHR):TVkResult;
begin
result:=fCommands.ImportFenceFdKHR(device,pImportFenceFdInfo);
end;
function TVulkan.ReleaseDisplayEXT(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult;
begin
result:=fCommands.ReleaseDisplayEXT(physicalDevice,display);
end;
{$ifdef XLIB}
function TVulkan.AcquireXlibDisplayEXT(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;display:TVkDisplayKHR):TVkResult;
begin
result:=fCommands.AcquireXlibDisplayEXT(physicalDevice,dpy,display);
end;
{$endif}
{$ifdef RandR}
function TVulkan.GetRandROutputDisplayEXT(physicalDevice:TVkPhysicalDevice;dpy:PVkXLIBDisplay;rrOutput:TRROutput;pDisplay:PVkDisplayKHR):TVkResult;
begin
result:=fCommands.GetRandROutputDisplayEXT(physicalDevice,dpy,rrOutput,pDisplay);
end;
{$endif}
function TVulkan.AcquireWinrtDisplayNV(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR):TVkResult;
begin
result:=fCommands.AcquireWinrtDisplayNV(physicalDevice,display);
end;
function TVulkan.GetWinrtDisplayNV(physicalDevice:TVkPhysicalDevice;deviceRelativeId:TVkUInt32;pDisplay:PVkDisplayKHR):TVkResult;
begin
result:=fCommands.GetWinrtDisplayNV(physicalDevice,deviceRelativeId,pDisplay);
end;
function TVulkan.DisplayPowerControlEXT(device:TVkDevice;display:TVkDisplayKHR;const pDisplayPowerInfo:PVkDisplayPowerInfoEXT):TVkResult;
begin
result:=fCommands.DisplayPowerControlEXT(device,display,pDisplayPowerInfo);
end;
function TVulkan.RegisterDeviceEventEXT(device:TVkDevice;const pDeviceEventInfo:PVkDeviceEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult;
begin
result:=fCommands.RegisterDeviceEventEXT(device,pDeviceEventInfo,pAllocator,pFence);
end;
function TVulkan.RegisterDisplayEventEXT(device:TVkDevice;display:TVkDisplayKHR;const pDisplayEventInfo:PVkDisplayEventInfoEXT;const pAllocator:PVkAllocationCallbacks;pFence:PVkFence):TVkResult;
begin
result:=fCommands.RegisterDisplayEventEXT(device,display,pDisplayEventInfo,pAllocator,pFence);
end;
function TVulkan.GetSwapchainCounterEXT(device:TVkDevice;swapchain:TVkSwapchainKHR;counter:TVkSurfaceCounterFlagBitsEXT;pCounterValue:PVkUInt64):TVkResult;
begin
result:=fCommands.GetSwapchainCounterEXT(device,swapchain,counter,pCounterValue);
end;
function TVulkan.GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pSurfaceCapabilities:PVkSurfaceCapabilities2EXT):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice,surface,pSurfaceCapabilities);
end;
function TVulkan.EnumeratePhysicalDeviceGroups(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult;
begin
result:=fCommands.EnumeratePhysicalDeviceGroups(instance,pPhysicalDeviceGroupCount,pPhysicalDeviceGroupProperties);
end;
function TVulkan.EnumeratePhysicalDeviceGroupsKHR(instance:TVkInstance;pPhysicalDeviceGroupCount:PVkUInt32;pPhysicalDeviceGroupProperties:PVkPhysicalDeviceGroupProperties):TVkResult;
begin
result:=fCommands.EnumeratePhysicalDeviceGroupsKHR(instance,pPhysicalDeviceGroupCount,pPhysicalDeviceGroupProperties);
end;
procedure TVulkan.GetDeviceGroupPeerMemoryFeatures(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags);
begin
fCommands.GetDeviceGroupPeerMemoryFeatures(device,heapIndex,localDeviceIndex,remoteDeviceIndex,pPeerMemoryFeatures);
end;
procedure TVulkan.GetDeviceGroupPeerMemoryFeaturesKHR(device:TVkDevice;heapIndex:TVkUInt32;localDeviceIndex:TVkUInt32;remoteDeviceIndex:TVkUInt32;pPeerMemoryFeatures:PVkPeerMemoryFeatureFlags);
begin
fCommands.GetDeviceGroupPeerMemoryFeaturesKHR(device,heapIndex,localDeviceIndex,remoteDeviceIndex,pPeerMemoryFeatures);
end;
function TVulkan.BindBufferMemory2(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult;
begin
result:=fCommands.BindBufferMemory2(device,bindInfoCount,pBindInfos);
end;
function TVulkan.BindBufferMemory2KHR(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindBufferMemoryInfo):TVkResult;
begin
result:=fCommands.BindBufferMemory2KHR(device,bindInfoCount,pBindInfos);
end;
function TVulkan.BindImageMemory2(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult;
begin
result:=fCommands.BindImageMemory2(device,bindInfoCount,pBindInfos);
end;
function TVulkan.BindImageMemory2KHR(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindImageMemoryInfo):TVkResult;
begin
result:=fCommands.BindImageMemory2KHR(device,bindInfoCount,pBindInfos);
end;
procedure TVulkan.CmdSetDeviceMask(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32);
begin
fCommands.CmdSetDeviceMask(commandBuffer,deviceMask);
end;
procedure TVulkan.CmdSetDeviceMaskKHR(commandBuffer:TVkCommandBuffer;deviceMask:TVkUInt32);
begin
fCommands.CmdSetDeviceMaskKHR(commandBuffer,deviceMask);
end;
function TVulkan.GetDeviceGroupPresentCapabilitiesKHR(device:TVkDevice;pDeviceGroupPresentCapabilities:PVkDeviceGroupPresentCapabilitiesKHR):TVkResult;
begin
result:=fCommands.GetDeviceGroupPresentCapabilitiesKHR(device,pDeviceGroupPresentCapabilities);
end;
function TVulkan.GetDeviceGroupSurfacePresentModesKHR(device:TVkDevice;surface:TVkSurfaceKHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult;
begin
result:=fCommands.GetDeviceGroupSurfacePresentModesKHR(device,surface,pModes);
end;
function TVulkan.AcquireNextImage2KHR(device:TVkDevice;const pAcquireInfo:PVkAcquireNextImageInfoKHR;pImageIndex:PVkUInt32):TVkResult;
begin
result:=fCommands.AcquireNextImage2KHR(device,pAcquireInfo,pImageIndex);
end;
procedure TVulkan.CmdDispatchBase(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32);
begin
fCommands.CmdDispatchBase(commandBuffer,baseGroupX,baseGroupY,baseGroupZ,groupCountX,groupCountY,groupCountZ);
end;
procedure TVulkan.CmdDispatchBaseKHR(commandBuffer:TVkCommandBuffer;baseGroupX:TVkUInt32;baseGroupY:TVkUInt32;baseGroupZ:TVkUInt32;groupCountX:TVkUInt32;groupCountY:TVkUInt32;groupCountZ:TVkUInt32);
begin
fCommands.CmdDispatchBaseKHR(commandBuffer,baseGroupX,baseGroupY,baseGroupZ,groupCountX,groupCountY,groupCountZ);
end;
function TVulkan.GetPhysicalDevicePresentRectanglesKHR(physicalDevice:TVkPhysicalDevice;surface:TVkSurfaceKHR;pRectCount:PVkUInt32;pRects:PVkRect2D):TVkResult;
begin
result:=fCommands.GetPhysicalDevicePresentRectanglesKHR(physicalDevice,surface,pRectCount,pRects);
end;
function TVulkan.CreateDescriptorUpdateTemplate(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult;
begin
result:=fCommands.CreateDescriptorUpdateTemplate(device,pCreateInfo,pAllocator,pDescriptorUpdateTemplate);
end;
function TVulkan.CreateDescriptorUpdateTemplateKHR(device:TVkDevice;const pCreateInfo:PVkDescriptorUpdateTemplateCreateInfo;const pAllocator:PVkAllocationCallbacks;pDescriptorUpdateTemplate:PVkDescriptorUpdateTemplate):TVkResult;
begin
result:=fCommands.CreateDescriptorUpdateTemplateKHR(device,pCreateInfo,pAllocator,pDescriptorUpdateTemplate);
end;
procedure TVulkan.DestroyDescriptorUpdateTemplate(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDescriptorUpdateTemplate(device,descriptorUpdateTemplate,pAllocator);
end;
procedure TVulkan.DestroyDescriptorUpdateTemplateKHR(device:TVkDevice;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDescriptorUpdateTemplateKHR(device,descriptorUpdateTemplate,pAllocator);
end;
procedure TVulkan.UpdateDescriptorSetWithTemplate(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid);
begin
fCommands.UpdateDescriptorSetWithTemplate(device,descriptorSet,descriptorUpdateTemplate,pData);
end;
procedure TVulkan.UpdateDescriptorSetWithTemplateKHR(device:TVkDevice;descriptorSet:TVkDescriptorSet;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;const pData:PVkVoid);
begin
fCommands.UpdateDescriptorSetWithTemplateKHR(device,descriptorSet,descriptorUpdateTemplate,pData);
end;
procedure TVulkan.CmdPushDescriptorSetWithTemplateKHR(commandBuffer:TVkCommandBuffer;descriptorUpdateTemplate:TVkDescriptorUpdateTemplate;layout:TVkPipelineLayout;set_:TVkUInt32;const pData:PVkVoid);
begin
fCommands.CmdPushDescriptorSetWithTemplateKHR(commandBuffer,descriptorUpdateTemplate,layout,set_,pData);
end;
procedure TVulkan.SetHdrMetadataEXT(device:TVkDevice;swapchainCount:TVkUInt32;const pSwapchains:PVkSwapchainKHR;const pMetadata:PVkHdrMetadataEXT);
begin
fCommands.SetHdrMetadataEXT(device,swapchainCount,pSwapchains,pMetadata);
end;
function TVulkan.GetSwapchainStatusKHR(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult;
begin
result:=fCommands.GetSwapchainStatusKHR(device,swapchain);
end;
function TVulkan.GetRefreshCycleDurationGOOGLE(device:TVkDevice;swapchain:TVkSwapchainKHR;pDisplayTimingProperties:PVkRefreshCycleDurationGOOGLE):TVkResult;
begin
result:=fCommands.GetRefreshCycleDurationGOOGLE(device,swapchain,pDisplayTimingProperties);
end;
function TVulkan.GetPastPresentationTimingGOOGLE(device:TVkDevice;swapchain:TVkSwapchainKHR;pPresentationTimingCount:PVkUInt32;pPresentationTimings:PVkPastPresentationTimingGOOGLE):TVkResult;
begin
result:=fCommands.GetPastPresentationTimingGOOGLE(device,swapchain,pPresentationTimingCount,pPresentationTimings);
end;
{$ifdef MoltenVK_IOS}
function TVulkan.CreateIOSSurfaceMVK(instance:TVkInstance;const pCreateInfo:PVkIOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateIOSSurfaceMVK(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
{$ifdef MoltenVK_MacOS}
function TVulkan.CreateMacOSSurfaceMVK(instance:TVkInstance;const pCreateInfo:PVkMacOSSurfaceCreateInfoMVK;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateMacOSSurfaceMVK(instance,pCreateInfo,pAllocator,pSurface);
end;
{$endif}
function TVulkan.CreateMetalSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkMetalSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateMetalSurfaceEXT(instance,pCreateInfo,pAllocator,pSurface);
end;
procedure TVulkan.CmdSetViewportWScalingNV(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pViewportWScalings:PVkViewportWScalingNV);
begin
fCommands.CmdSetViewportWScalingNV(commandBuffer,firstViewport,viewportCount,pViewportWScalings);
end;
procedure TVulkan.CmdSetDiscardRectangleEXT(commandBuffer:TVkCommandBuffer;firstDiscardRectangle:TVkUInt32;discardRectangleCount:TVkUInt32;const pDiscardRectangles:PVkRect2D);
begin
fCommands.CmdSetDiscardRectangleEXT(commandBuffer,firstDiscardRectangle,discardRectangleCount,pDiscardRectangles);
end;
procedure TVulkan.CmdSetSampleLocationsEXT(commandBuffer:TVkCommandBuffer;const pSampleLocationsInfo:PVkSampleLocationsInfoEXT);
begin
fCommands.CmdSetSampleLocationsEXT(commandBuffer,pSampleLocationsInfo);
end;
procedure TVulkan.GetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice:TVkPhysicalDevice;samples:TVkSampleCountFlagBits;pMultisampleProperties:PVkMultisamplePropertiesEXT);
begin
fCommands.GetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice,samples,pMultisampleProperties);
end;
function TVulkan.GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceCapabilities:PVkSurfaceCapabilities2KHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice,pSurfaceInfo,pSurfaceCapabilities);
end;
function TVulkan.GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pSurfaceFormatCount:PVkUInt32;pSurfaceFormats:PVkSurfaceFormat2KHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice,pSurfaceInfo,pSurfaceFormatCount,pSurfaceFormats);
end;
function TVulkan.GetPhysicalDeviceDisplayProperties2KHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayProperties2KHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceDisplayProperties2KHR(physicalDevice,pPropertyCount,pProperties);
end;
function TVulkan.GetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkDisplayPlaneProperties2KHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice,pPropertyCount,pProperties);
end;
function TVulkan.GetDisplayModeProperties2KHR(physicalDevice:TVkPhysicalDevice;display:TVkDisplayKHR;pPropertyCount:PVkUInt32;pProperties:PVkDisplayModeProperties2KHR):TVkResult;
begin
result:=fCommands.GetDisplayModeProperties2KHR(physicalDevice,display,pPropertyCount,pProperties);
end;
function TVulkan.GetDisplayPlaneCapabilities2KHR(physicalDevice:TVkPhysicalDevice;const pDisplayPlaneInfo:PVkDisplayPlaneInfo2KHR;pCapabilities:PVkDisplayPlaneCapabilities2KHR):TVkResult;
begin
result:=fCommands.GetDisplayPlaneCapabilities2KHR(physicalDevice,pDisplayPlaneInfo,pCapabilities);
end;
procedure TVulkan.GetBufferMemoryRequirements2(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2);
begin
fCommands.GetBufferMemoryRequirements2(device,pInfo,pMemoryRequirements);
end;
procedure TVulkan.GetBufferMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkBufferMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2);
begin
fCommands.GetBufferMemoryRequirements2KHR(device,pInfo,pMemoryRequirements);
end;
procedure TVulkan.GetImageMemoryRequirements2(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2);
begin
fCommands.GetImageMemoryRequirements2(device,pInfo,pMemoryRequirements);
end;
procedure TVulkan.GetImageMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkImageMemoryRequirementsInfo2;pMemoryRequirements:PVkMemoryRequirements2);
begin
fCommands.GetImageMemoryRequirements2KHR(device,pInfo,pMemoryRequirements);
end;
procedure TVulkan.GetImageSparseMemoryRequirements2(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2);
begin
fCommands.GetImageSparseMemoryRequirements2(device,pInfo,pSparseMemoryRequirementCount,pSparseMemoryRequirements);
end;
procedure TVulkan.GetImageSparseMemoryRequirements2KHR(device:TVkDevice;const pInfo:PVkImageSparseMemoryRequirementsInfo2;pSparseMemoryRequirementCount:PVkUInt32;pSparseMemoryRequirements:PVkSparseImageMemoryRequirements2);
begin
fCommands.GetImageSparseMemoryRequirements2KHR(device,pInfo,pSparseMemoryRequirementCount,pSparseMemoryRequirements);
end;
function TVulkan.CreateSamplerYcbcrConversion(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult;
begin
result:=fCommands.CreateSamplerYcbcrConversion(device,pCreateInfo,pAllocator,pYcbcrConversion);
end;
function TVulkan.CreateSamplerYcbcrConversionKHR(device:TVkDevice;const pCreateInfo:PVkSamplerYcbcrConversionCreateInfo;const pAllocator:PVkAllocationCallbacks;pYcbcrConversion:PVkSamplerYcbcrConversion):TVkResult;
begin
result:=fCommands.CreateSamplerYcbcrConversionKHR(device,pCreateInfo,pAllocator,pYcbcrConversion);
end;
procedure TVulkan.DestroySamplerYcbcrConversion(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySamplerYcbcrConversion(device,ycbcrConversion,pAllocator);
end;
procedure TVulkan.DestroySamplerYcbcrConversionKHR(device:TVkDevice;ycbcrConversion:TVkSamplerYcbcrConversion;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroySamplerYcbcrConversionKHR(device,ycbcrConversion,pAllocator);
end;
procedure TVulkan.GetDeviceQueue2(device:TVkDevice;const pQueueInfo:PVkDeviceQueueInfo2;pQueue:PVkQueue);
begin
fCommands.GetDeviceQueue2(device,pQueueInfo,pQueue);
end;
function TVulkan.CreateValidationCacheEXT(device:TVkDevice;const pCreateInfo:PVkValidationCacheCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pValidationCache:PVkValidationCacheEXT):TVkResult;
begin
result:=fCommands.CreateValidationCacheEXT(device,pCreateInfo,pAllocator,pValidationCache);
end;
procedure TVulkan.DestroyValidationCacheEXT(device:TVkDevice;validationCache:TVkValidationCacheEXT;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyValidationCacheEXT(device,validationCache,pAllocator);
end;
function TVulkan.GetValidationCacheDataEXT(device:TVkDevice;validationCache:TVkValidationCacheEXT;pDataSize:PVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetValidationCacheDataEXT(device,validationCache,pDataSize,pData);
end;
function TVulkan.MergeValidationCachesEXT(device:TVkDevice;dstCache:TVkValidationCacheEXT;srcCacheCount:TVkUInt32;const pSrcCaches:PVkValidationCacheEXT):TVkResult;
begin
result:=fCommands.MergeValidationCachesEXT(device,dstCache,srcCacheCount,pSrcCaches);
end;
procedure TVulkan.GetDescriptorSetLayoutSupport(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport);
begin
fCommands.GetDescriptorSetLayoutSupport(device,pCreateInfo,pSupport);
end;
procedure TVulkan.GetDescriptorSetLayoutSupportKHR(device:TVkDevice;const pCreateInfo:PVkDescriptorSetLayoutCreateInfo;pSupport:PVkDescriptorSetLayoutSupport);
begin
fCommands.GetDescriptorSetLayoutSupportKHR(device,pCreateInfo,pSupport);
end;
function TVulkan.GetSwapchainGrallocUsageANDROID(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;grallocUsage:PVkInt32):TVkResult;
begin
result:=fCommands.GetSwapchainGrallocUsageANDROID(device,format,imageUsage,grallocUsage);
end;
{$ifdef Android}
function TVulkan.GetSwapchainGrallocUsage2ANDROID(device:TVkDevice;format:TVkFormat;imageUsage:TVkImageUsageFlags;swapchainImageUsage:TVkSwapchainImageUsageFlagsANDROID;grallocConsumerUsage:PVkUInt64;grallocProducerUsage:PVkUInt64):TVkResult;
begin
result:=fCommands.GetSwapchainGrallocUsage2ANDROID(device,format,imageUsage,swapchainImageUsage,grallocConsumerUsage,grallocProducerUsage);
end;
{$endif}
function TVulkan.AcquireImageANDROID(device:TVkDevice;image:TVkImage;nativeFenceFd:TVkInt32;semaphore:TVkSemaphore;fence:TVkFence):TVkResult;
begin
result:=fCommands.AcquireImageANDROID(device,image,nativeFenceFd,semaphore,fence);
end;
function TVulkan.QueueSignalReleaseImageANDROID(queue:TVkQueue;waitSemaphoreCount:TVkUInt32;const pWaitSemaphores:PVkSemaphore;image:TVkImage;pNativeFenceFd:PVkInt32):TVkResult;
begin
result:=fCommands.QueueSignalReleaseImageANDROID(queue,waitSemaphoreCount,pWaitSemaphores,image,pNativeFenceFd);
end;
function TVulkan.GetShaderInfoAMD(device:TVkDevice;pipeline:TVkPipeline;shaderStage:TVkShaderStageFlagBits;infoType:TVkShaderInfoTypeAMD;pInfoSize:PVkSize;pInfo:PVkVoid):TVkResult;
begin
result:=fCommands.GetShaderInfoAMD(device,pipeline,shaderStage,infoType,pInfoSize,pInfo);
end;
procedure TVulkan.SetLocalDimmingAMD(device:TVkDevice;swapChain:TVkSwapchainKHR;localDimmingEnable:TVkBool32);
begin
fCommands.SetLocalDimmingAMD(device,swapChain,localDimmingEnable);
end;
function TVulkan.GetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice:TVkPhysicalDevice;pTimeDomainCount:PVkUInt32;pTimeDomains:PVkTimeDomainEXT):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice,pTimeDomainCount,pTimeDomains);
end;
function TVulkan.GetCalibratedTimestampsEXT(device:TVkDevice;timestampCount:TVkUInt32;const pTimestampInfos:PVkCalibratedTimestampInfoEXT;pTimestamps:PVkUInt64;pMaxDeviation:PVkUInt64):TVkResult;
begin
result:=fCommands.GetCalibratedTimestampsEXT(device,timestampCount,pTimestampInfos,pTimestamps,pMaxDeviation);
end;
function TVulkan.SetDebugUtilsObjectNameEXT(device:TVkDevice;const pNameInfo:PVkDebugUtilsObjectNameInfoEXT):TVkResult;
begin
result:=fCommands.SetDebugUtilsObjectNameEXT(device,pNameInfo);
end;
function TVulkan.SetDebugUtilsObjectTagEXT(device:TVkDevice;const pTagInfo:PVkDebugUtilsObjectTagInfoEXT):TVkResult;
begin
result:=fCommands.SetDebugUtilsObjectTagEXT(device,pTagInfo);
end;
procedure TVulkan.QueueBeginDebugUtilsLabelEXT(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT);
begin
fCommands.QueueBeginDebugUtilsLabelEXT(queue,pLabelInfo);
end;
procedure TVulkan.QueueEndDebugUtilsLabelEXT(queue:TVkQueue);
begin
fCommands.QueueEndDebugUtilsLabelEXT(queue);
end;
procedure TVulkan.QueueInsertDebugUtilsLabelEXT(queue:TVkQueue;const pLabelInfo:PVkDebugUtilsLabelEXT);
begin
fCommands.QueueInsertDebugUtilsLabelEXT(queue,pLabelInfo);
end;
procedure TVulkan.CmdBeginDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT);
begin
fCommands.CmdBeginDebugUtilsLabelEXT(commandBuffer,pLabelInfo);
end;
procedure TVulkan.CmdEndDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer);
begin
fCommands.CmdEndDebugUtilsLabelEXT(commandBuffer);
end;
procedure TVulkan.CmdInsertDebugUtilsLabelEXT(commandBuffer:TVkCommandBuffer;const pLabelInfo:PVkDebugUtilsLabelEXT);
begin
fCommands.CmdInsertDebugUtilsLabelEXT(commandBuffer,pLabelInfo);
end;
function TVulkan.CreateDebugUtilsMessengerEXT(instance:TVkInstance;const pCreateInfo:PVkDebugUtilsMessengerCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pMessenger:PVkDebugUtilsMessengerEXT):TVkResult;
begin
result:=fCommands.CreateDebugUtilsMessengerEXT(instance,pCreateInfo,pAllocator,pMessenger);
end;
procedure TVulkan.DestroyDebugUtilsMessengerEXT(instance:TVkInstance;messenger:TVkDebugUtilsMessengerEXT;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDebugUtilsMessengerEXT(instance,messenger,pAllocator);
end;
procedure TVulkan.SubmitDebugUtilsMessageEXT(instance:TVkInstance;messageSeverity:TVkDebugUtilsMessageSeverityFlagBitsEXT;messageTypes:TVkDebugUtilsMessageTypeFlagsEXT;const pCallbackData:PVkDebugUtilsMessengerCallbackDataEXT);
begin
fCommands.SubmitDebugUtilsMessageEXT(instance,messageSeverity,messageTypes,pCallbackData);
end;
function TVulkan.GetMemoryHostPointerPropertiesEXT(device:TVkDevice;handleType:TVkExternalMemoryHandleTypeFlagBits;const pHostPointer:PVkVoid;pMemoryHostPointerProperties:PVkMemoryHostPointerPropertiesEXT):TVkResult;
begin
result:=fCommands.GetMemoryHostPointerPropertiesEXT(device,handleType,pHostPointer,pMemoryHostPointerProperties);
end;
procedure TVulkan.CmdWriteBufferMarkerAMD(commandBuffer:TVkCommandBuffer;pipelineStage:TVkPipelineStageFlagBits;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32);
begin
fCommands.CmdWriteBufferMarkerAMD(commandBuffer,pipelineStage,dstBuffer,dstOffset,marker);
end;
function TVulkan.CreateRenderPass2(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult;
begin
result:=fCommands.CreateRenderPass2(device,pCreateInfo,pAllocator,pRenderPass);
end;
function TVulkan.CreateRenderPass2KHR(device:TVkDevice;const pCreateInfo:PVkRenderPassCreateInfo2;const pAllocator:PVkAllocationCallbacks;pRenderPass:PVkRenderPass):TVkResult;
begin
result:=fCommands.CreateRenderPass2KHR(device,pCreateInfo,pAllocator,pRenderPass);
end;
procedure TVulkan.CmdBeginRenderPass2(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo);
begin
fCommands.CmdBeginRenderPass2(commandBuffer,pRenderPassBegin,pSubpassBeginInfo);
end;
procedure TVulkan.CmdBeginRenderPass2KHR(commandBuffer:TVkCommandBuffer;const pRenderPassBegin:PVkRenderPassBeginInfo;const pSubpassBeginInfo:PVkSubpassBeginInfo);
begin
fCommands.CmdBeginRenderPass2KHR(commandBuffer,pRenderPassBegin,pSubpassBeginInfo);
end;
procedure TVulkan.CmdNextSubpass2(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo);
begin
fCommands.CmdNextSubpass2(commandBuffer,pSubpassBeginInfo,pSubpassEndInfo);
end;
procedure TVulkan.CmdNextSubpass2KHR(commandBuffer:TVkCommandBuffer;const pSubpassBeginInfo:PVkSubpassBeginInfo;const pSubpassEndInfo:PVkSubpassEndInfo);
begin
fCommands.CmdNextSubpass2KHR(commandBuffer,pSubpassBeginInfo,pSubpassEndInfo);
end;
procedure TVulkan.CmdEndRenderPass2(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo);
begin
fCommands.CmdEndRenderPass2(commandBuffer,pSubpassEndInfo);
end;
procedure TVulkan.CmdEndRenderPass2KHR(commandBuffer:TVkCommandBuffer;const pSubpassEndInfo:PVkSubpassEndInfo);
begin
fCommands.CmdEndRenderPass2KHR(commandBuffer,pSubpassEndInfo);
end;
function TVulkan.GetSemaphoreCounterValue(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult;
begin
result:=fCommands.GetSemaphoreCounterValue(device,semaphore,pValue);
end;
function TVulkan.GetSemaphoreCounterValueKHR(device:TVkDevice;semaphore:TVkSemaphore;pValue:PVkUInt64):TVkResult;
begin
result:=fCommands.GetSemaphoreCounterValueKHR(device,semaphore,pValue);
end;
function TVulkan.WaitSemaphores(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult;
begin
result:=fCommands.WaitSemaphores(device,pWaitInfo,timeout);
end;
function TVulkan.WaitSemaphoresKHR(device:TVkDevice;const pWaitInfo:PVkSemaphoreWaitInfo;timeout:TVkUInt64):TVkResult;
begin
result:=fCommands.WaitSemaphoresKHR(device,pWaitInfo,timeout);
end;
function TVulkan.SignalSemaphore(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult;
begin
result:=fCommands.SignalSemaphore(device,pSignalInfo);
end;
function TVulkan.SignalSemaphoreKHR(device:TVkDevice;const pSignalInfo:PVkSemaphoreSignalInfo):TVkResult;
begin
result:=fCommands.SignalSemaphoreKHR(device,pSignalInfo);
end;
{$ifdef Android}
function TVulkan.GetAndroidHardwareBufferPropertiesANDROID(device:TVkDevice;const buffer:PVkAndroidAHardwareBuffer;pProperties:PVkAndroidHardwareBufferPropertiesANDROID):TVkResult;
begin
result:=fCommands.GetAndroidHardwareBufferPropertiesANDROID(device,buffer,pProperties);
end;
{$endif}
{$ifdef Android}
function TVulkan.GetMemoryAndroidHardwareBufferANDROID(device:TVkDevice;const pInfo:PVkMemoryGetAndroidHardwareBufferInfoANDROID;pBuffer:PPVkAndroidAHardwareBuffer):TVkResult;
begin
result:=fCommands.GetMemoryAndroidHardwareBufferANDROID(device,pInfo,pBuffer);
end;
{$endif}
procedure TVulkan.CmdDrawIndirectCount(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndirectCount(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdDrawIndirectCountKHR(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndirectCountKHR(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdDrawIndirectCountAMD(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndirectCountAMD(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdDrawIndexedIndirectCount(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndexedIndirectCount(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdDrawIndexedIndirectCountKHR(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndexedIndirectCountKHR(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdDrawIndexedIndirectCountAMD(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawIndexedIndirectCountAMD(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
procedure TVulkan.CmdSetCheckpointNV(commandBuffer:TVkCommandBuffer;const pCheckpointMarker:PVkVoid);
begin
fCommands.CmdSetCheckpointNV(commandBuffer,pCheckpointMarker);
end;
procedure TVulkan.GetQueueCheckpointDataNV(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointDataNV);
begin
fCommands.GetQueueCheckpointDataNV(queue,pCheckpointDataCount,pCheckpointData);
end;
procedure TVulkan.CmdBindTransformFeedbackBuffersEXT(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize);
begin
fCommands.CmdBindTransformFeedbackBuffersEXT(commandBuffer,firstBinding,bindingCount,pBuffers,pOffsets,pSizes);
end;
procedure TVulkan.CmdBeginTransformFeedbackEXT(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize);
begin
fCommands.CmdBeginTransformFeedbackEXT(commandBuffer,firstCounterBuffer,counterBufferCount,pCounterBuffers,pCounterBufferOffsets);
end;
procedure TVulkan.CmdEndTransformFeedbackEXT(commandBuffer:TVkCommandBuffer;firstCounterBuffer:TVkUInt32;counterBufferCount:TVkUInt32;const pCounterBuffers:PVkBuffer;const pCounterBufferOffsets:PVkDeviceSize);
begin
fCommands.CmdEndTransformFeedbackEXT(commandBuffer,firstCounterBuffer,counterBufferCount,pCounterBuffers,pCounterBufferOffsets);
end;
procedure TVulkan.CmdBeginQueryIndexedEXT(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;flags:TVkQueryControlFlags;index:TVkUInt32);
begin
fCommands.CmdBeginQueryIndexedEXT(commandBuffer,queryPool,query,flags,index);
end;
procedure TVulkan.CmdEndQueryIndexedEXT(commandBuffer:TVkCommandBuffer;queryPool:TVkQueryPool;query:TVkUInt32;index:TVkUInt32);
begin
fCommands.CmdEndQueryIndexedEXT(commandBuffer,queryPool,query,index);
end;
procedure TVulkan.CmdDrawIndirectByteCountEXT(commandBuffer:TVkCommandBuffer;instanceCount:TVkUInt32;firstInstance:TVkUInt32;counterBuffer:TVkBuffer;counterBufferOffset:TVkDeviceSize;counterOffset:TVkUInt32;vertexStride:TVkUInt32);
begin
fCommands.CmdDrawIndirectByteCountEXT(commandBuffer,instanceCount,firstInstance,counterBuffer,counterBufferOffset,counterOffset,vertexStride);
end;
procedure TVulkan.CmdSetExclusiveScissorNV(commandBuffer:TVkCommandBuffer;firstExclusiveScissor:TVkUInt32;exclusiveScissorCount:TVkUInt32;const pExclusiveScissors:PVkRect2D);
begin
fCommands.CmdSetExclusiveScissorNV(commandBuffer,firstExclusiveScissor,exclusiveScissorCount,pExclusiveScissors);
end;
procedure TVulkan.CmdBindShadingRateImageNV(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout);
begin
fCommands.CmdBindShadingRateImageNV(commandBuffer,imageView,imageLayout);
end;
procedure TVulkan.CmdSetViewportShadingRatePaletteNV(commandBuffer:TVkCommandBuffer;firstViewport:TVkUInt32;viewportCount:TVkUInt32;const pShadingRatePalettes:PVkShadingRatePaletteNV);
begin
fCommands.CmdSetViewportShadingRatePaletteNV(commandBuffer,firstViewport,viewportCount,pShadingRatePalettes);
end;
procedure TVulkan.CmdSetCoarseSampleOrderNV(commandBuffer:TVkCommandBuffer;sampleOrderType:TVkCoarseSampleOrderTypeNV;customSampleOrderCount:TVkUInt32;const pCustomSampleOrders:PVkCoarseSampleOrderCustomNV);
begin
fCommands.CmdSetCoarseSampleOrderNV(commandBuffer,sampleOrderType,customSampleOrderCount,pCustomSampleOrders);
end;
procedure TVulkan.CmdDrawMeshTasksNV(commandBuffer:TVkCommandBuffer;taskCount:TVkUInt32;firstTask:TVkUInt32);
begin
fCommands.CmdDrawMeshTasksNV(commandBuffer,taskCount,firstTask);
end;
procedure TVulkan.CmdDrawMeshTasksIndirectNV(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;drawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawMeshTasksIndirectNV(commandBuffer,buffer,offset,drawCount,stride);
end;
procedure TVulkan.CmdDrawMeshTasksIndirectCountNV(commandBuffer:TVkCommandBuffer;buffer:TVkBuffer;offset:TVkDeviceSize;countBuffer:TVkBuffer;countBufferOffset:TVkDeviceSize;maxDrawCount:TVkUInt32;stride:TVkUInt32);
begin
fCommands.CmdDrawMeshTasksIndirectCountNV(commandBuffer,buffer,offset,countBuffer,countBufferOffset,maxDrawCount,stride);
end;
function TVulkan.CompileDeferredNV(device:TVkDevice;pipeline:TVkPipeline;shader:TVkUInt32):TVkResult;
begin
result:=fCommands.CompileDeferredNV(device,pipeline,shader);
end;
function TVulkan.CreateAccelerationStructureNV(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureNV):TVkResult;
begin
result:=fCommands.CreateAccelerationStructureNV(device,pCreateInfo,pAllocator,pAccelerationStructure);
end;
procedure TVulkan.CmdBindInvocationMaskHUAWEI(commandBuffer:TVkCommandBuffer;imageView:TVkImageView;imageLayout:TVkImageLayout);
begin
fCommands.CmdBindInvocationMaskHUAWEI(commandBuffer,imageView,imageLayout);
end;
procedure TVulkan.DestroyAccelerationStructureKHR(device:TVkDevice;accelerationStructure:TVkAccelerationStructureKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyAccelerationStructureKHR(device,accelerationStructure,pAllocator);
end;
procedure TVulkan.DestroyAccelerationStructureNV(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyAccelerationStructureNV(device,accelerationStructure,pAllocator);
end;
procedure TVulkan.GetAccelerationStructureMemoryRequirementsNV(device:TVkDevice;const pInfo:PVkAccelerationStructureMemoryRequirementsInfoNV;pMemoryRequirements:PVkMemoryRequirements2KHR);
begin
fCommands.GetAccelerationStructureMemoryRequirementsNV(device,pInfo,pMemoryRequirements);
end;
function TVulkan.BindAccelerationStructureMemoryNV(device:TVkDevice;bindInfoCount:TVkUInt32;const pBindInfos:PVkBindAccelerationStructureMemoryInfoNV):TVkResult;
begin
result:=fCommands.BindAccelerationStructureMemoryNV(device,bindInfoCount,pBindInfos);
end;
procedure TVulkan.CmdCopyAccelerationStructureNV(commandBuffer:TVkCommandBuffer;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;mode:TVkCopyAccelerationStructureModeKHR);
begin
fCommands.CmdCopyAccelerationStructureNV(commandBuffer,dst,src,mode);
end;
procedure TVulkan.CmdCopyAccelerationStructureKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureInfoKHR);
begin
fCommands.CmdCopyAccelerationStructureKHR(commandBuffer,pInfo);
end;
function TVulkan.CopyAccelerationStructureKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureInfoKHR):TVkResult;
begin
result:=fCommands.CopyAccelerationStructureKHR(device,deferredOperation,pInfo);
end;
procedure TVulkan.CmdCopyAccelerationStructureToMemoryKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR);
begin
fCommands.CmdCopyAccelerationStructureToMemoryKHR(commandBuffer,pInfo);
end;
function TVulkan.CopyAccelerationStructureToMemoryKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyAccelerationStructureToMemoryInfoKHR):TVkResult;
begin
result:=fCommands.CopyAccelerationStructureToMemoryKHR(device,deferredOperation,pInfo);
end;
procedure TVulkan.CmdCopyMemoryToAccelerationStructureKHR(commandBuffer:TVkCommandBuffer;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR);
begin
fCommands.CmdCopyMemoryToAccelerationStructureKHR(commandBuffer,pInfo);
end;
function TVulkan.CopyMemoryToAccelerationStructureKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;const pInfo:PVkCopyMemoryToAccelerationStructureInfoKHR):TVkResult;
begin
result:=fCommands.CopyMemoryToAccelerationStructureKHR(device,deferredOperation,pInfo);
end;
procedure TVulkan.CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32);
begin
fCommands.CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer,accelerationStructureCount,pAccelerationStructures,queryType,queryPool,firstQuery);
end;
procedure TVulkan.CmdWriteAccelerationStructuresPropertiesNV(commandBuffer:TVkCommandBuffer;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureNV;queryType:TVkQueryType;queryPool:TVkQueryPool;firstQuery:TVkUInt32);
begin
fCommands.CmdWriteAccelerationStructuresPropertiesNV(commandBuffer,accelerationStructureCount,pAccelerationStructures,queryType,queryPool,firstQuery);
end;
procedure TVulkan.CmdBuildAccelerationStructureNV(commandBuffer:TVkCommandBuffer;const pInfo:PVkAccelerationStructureInfoNV;instanceData:TVkBuffer;instanceOffset:TVkDeviceSize;update:TVkBool32;dst:TVkAccelerationStructureNV;src:TVkAccelerationStructureNV;scratch:TVkBuffer;scratchOffset:TVkDeviceSize);
begin
fCommands.CmdBuildAccelerationStructureNV(commandBuffer,pInfo,instanceData,instanceOffset,update,dst,src,scratch,scratchOffset);
end;
function TVulkan.WriteAccelerationStructuresPropertiesKHR(device:TVkDevice;accelerationStructureCount:TVkUInt32;const pAccelerationStructures:PVkAccelerationStructureKHR;queryType:TVkQueryType;dataSize:TVkSize;pData:PVkVoid;stride:TVkSize):TVkResult;
begin
result:=fCommands.WriteAccelerationStructuresPropertiesKHR(device,accelerationStructureCount,pAccelerationStructures,queryType,dataSize,pData,stride);
end;
procedure TVulkan.CmdTraceRaysKHR(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32);
begin
fCommands.CmdTraceRaysKHR(commandBuffer,pRaygenShaderBindingTable,pMissShaderBindingTable,pHitShaderBindingTable,pCallableShaderBindingTable,width,height,depth);
end;
procedure TVulkan.CmdTraceRaysNV(commandBuffer:TVkCommandBuffer;raygenShaderBindingTableBuffer:TVkBuffer;raygenShaderBindingOffset:TVkDeviceSize;missShaderBindingTableBuffer:TVkBuffer;missShaderBindingOffset:TVkDeviceSize;missShaderBindingStride:TVkDeviceSize;hitShaderBindingTableBuffer:TVkBuffer;hitShaderBindingOffset:TVkDeviceSize;hitShaderBindingStride:TVkDeviceSize;callableShaderBindingTableBuffer:TVkBuffer;callableShaderBindingOffset:TVkDeviceSize;callableShaderBindingStride:TVkDeviceSize;width:TVkUInt32;height:TVkUInt32;depth:TVkUInt32);
begin
fCommands.CmdTraceRaysNV(commandBuffer,raygenShaderBindingTableBuffer,raygenShaderBindingOffset,missShaderBindingTableBuffer,missShaderBindingOffset,missShaderBindingStride,hitShaderBindingTableBuffer,hitShaderBindingOffset,hitShaderBindingStride,callableShaderBindingTableBuffer,callableShaderBindingOffset,callableShaderBindingStride,width,height,depth);
end;
function TVulkan.GetRayTracingShaderGroupHandlesKHR(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetRayTracingShaderGroupHandlesKHR(device,pipeline,firstGroup,groupCount,dataSize,pData);
end;
function TVulkan.GetRayTracingShaderGroupHandlesNV(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetRayTracingShaderGroupHandlesNV(device,pipeline,firstGroup,groupCount,dataSize,pData);
end;
function TVulkan.GetRayTracingCaptureReplayShaderGroupHandlesKHR(device:TVkDevice;pipeline:TVkPipeline;firstGroup:TVkUInt32;groupCount:TVkUInt32;dataSize:TVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetRayTracingCaptureReplayShaderGroupHandlesKHR(device,pipeline,firstGroup,groupCount,dataSize,pData);
end;
function TVulkan.GetAccelerationStructureHandleNV(device:TVkDevice;accelerationStructure:TVkAccelerationStructureNV;dataSize:TVkSize;pData:PVkVoid):TVkResult;
begin
result:=fCommands.GetAccelerationStructureHandleNV(device,accelerationStructure,dataSize,pData);
end;
function TVulkan.CreateRayTracingPipelinesNV(device:TVkDevice;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoNV;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult;
begin
result:=fCommands.CreateRayTracingPipelinesNV(device,pipelineCache,createInfoCount,pCreateInfos,pAllocator,pPipelines);
end;
function TVulkan.CreateRayTracingPipelinesKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;pipelineCache:TVkPipelineCache;createInfoCount:TVkUInt32;const pCreateInfos:PVkRayTracingPipelineCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pPipelines:PVkPipeline):TVkResult;
begin
result:=fCommands.CreateRayTracingPipelinesKHR(device,deferredOperation,pipelineCache,createInfoCount,pCreateInfos,pAllocator,pPipelines);
end;
function TVulkan.GetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice:TVkPhysicalDevice;pPropertyCount:PVkUInt32;pProperties:PVkCooperativeMatrixPropertiesNV):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice,pPropertyCount,pProperties);
end;
procedure TVulkan.CmdTraceRaysIndirectKHR(commandBuffer:TVkCommandBuffer;const pRaygenShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pMissShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pHitShaderBindingTable:PVkStridedDeviceAddressRegionKHR;const pCallableShaderBindingTable:PVkStridedDeviceAddressRegionKHR;indirectDeviceAddress:TVkDeviceAddress);
begin
fCommands.CmdTraceRaysIndirectKHR(commandBuffer,pRaygenShaderBindingTable,pMissShaderBindingTable,pHitShaderBindingTable,pCallableShaderBindingTable,indirectDeviceAddress);
end;
procedure TVulkan.GetDeviceAccelerationStructureCompatibilityKHR(device:TVkDevice;const pVersionInfo:PVkAccelerationStructureVersionInfoKHR;pCompatibility:PVkAccelerationStructureCompatibilityKHR);
begin
fCommands.GetDeviceAccelerationStructureCompatibilityKHR(device,pVersionInfo,pCompatibility);
end;
function TVulkan.GetRayTracingShaderGroupStackSizeKHR(device:TVkDevice;pipeline:TVkPipeline;group:TVkUInt32;groupShader:TVkShaderGroupShaderKHR):TVkDeviceSize;
begin
result:=fCommands.GetRayTracingShaderGroupStackSizeKHR(device,pipeline,group,groupShader);
end;
procedure TVulkan.CmdSetRayTracingPipelineStackSizeKHR(commandBuffer:TVkCommandBuffer;pipelineStackSize:TVkUInt32);
begin
fCommands.CmdSetRayTracingPipelineStackSizeKHR(commandBuffer,pipelineStackSize);
end;
function TVulkan.GetImageViewHandleNVX(device:TVkDevice;const pInfo:PVkImageViewHandleInfoNVX):TVkUInt32;
begin
result:=fCommands.GetImageViewHandleNVX(device,pInfo);
end;
function TVulkan.GetImageViewAddressNVX(device:TVkDevice;imageView:TVkImageView;pProperties:PVkImageViewAddressPropertiesNVX):TVkResult;
begin
result:=fCommands.GetImageViewAddressNVX(device,imageView,pProperties);
end;
function TVulkan.GetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice:TVkPhysicalDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pPresentModeCount:PVkUInt32;pPresentModes:PVkPresentModeKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice,pSurfaceInfo,pPresentModeCount,pPresentModes);
end;
function TVulkan.GetDeviceGroupSurfacePresentModes2EXT(device:TVkDevice;const pSurfaceInfo:PVkPhysicalDeviceSurfaceInfo2KHR;pModes:PVkDeviceGroupPresentModeFlagsKHR):TVkResult;
begin
result:=fCommands.GetDeviceGroupSurfacePresentModes2EXT(device,pSurfaceInfo,pModes);
end;
function TVulkan.AcquireFullScreenExclusiveModeEXT(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult;
begin
result:=fCommands.AcquireFullScreenExclusiveModeEXT(device,swapchain);
end;
function TVulkan.ReleaseFullScreenExclusiveModeEXT(device:TVkDevice;swapchain:TVkSwapchainKHR):TVkResult;
begin
result:=fCommands.ReleaseFullScreenExclusiveModeEXT(device,swapchain);
end;
function TVulkan.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice:TVkPhysicalDevice;queueFamilyIndex:TVkUInt32;pCounterCount:PVkUInt32;pCounters:PVkPerformanceCounterKHR;pCounterDescriptions:PVkPerformanceCounterDescriptionKHR):TVkResult;
begin
result:=fCommands.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice,queueFamilyIndex,pCounterCount,pCounters,pCounterDescriptions);
end;
procedure TVulkan.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice:TVkPhysicalDevice;const pPerformanceQueryCreateInfo:PVkQueryPoolPerformanceCreateInfoKHR;pNumPasses:PVkUInt32);
begin
fCommands.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice,pPerformanceQueryCreateInfo,pNumPasses);
end;
function TVulkan.AcquireProfilingLockKHR(device:TVkDevice;const pInfo:PVkAcquireProfilingLockInfoKHR):TVkResult;
begin
result:=fCommands.AcquireProfilingLockKHR(device,pInfo);
end;
procedure TVulkan.ReleaseProfilingLockKHR(device:TVkDevice);
begin
fCommands.ReleaseProfilingLockKHR(device);
end;
function TVulkan.GetImageDrmFormatModifierPropertiesEXT(device:TVkDevice;image:TVkImage;pProperties:PVkImageDrmFormatModifierPropertiesEXT):TVkResult;
begin
result:=fCommands.GetImageDrmFormatModifierPropertiesEXT(device,image,pProperties);
end;
function TVulkan.GetBufferOpaqueCaptureAddress(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64;
begin
result:=fCommands.GetBufferOpaqueCaptureAddress(device,pInfo);
end;
function TVulkan.GetBufferOpaqueCaptureAddressKHR(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkUInt64;
begin
result:=fCommands.GetBufferOpaqueCaptureAddressKHR(device,pInfo);
end;
function TVulkan.GetBufferDeviceAddress(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress;
begin
result:=fCommands.GetBufferDeviceAddress(device,pInfo);
end;
function TVulkan.GetBufferDeviceAddressKHR(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress;
begin
result:=fCommands.GetBufferDeviceAddressKHR(device,pInfo);
end;
function TVulkan.GetBufferDeviceAddressEXT(device:TVkDevice;const pInfo:PVkBufferDeviceAddressInfo):TVkDeviceAddress;
begin
result:=fCommands.GetBufferDeviceAddressEXT(device,pInfo);
end;
function TVulkan.CreateHeadlessSurfaceEXT(instance:TVkInstance;const pCreateInfo:PVkHeadlessSurfaceCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pSurface:PVkSurfaceKHR):TVkResult;
begin
result:=fCommands.CreateHeadlessSurfaceEXT(instance,pCreateInfo,pAllocator,pSurface);
end;
function TVulkan.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice:TVkPhysicalDevice;pCombinationCount:PVkUInt32;pCombinations:PVkFramebufferMixedSamplesCombinationNV):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice,pCombinationCount,pCombinations);
end;
function TVulkan.InitializePerformanceApiINTEL(device:TVkDevice;const pInitializeInfo:PVkInitializePerformanceApiInfoINTEL):TVkResult;
begin
result:=fCommands.InitializePerformanceApiINTEL(device,pInitializeInfo);
end;
procedure TVulkan.UninitializePerformanceApiINTEL(device:TVkDevice);
begin
fCommands.UninitializePerformanceApiINTEL(device);
end;
function TVulkan.CmdSetPerformanceMarkerINTEL(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceMarkerInfoINTEL):TVkResult;
begin
result:=fCommands.CmdSetPerformanceMarkerINTEL(commandBuffer,pMarkerInfo);
end;
function TVulkan.CmdSetPerformanceStreamMarkerINTEL(commandBuffer:TVkCommandBuffer;const pMarkerInfo:PVkPerformanceStreamMarkerInfoINTEL):TVkResult;
begin
result:=fCommands.CmdSetPerformanceStreamMarkerINTEL(commandBuffer,pMarkerInfo);
end;
function TVulkan.CmdSetPerformanceOverrideINTEL(commandBuffer:TVkCommandBuffer;const pOverrideInfo:PVkPerformanceOverrideInfoINTEL):TVkResult;
begin
result:=fCommands.CmdSetPerformanceOverrideINTEL(commandBuffer,pOverrideInfo);
end;
function TVulkan.AcquirePerformanceConfigurationINTEL(device:TVkDevice;const pAcquireInfo:PVkPerformanceConfigurationAcquireInfoINTEL;pConfiguration:PVkPerformanceConfigurationINTEL):TVkResult;
begin
result:=fCommands.AcquirePerformanceConfigurationINTEL(device,pAcquireInfo,pConfiguration);
end;
function TVulkan.ReleasePerformanceConfigurationINTEL(device:TVkDevice;configuration:TVkPerformanceConfigurationINTEL):TVkResult;
begin
result:=fCommands.ReleasePerformanceConfigurationINTEL(device,configuration);
end;
function TVulkan.QueueSetPerformanceConfigurationINTEL(queue:TVkQueue;configuration:TVkPerformanceConfigurationINTEL):TVkResult;
begin
result:=fCommands.QueueSetPerformanceConfigurationINTEL(queue,configuration);
end;
function TVulkan.GetPerformanceParameterINTEL(device:TVkDevice;parameter:TVkPerformanceParameterTypeINTEL;pValue:PVkPerformanceValueINTEL):TVkResult;
begin
result:=fCommands.GetPerformanceParameterINTEL(device,parameter,pValue);
end;
function TVulkan.GetDeviceMemoryOpaqueCaptureAddress(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64;
begin
result:=fCommands.GetDeviceMemoryOpaqueCaptureAddress(device,pInfo);
end;
function TVulkan.GetDeviceMemoryOpaqueCaptureAddressKHR(device:TVkDevice;const pInfo:PVkDeviceMemoryOpaqueCaptureAddressInfo):TVkUInt64;
begin
result:=fCommands.GetDeviceMemoryOpaqueCaptureAddressKHR(device,pInfo);
end;
function TVulkan.GetPipelineExecutablePropertiesKHR(device:TVkDevice;const pPipelineInfo:PVkPipelineInfoKHR;pExecutableCount:PVkUInt32;pProperties:PVkPipelineExecutablePropertiesKHR):TVkResult;
begin
result:=fCommands.GetPipelineExecutablePropertiesKHR(device,pPipelineInfo,pExecutableCount,pProperties);
end;
function TVulkan.GetPipelineExecutableStatisticsKHR(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pStatisticCount:PVkUInt32;pStatistics:PVkPipelineExecutableStatisticKHR):TVkResult;
begin
result:=fCommands.GetPipelineExecutableStatisticsKHR(device,pExecutableInfo,pStatisticCount,pStatistics);
end;
function TVulkan.GetPipelineExecutableInternalRepresentationsKHR(device:TVkDevice;const pExecutableInfo:PVkPipelineExecutableInfoKHR;pInternalRepresentationCount:PVkUInt32;pInternalRepresentations:PVkPipelineExecutableInternalRepresentationKHR):TVkResult;
begin
result:=fCommands.GetPipelineExecutableInternalRepresentationsKHR(device,pExecutableInfo,pInternalRepresentationCount,pInternalRepresentations);
end;
procedure TVulkan.CmdSetLineStippleEXT(commandBuffer:TVkCommandBuffer;lineStippleFactor:TVkUInt32;lineStipplePattern:TVkUInt16);
begin
fCommands.CmdSetLineStippleEXT(commandBuffer,lineStippleFactor,lineStipplePattern);
end;
function TVulkan.GetPhysicalDeviceToolPropertiesEXT(physicalDevice:TVkPhysicalDevice;pToolCount:PVkUInt32;pToolProperties:PVkPhysicalDeviceToolPropertiesEXT):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceToolPropertiesEXT(physicalDevice,pToolCount,pToolProperties);
end;
function TVulkan.CreateAccelerationStructureKHR(device:TVkDevice;const pCreateInfo:PVkAccelerationStructureCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pAccelerationStructure:PVkAccelerationStructureKHR):TVkResult;
begin
result:=fCommands.CreateAccelerationStructureKHR(device,pCreateInfo,pAllocator,pAccelerationStructure);
end;
procedure TVulkan.CmdBuildAccelerationStructuresKHR(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR);
begin
fCommands.CmdBuildAccelerationStructuresKHR(commandBuffer,infoCount,pInfos,ppBuildRangeInfos);
end;
procedure TVulkan.CmdBuildAccelerationStructuresIndirectKHR(commandBuffer:TVkCommandBuffer;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const pIndirectDeviceAddresses:PVkDeviceAddress;const pIndirectStrides:PVkUInt32;const ppMaxPrimitiveCounts:PPVkUInt32);
begin
fCommands.CmdBuildAccelerationStructuresIndirectKHR(commandBuffer,infoCount,pInfos,pIndirectDeviceAddresses,pIndirectStrides,ppMaxPrimitiveCounts);
end;
function TVulkan.BuildAccelerationStructuresKHR(device:TVkDevice;deferredOperation:TVkDeferredOperationKHR;infoCount:TVkUInt32;const pInfos:PVkAccelerationStructureBuildGeometryInfoKHR;const ppBuildRangeInfos:PPVkAccelerationStructureBuildRangeInfoKHR):TVkResult;
begin
result:=fCommands.BuildAccelerationStructuresKHR(device,deferredOperation,infoCount,pInfos,ppBuildRangeInfos);
end;
function TVulkan.GetAccelerationStructureDeviceAddressKHR(device:TVkDevice;const pInfo:PVkAccelerationStructureDeviceAddressInfoKHR):TVkDeviceAddress;
begin
result:=fCommands.GetAccelerationStructureDeviceAddressKHR(device,pInfo);
end;
function TVulkan.CreateDeferredOperationKHR(device:TVkDevice;const pAllocator:PVkAllocationCallbacks;pDeferredOperation:PVkDeferredOperationKHR):TVkResult;
begin
result:=fCommands.CreateDeferredOperationKHR(device,pAllocator,pDeferredOperation);
end;
procedure TVulkan.DestroyDeferredOperationKHR(device:TVkDevice;operation:TVkDeferredOperationKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyDeferredOperationKHR(device,operation,pAllocator);
end;
function TVulkan.GetDeferredOperationMaxConcurrencyKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkUInt32;
begin
result:=fCommands.GetDeferredOperationMaxConcurrencyKHR(device,operation);
end;
function TVulkan.GetDeferredOperationResultKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult;
begin
result:=fCommands.GetDeferredOperationResultKHR(device,operation);
end;
function TVulkan.DeferredOperationJoinKHR(device:TVkDevice;operation:TVkDeferredOperationKHR):TVkResult;
begin
result:=fCommands.DeferredOperationJoinKHR(device,operation);
end;
procedure TVulkan.CmdSetCullModeEXT(commandBuffer:TVkCommandBuffer;cullMode:TVkCullModeFlags);
begin
fCommands.CmdSetCullModeEXT(commandBuffer,cullMode);
end;
procedure TVulkan.CmdSetFrontFaceEXT(commandBuffer:TVkCommandBuffer;frontFace:TVkFrontFace);
begin
fCommands.CmdSetFrontFaceEXT(commandBuffer,frontFace);
end;
procedure TVulkan.CmdSetPrimitiveTopologyEXT(commandBuffer:TVkCommandBuffer;primitiveTopology:TVkPrimitiveTopology);
begin
fCommands.CmdSetPrimitiveTopologyEXT(commandBuffer,primitiveTopology);
end;
procedure TVulkan.CmdSetViewportWithCountEXT(commandBuffer:TVkCommandBuffer;viewportCount:TVkUInt32;const pViewports:PVkViewport);
begin
fCommands.CmdSetViewportWithCountEXT(commandBuffer,viewportCount,pViewports);
end;
procedure TVulkan.CmdSetScissorWithCountEXT(commandBuffer:TVkCommandBuffer;scissorCount:TVkUInt32;const pScissors:PVkRect2D);
begin
fCommands.CmdSetScissorWithCountEXT(commandBuffer,scissorCount,pScissors);
end;
procedure TVulkan.CmdBindVertexBuffers2EXT(commandBuffer:TVkCommandBuffer;firstBinding:TVkUInt32;bindingCount:TVkUInt32;const pBuffers:PVkBuffer;const pOffsets:PVkDeviceSize;const pSizes:PVkDeviceSize;const pStrides:PVkDeviceSize);
begin
fCommands.CmdBindVertexBuffers2EXT(commandBuffer,firstBinding,bindingCount,pBuffers,pOffsets,pSizes,pStrides);
end;
procedure TVulkan.CmdSetDepthTestEnableEXT(commandBuffer:TVkCommandBuffer;depthTestEnable:TVkBool32);
begin
fCommands.CmdSetDepthTestEnableEXT(commandBuffer,depthTestEnable);
end;
procedure TVulkan.CmdSetDepthWriteEnableEXT(commandBuffer:TVkCommandBuffer;depthWriteEnable:TVkBool32);
begin
fCommands.CmdSetDepthWriteEnableEXT(commandBuffer,depthWriteEnable);
end;
procedure TVulkan.CmdSetDepthCompareOpEXT(commandBuffer:TVkCommandBuffer;depthCompareOp:TVkCompareOp);
begin
fCommands.CmdSetDepthCompareOpEXT(commandBuffer,depthCompareOp);
end;
procedure TVulkan.CmdSetDepthBoundsTestEnableEXT(commandBuffer:TVkCommandBuffer;depthBoundsTestEnable:TVkBool32);
begin
fCommands.CmdSetDepthBoundsTestEnableEXT(commandBuffer,depthBoundsTestEnable);
end;
procedure TVulkan.CmdSetStencilTestEnableEXT(commandBuffer:TVkCommandBuffer;stencilTestEnable:TVkBool32);
begin
fCommands.CmdSetStencilTestEnableEXT(commandBuffer,stencilTestEnable);
end;
procedure TVulkan.CmdSetStencilOpEXT(commandBuffer:TVkCommandBuffer;faceMask:TVkStencilFaceFlags;failOp:TVkStencilOp;passOp:TVkStencilOp;depthFailOp:TVkStencilOp;compareOp:TVkCompareOp);
begin
fCommands.CmdSetStencilOpEXT(commandBuffer,faceMask,failOp,passOp,depthFailOp,compareOp);
end;
procedure TVulkan.CmdSetPatchControlPointsEXT(commandBuffer:TVkCommandBuffer;patchControlPoints:TVkUInt32);
begin
fCommands.CmdSetPatchControlPointsEXT(commandBuffer,patchControlPoints);
end;
procedure TVulkan.CmdSetRasterizerDiscardEnableEXT(commandBuffer:TVkCommandBuffer;rasterizerDiscardEnable:TVkBool32);
begin
fCommands.CmdSetRasterizerDiscardEnableEXT(commandBuffer,rasterizerDiscardEnable);
end;
procedure TVulkan.CmdSetDepthBiasEnableEXT(commandBuffer:TVkCommandBuffer;depthBiasEnable:TVkBool32);
begin
fCommands.CmdSetDepthBiasEnableEXT(commandBuffer,depthBiasEnable);
end;
procedure TVulkan.CmdSetLogicOpEXT(commandBuffer:TVkCommandBuffer;logicOp:TVkLogicOp);
begin
fCommands.CmdSetLogicOpEXT(commandBuffer,logicOp);
end;
procedure TVulkan.CmdSetPrimitiveRestartEnableEXT(commandBuffer:TVkCommandBuffer;primitiveRestartEnable:TVkBool32);
begin
fCommands.CmdSetPrimitiveRestartEnableEXT(commandBuffer,primitiveRestartEnable);
end;
function TVulkan.CreatePrivateDataSlotEXT(device:TVkDevice;const pCreateInfo:PVkPrivateDataSlotCreateInfoEXT;const pAllocator:PVkAllocationCallbacks;pPrivateDataSlot:PVkPrivateDataSlotEXT):TVkResult;
begin
result:=fCommands.CreatePrivateDataSlotEXT(device,pCreateInfo,pAllocator,pPrivateDataSlot);
end;
procedure TVulkan.DestroyPrivateDataSlotEXT(device:TVkDevice;privateDataSlot:TVkPrivateDataSlotEXT;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyPrivateDataSlotEXT(device,privateDataSlot,pAllocator);
end;
function TVulkan.SetPrivateDataEXT(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;data:TVkUInt64):TVkResult;
begin
result:=fCommands.SetPrivateDataEXT(device,objectType,objectHandle,privateDataSlot,data);
end;
procedure TVulkan.GetPrivateDataEXT(device:TVkDevice;objectType:TVkObjectType;objectHandle:TVkUInt64;privateDataSlot:TVkPrivateDataSlotEXT;pData:PVkUInt64);
begin
fCommands.GetPrivateDataEXT(device,objectType,objectHandle,privateDataSlot,pData);
end;
procedure TVulkan.CmdCopyBuffer2KHR(commandBuffer:TVkCommandBuffer;const pCopyBufferInfo:PVkCopyBufferInfo2KHR);
begin
fCommands.CmdCopyBuffer2KHR(commandBuffer,pCopyBufferInfo);
end;
procedure TVulkan.CmdCopyImage2KHR(commandBuffer:TVkCommandBuffer;const pCopyImageInfo:PVkCopyImageInfo2KHR);
begin
fCommands.CmdCopyImage2KHR(commandBuffer,pCopyImageInfo);
end;
procedure TVulkan.CmdBlitImage2KHR(commandBuffer:TVkCommandBuffer;const pBlitImageInfo:PVkBlitImageInfo2KHR);
begin
fCommands.CmdBlitImage2KHR(commandBuffer,pBlitImageInfo);
end;
procedure TVulkan.CmdCopyBufferToImage2KHR(commandBuffer:TVkCommandBuffer;const pCopyBufferToImageInfo:PVkCopyBufferToImageInfo2KHR);
begin
fCommands.CmdCopyBufferToImage2KHR(commandBuffer,pCopyBufferToImageInfo);
end;
procedure TVulkan.CmdCopyImageToBuffer2KHR(commandBuffer:TVkCommandBuffer;const pCopyImageToBufferInfo:PVkCopyImageToBufferInfo2KHR);
begin
fCommands.CmdCopyImageToBuffer2KHR(commandBuffer,pCopyImageToBufferInfo);
end;
procedure TVulkan.CmdResolveImage2KHR(commandBuffer:TVkCommandBuffer;const pResolveImageInfo:PVkResolveImageInfo2KHR);
begin
fCommands.CmdResolveImage2KHR(commandBuffer,pResolveImageInfo);
end;
procedure TVulkan.CmdSetFragmentShadingRateKHR(commandBuffer:TVkCommandBuffer;const pFragmentSize:PVkExtent2D;const combinerOps:TVkFragmentShadingRateCombinerOpKHR);
begin
fCommands.CmdSetFragmentShadingRateKHR(commandBuffer,pFragmentSize,combinerOps);
end;
function TVulkan.GetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice:TVkPhysicalDevice;pFragmentShadingRateCount:PVkUInt32;pFragmentShadingRates:PVkPhysicalDeviceFragmentShadingRateKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice,pFragmentShadingRateCount,pFragmentShadingRates);
end;
procedure TVulkan.CmdSetFragmentShadingRateEnumNV(commandBuffer:TVkCommandBuffer;shadingRate:TVkFragmentShadingRateNV;const combinerOps:TVkFragmentShadingRateCombinerOpKHR);
begin
fCommands.CmdSetFragmentShadingRateEnumNV(commandBuffer,shadingRate,combinerOps);
end;
procedure TVulkan.GetAccelerationStructureBuildSizesKHR(device:TVkDevice;buildType:TVkAccelerationStructureBuildTypeKHR;const pBuildInfo:PVkAccelerationStructureBuildGeometryInfoKHR;const pMaxPrimitiveCounts:PVkUInt32;pSizeInfo:PVkAccelerationStructureBuildSizesInfoKHR);
begin
fCommands.GetAccelerationStructureBuildSizesKHR(device,buildType,pBuildInfo,pMaxPrimitiveCounts,pSizeInfo);
end;
procedure TVulkan.CmdSetVertexInputEXT(commandBuffer:TVkCommandBuffer;vertexBindingDescriptionCount:TVkUInt32;const pVertexBindingDescriptions:PVkVertexInputBindingDescription2EXT;vertexAttributeDescriptionCount:TVkUInt32;const pVertexAttributeDescriptions:PVkVertexInputAttributeDescription2EXT);
begin
fCommands.CmdSetVertexInputEXT(commandBuffer,vertexBindingDescriptionCount,pVertexBindingDescriptions,vertexAttributeDescriptionCount,pVertexAttributeDescriptions);
end;
procedure TVulkan.CmdSetColorWriteEnableEXT(commandBuffer:TVkCommandBuffer;attachmentCount:TVkUInt32;const pColorWriteEnables:PVkBool32);
begin
fCommands.CmdSetColorWriteEnableEXT(commandBuffer,attachmentCount,pColorWriteEnables);
end;
procedure TVulkan.CmdSetEvent2KHR(commandBuffer:TVkCommandBuffer;event:TVkEvent;const pDependencyInfo:PVkDependencyInfoKHR);
begin
fCommands.CmdSetEvent2KHR(commandBuffer,event,pDependencyInfo);
end;
procedure TVulkan.CmdResetEvent2KHR(commandBuffer:TVkCommandBuffer;event:TVkEvent;stageMask:TVkPipelineStageFlags2KHR);
begin
fCommands.CmdResetEvent2KHR(commandBuffer,event,stageMask);
end;
procedure TVulkan.CmdWaitEvents2KHR(commandBuffer:TVkCommandBuffer;eventCount:TVkUInt32;const pEvents:PVkEvent;const pDependencyInfos:PVkDependencyInfoKHR);
begin
fCommands.CmdWaitEvents2KHR(commandBuffer,eventCount,pEvents,pDependencyInfos);
end;
procedure TVulkan.CmdPipelineBarrier2KHR(commandBuffer:TVkCommandBuffer;const pDependencyInfo:PVkDependencyInfoKHR);
begin
fCommands.CmdPipelineBarrier2KHR(commandBuffer,pDependencyInfo);
end;
function TVulkan.QueueSubmit2KHR(queue:TVkQueue;submitCount:TVkUInt32;const pSubmits:PVkSubmitInfo2KHR;fence:TVkFence):TVkResult;
begin
result:=fCommands.QueueSubmit2KHR(queue,submitCount,pSubmits,fence);
end;
procedure TVulkan.CmdWriteTimestamp2KHR(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;queryPool:TVkQueryPool;query:TVkUInt32);
begin
fCommands.CmdWriteTimestamp2KHR(commandBuffer,stage,queryPool,query);
end;
procedure TVulkan.CmdWriteBufferMarker2AMD(commandBuffer:TVkCommandBuffer;stage:TVkPipelineStageFlags2KHR;dstBuffer:TVkBuffer;dstOffset:TVkDeviceSize;marker:TVkUInt32);
begin
fCommands.CmdWriteBufferMarker2AMD(commandBuffer,stage,dstBuffer,dstOffset,marker);
end;
procedure TVulkan.GetQueueCheckpointData2NV(queue:TVkQueue;pCheckpointDataCount:PVkUInt32;pCheckpointData:PVkCheckpointData2NV);
begin
fCommands.GetQueueCheckpointData2NV(queue,pCheckpointDataCount,pCheckpointData);
end;
{$ifdef VkVideo}
function TVulkan.GetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice:TVkPhysicalDevice;const pVideoProfile:PVkVideoProfileKHR;pCapabilities:PVkVideoCapabilitiesKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice,pVideoProfile,pCapabilities);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.GetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice:TVkPhysicalDevice;const pVideoFormatInfo:PVkPhysicalDeviceVideoFormatInfoKHR;pVideoFormatPropertyCount:PVkUInt32;pVideoFormatProperties:PVkVideoFormatPropertiesKHR):TVkResult;
begin
result:=fCommands.GetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice,pVideoFormatInfo,pVideoFormatPropertyCount,pVideoFormatProperties);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.CreateVideoSessionKHR(device:TVkDevice;const pCreateInfo:PVkVideoSessionCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSession:PVkVideoSessionKHR):TVkResult;
begin
result:=fCommands.CreateVideoSessionKHR(device,pCreateInfo,pAllocator,pVideoSession);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.DestroyVideoSessionKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyVideoSessionKHR(device,videoSession,pAllocator);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.CreateVideoSessionParametersKHR(device:TVkDevice;const pCreateInfo:PVkVideoSessionParametersCreateInfoKHR;const pAllocator:PVkAllocationCallbacks;pVideoSessionParameters:PVkVideoSessionParametersKHR):TVkResult;
begin
result:=fCommands.CreateVideoSessionParametersKHR(device,pCreateInfo,pAllocator,pVideoSessionParameters);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.UpdateVideoSessionParametersKHR(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pUpdateInfo:PVkVideoSessionParametersUpdateInfoKHR):TVkResult;
begin
result:=fCommands.UpdateVideoSessionParametersKHR(device,videoSessionParameters,pUpdateInfo);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.DestroyVideoSessionParametersKHR(device:TVkDevice;videoSessionParameters:TVkVideoSessionParametersKHR;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyVideoSessionParametersKHR(device,videoSessionParameters,pAllocator);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.GetVideoSessionMemoryRequirementsKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;pVideoSessionMemoryRequirementsCount:PVkUInt32;pVideoSessionMemoryRequirements:PVkVideoGetMemoryPropertiesKHR):TVkResult;
begin
result:=fCommands.GetVideoSessionMemoryRequirementsKHR(device,videoSession,pVideoSessionMemoryRequirementsCount,pVideoSessionMemoryRequirements);
end;
{$endif}
{$ifdef VkVideo}
function TVulkan.BindVideoSessionMemoryKHR(device:TVkDevice;videoSession:TVkVideoSessionKHR;videoSessionBindMemoryCount:TVkUInt32;const pVideoSessionBindMemories:PVkVideoBindMemoryKHR):TVkResult;
begin
result:=fCommands.BindVideoSessionMemoryKHR(device,videoSession,videoSessionBindMemoryCount,pVideoSessionBindMemories);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.CmdDecodeVideoKHR(commandBuffer:TVkCommandBuffer;const pFrameInfo:PVkVideoDecodeInfoKHR);
begin
fCommands.CmdDecodeVideoKHR(commandBuffer,pFrameInfo);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.CmdBeginVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pBeginInfo:PVkVideoBeginCodingInfoKHR);
begin
fCommands.CmdBeginVideoCodingKHR(commandBuffer,pBeginInfo);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.CmdControlVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pCodingControlInfo:PVkVideoCodingControlInfoKHR);
begin
fCommands.CmdControlVideoCodingKHR(commandBuffer,pCodingControlInfo);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.CmdEndVideoCodingKHR(commandBuffer:TVkCommandBuffer;const pEndCodingInfo:PVkVideoEndCodingInfoKHR);
begin
fCommands.CmdEndVideoCodingKHR(commandBuffer,pEndCodingInfo);
end;
{$endif}
{$ifdef VkVideo}
procedure TVulkan.CmdEncodeVideoKHR(commandBuffer:TVkCommandBuffer;const pEncodeInfo:PVkVideoEncodeInfoKHR);
begin
fCommands.CmdEncodeVideoKHR(commandBuffer,pEncodeInfo);
end;
{$endif}
function TVulkan.CreateCuModuleNVX(device:TVkDevice;const pCreateInfo:PVkCuModuleCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pModule:PVkCuModuleNVX):TVkResult;
begin
result:=fCommands.CreateCuModuleNVX(device,pCreateInfo,pAllocator,pModule);
end;
function TVulkan.CreateCuFunctionNVX(device:TVkDevice;const pCreateInfo:PVkCuFunctionCreateInfoNVX;const pAllocator:PVkAllocationCallbacks;pFunction:PVkCuFunctionNVX):TVkResult;
begin
result:=fCommands.CreateCuFunctionNVX(device,pCreateInfo,pAllocator,pFunction);
end;
procedure TVulkan.DestroyCuModuleNVX(device:TVkDevice;module:TVkCuModuleNVX;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyCuModuleNVX(device,module,pAllocator);
end;
procedure TVulkan.DestroyCuFunctionNVX(device:TVkDevice;function_:TVkCuFunctionNVX;const pAllocator:PVkAllocationCallbacks);
begin
fCommands.DestroyCuFunctionNVX(device,function_,pAllocator);
end;
procedure TVulkan.CmdCuLaunchKernelNVX(commandBuffer:TVkCommandBuffer;const pLaunchInfo:PVkCuLaunchInfoNVX);
begin
fCommands.CmdCuLaunchKernelNVX(commandBuffer,pLaunchInfo);
end;
function TVulkan.AcquireDrmDisplayEXT(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;display:TVkDisplayKHR):TVkResult;
begin
result:=fCommands.AcquireDrmDisplayEXT(physicalDevice,drmFd,display);
end;
function TVulkan.GetDrmDisplayEXT(physicalDevice:TVkPhysicalDevice;drmFd:TVkInt32;connectorId:TVkUInt32;display:PVkDisplayKHR):TVkResult;
begin
result:=fCommands.GetDrmDisplayEXT(physicalDevice,drmFd,connectorId,display);
end;
function TVulkan.WaitForPresentKHR(device:TVkDevice;swapchain:TVkSwapchainKHR;presentId:TVkUInt64;timeout:TVkUInt64):TVkResult;
begin
result:=fCommands.WaitForPresentKHR(device,swapchain,presentId,timeout);
end;
initialization
vk:=TVulkan.Create;
finalization
vk.Free;
if assigned(LibVulkan) then begin
vkFreeLibrary(LibVulkan);
end;
end.