(* ** 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 <> 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.