1 module vk 2 3 def acquire_next_image_khr "vkAcquireNextImageKHR" 4 (device : VkDevice 5 swapchain : VkSwapchain 6 timeout : u64 7 semaphore : VkSemaphore 8 fence : VkFence 9 image_index : mut ptr u32) : Result 10 11 def allocate_command_buffers "vkAllocateCommandBuffers" 12 (device : VkDevice 13 allocate_info : ptr CommandBufferAllocateInfo 14 command_buffers : mut ptr VkCommandBuffer) : Result 15 16 def allocate_descriptor_sets "vkAllocateDescriptorSets" 17 (device : VkDevice 18 allocate_info : ptr DescriptorSetAllocateInfo 19 descriptor_sets : mut ptr VkDescriptorSet) : Result 20 21 def allocate_memory "vkAllocateMemory" 22 (device : VkDevice 23 allocate_info : ptr MemoryAllocateInfo 24 allocator : Allocator 25 memory : mut ptr VkMemory) : Result 26 27 def begin_command_buffer "vkBeginCommandBuffer" 28 (command_buffer : VkCommandBuffer 29 begin_info : ptr CommandBufferBeginInfo) : Result 30 31 def bind_buffer_memory "vkBindBufferMemory" 32 (device : VkDevice 33 buffer : VkBuffer 34 memory : VkMemory 35 memory_offset : u64) : Result 36 37 def bind_image_memory "vkBindImageMemory" 38 (device : VkDevice 39 image : VkImage 40 memory : VkMemory 41 memory_offset : u64) : Result 42 43 def cmd_begin_render_pass "vkCmdBeginRenderPass" 44 (command_buffer : VkCommandBuffer 45 render_pass_begin : ptr RenderPassBeginInfo 46 contents : SubpassContents) 47 48 def cmd_bind_descriptor_sets "vkCmdBindDescriptorSets" 49 (command_buffer : VkCommandBuffer 50 pipeline_bind_point : PipelineBindPoint 51 layout : VkPipelineLayout 52 first_set : u32 53 descriptor_set_count : u32 54 descriptor_sets : ptr VkDescriptorSet 55 dynamic_offset_count : u32 56 dynamic_offsets : ptr u32) 57 58 def cmd_bind_index_buffer "vkCmdBindIndexBuffer" 59 (command_buffer : VkCommandBuffer 60 buffer : VkBuffer 61 offset : u64 62 index_type : IndexType) 63 64 def cmd_bind_pipeline "vkCmdBindPipeline" 65 (command_buffer : VkCommandBuffer 66 pipeline_bind_point : PipelineBindPoint 67 pipeline : VkPipeline) 68 69 def cmd_bind_vertex_buffers "vkCmdBindVertexBuffers" 70 (command_buffer : VkCommandBuffer 71 first_binding : u32 72 binding_count : u32 73 buffers : ptr VkBuffer 74 offsets : ptr u64) 75 76 def cmd_blit_image "vkCmdBlitImage" 77 (command_buffer : VkCommandBuffer 78 src_image : VkImage 79 src_image_layout : ImageLayout 80 dst_image : VkImage 81 dst_image_layout : ImageLayout 82 region_count : u32 83 regions : ptr ImageBlit 84 filter : VkFilter) 85 86 def cmd_clear_attachments "vkCmdClearAttachments" 87 (command_buffer : VkCommandBuffer 88 attachment_count : u32 89 attachments : ptr ClearAttachment 90 rect_count : u32 91 rects : ptr ClearRect) 92 93 def cmd_clear_color_image "vkCmdClearColorImage" 94 (command_buffer : VkCommandBuffer 95 image : VkImage 96 image_layout : ImageLayout 97 color : ptr ClearColorValue 98 range_count : u32 99 ranges : ptr ImageSubresourceRange) 100 101 def cmd_copy_buffer "vkCmdCopyBuffer" 102 (command_buffer : VkCommandBuffer 103 src_buffer : VkBuffer 104 dst_buffer : VkBuffer 105 region_count : u32 106 regions : ptr BufferCopy) 107 108 def cmd_copy_buffer_to_image "vkCmdCopyBufferToImage" 109 (command_buffer : VkCommandBuffer 110 src_buffer : VkBuffer 111 dst_image : VkImage 112 dst_image_layout : ImageLayout 113 region_count : u32 114 regions : ptr BufferImageCopy) 115 116 def cmd_copy_image "vkCmdCopyImage" 117 (command_buffer : VkCommandBuffer 118 src_image : VkImage 119 src_image_layout : ImageLayout 120 dst_image : VkImage 121 dst_image_layout : ImageLayout 122 region_count : u32 123 regions : ptr ImageCopy) 124 125 def cmd_dispatch "vkCmdDispatch" 126 (command_buffer : VkCommandBuffer 127 group_count_x : u32 128 group_count_y : u32 129 group_count_z : u32) 130 131 def cmd_dispatch_indirect "vkCmdDispatchIndirect" 132 (command_buffer : VkCommandBuffer 133 buffer : VkBuffer 134 offset : u64) 135 136 def cmd_draw "vkCmdDraw" 137 (command_buffer : VkCommandBuffer 138 vertex_count : u32 139 instance_count : u32 140 first_vertex : u32 141 first_instance : u32) 142 143 def cmd_draw_indexed "vkCmdDrawIndexed" 144 (command_buffer : VkCommandBuffer 145 index_count : u32 146 instance_count : u32 147 first_index : u32 148 vertex_offset : i32 149 first_instance : u32) 150 151 def cmd_execute_commands "vkCmdExecuteCommands" 152 (command_buffer : VkCommandBuffer 153 command_buffer_count : u32 154 command_buffers : ptr VkCommandBuffer) 155 156 def cmd_end_render_pass "vkCmdEndRenderPass" (command_buffer : VkCommandBuffer) 157 158 def cmd_fill_buffer "vkCmdFillBuffer" 159 (command_buffer : VkCommandBuffer 160 dst_buffer : VkBuffer 161 dst_offset : usize 162 size : usize 163 data : u32) 164 165 def cmd_pipeline_barrier "vkCmdPipelineBarrier" 166 (command_buffer : VkCommandBuffer 167 src_stage_mask : PipelineStageFlags 168 dst_stage_mask : PipelineStageFlags 169 dependency_flags : DependencyFlags 170 memory_barrier_count : u32 171 memory_barriers : ptr MemoryBarrier 172 buffer_memory_barrier_count : u32 173 buffer_memory_barriers : ptr BufferMemoryBarrier 174 image_memory_barrier_count : u32 175 image_memory_barriers : ptr ImageMemoryBarrier) 176 177 def cmd_push_constants "vkCmdPushConstants" 178 (command_buffer : VkCommandBuffer 179 layout : VkPipelineLayout 180 stage_flags : ShaderStageFlags 181 offset : u32 182 size : u32 183 values : Ptr) 184 185 def cmd_reset_query_pool "vkCmdResetQueryPool" 186 (command_buffer : VkCommandBuffer 187 query_pool : VkQueryPool 188 first_query : u32 189 query_count : u32) 190 191 def cmd_resolve_image "vkCmdResolveImage" 192 (command_buffer : VkCommandBuffer 193 src_image : VkImage 194 src_image_layout : ImageLayout 195 dst_image : VkImage 196 dst_image_layout : ImageLayout 197 region_count : u32 198 regions : ptr ImageResolve) 199 200 def cmd_set_scissor "vkCmdSetScissor" 201 (command_buffer : VkCommandBuffer 202 first_scissor : u32 203 scissor_count : u32 204 scissors : ptr Rect2D) 205 206 def cmd_set_viewport "vkCmdSetViewport" 207 (command_buffer : VkCommandBuffer 208 first_viewport : u32 209 viewport_count : u32 210 viewports : ptr Viewport) 211 212 def create_buffer "vkCreateBuffer" 213 (device : VkDevice 214 create_info : ptr BufferCreateInfo 215 allocator : Allocator 216 buffer : mut ptr VkBuffer) : Result 217 218 def create_command_pool "vkCreateCommandPool" 219 (device : VkDevice 220 create_info : ptr CommandPoolCreateInfo 221 allocator : Allocator 222 command_pool : mut ptr VkCommandPool) : Result 223 224 def create_compute_pipelines "vkCreateComputePipelines" 225 (device : VkDevice 226 pipeline_cache : VkPipelineCache 227 create_info_count : u32 228 create_infos : ptr ComputePipelineCreateInfo 229 allocator : Allocator 230 pipelines : mut ptr VkPipeline) : Result 231 232 def create_descriptor_pool "vkCreateDescriptorPool" 233 (device : VkDevice 234 create_info : ptr DescriptorPoolCreateInfo 235 allocator : Allocator 236 descriptor_pool : mut ptr VkDescriptorPool) : Result 237 238 def create_descriptor_set_layout "vkCreateDescriptorSetLayout" 239 (device : VkDevice 240 create_info : ptr DescriptorSetLayoutCreateInfo 241 allocator : Allocator 242 set_layout : mut ptr VkDescriptorSetLayout) : Result 243 244 def create_device "vkCreateDevice" 245 (physical_device : VkPhysicalDevice 246 create_info : ptr DeviceCreateInfo 247 allocator : Allocator 248 device : mut ptr VkDevice) : Result 249 250 def create_fence "vkCreateFence" 251 (device : VkDevice 252 create_info : ptr FenceCreateInfo 253 allocator : Allocator 254 fence : mut ptr VkFence) : Result 255 256 def create_framebuffer "vkCreateFramebuffer" 257 (device : VkDevice 258 create_info : ptr FramebufferCreateInfo 259 allocator : Allocator 260 framebuffer : mut ptr VkFramebuffer) : Result 261 262 def create_graphics_pipelines "vkCreateGraphicsPipelines" 263 (device : VkDevice 264 pipeline_cache : VkPipelineCache 265 create_info_count : u32 266 create_infos : ptr GraphicsPipelineCreateInfo 267 allocator : Allocator 268 pipelines : mut ptr VkPipeline) : Result 269 270 def create_image "vkCreateImage" 271 (device : VkDevice 272 create_info : ptr ImageCreateInfo 273 allocator : Allocator 274 image : mut ptr VkImage) : Result 275 276 def create_image_view "vkCreateImageView" 277 (device : VkDevice 278 create_info : ptr ImageViewCreateInfo 279 allocator : Allocator 280 view : mut ptr VkImageView) : Result 281 282 def create_instance "vkCreateInstance" 283 (create_info : ptr InstanceCreateInfo 284 allocator : Allocator 285 instance : mut ptr VkInstance) : Result 286 287 def create_pipeline_layout "vkCreatePipelineLayout" 288 (device : VkDevice 289 create_info : ptr PipelineLayoutCreateInfo 290 allocator : Allocator 291 pipeline_layout : mut ptr VkPipelineLayout) : Result 292 293 def create_query_pool "vkCreateQueryPool" 294 (device : VkDevice 295 create_info : ptr QueryPoolCreateInfo 296 allocator : Allocator 297 query_pool : mut ptr VkQueryPool) : Result 298 299 def create_render_pass "vkCreateRenderPass" 300 (device : VkDevice 301 create_info : ptr RenderPassCreateInfo 302 allocator : Allocator 303 render_pass : mut ptr VkRenderPass) : Result 304 305 def create_sampler "vkCreateSampler" 306 (device : VkDevice 307 create_info : ptr SamplerCreateInfo 308 allocator : Allocator 309 sampler : mut ptr VkSampler) : Result 310 311 def create_semaphore "vkCreateSemaphore" 312 (device : VkDevice 313 create_info : ptr SemaphoreCreateInfo 314 allocator : Allocator 315 semaphore : mut ptr VkSemaphore) : Result 316 317 def create_shader_module "vkCreateShaderModule" 318 (device : VkDevice 319 create_info : ptr ShaderModuleCreateInfo 320 allocator : Allocator 321 shader_module : mut ptr VkShaderModule) : Result 322 323 def create_swapchain_khr "vkCreateSwapchainKHR" 324 (device : VkDevice 325 create_info : ptr SwapchainCreateInfoKhr 326 allocator : Allocator 327 swapchain : mut ptr VkSwapchain) : Result 328 329 def destroy_buffer "vkDestroyBuffer" 330 (device : VkDevice 331 buffer : VkBuffer 332 allocator : Allocator) 333 334 def destroy_command_pool "vkDestroyCommandPool" 335 (device : VkDevice 336 command_pool : VkCommandPool 337 allocator : Allocator) 338 339 def destroy_descriptor_pool "vkDestroyDescriptorPool" 340 (device : VkDevice 341 descriptor_pool : VkDescriptorPool 342 allocator : Allocator) 343 344 def destroy_descriptor_set_layout "vkDestroyDescriptorSetLayout" 345 (device : VkDevice 346 descriptor_set_layout : VkDescriptorSetLayout 347 allocator : Allocator) 348 349 def destroy_device "vkDestroyDevice" 350 (device : VkDevice 351 allocator : Allocator) 352 353 def destroy_fence "vkDestroyFence" 354 (device : VkDevice 355 fence : VkFence 356 allocator : Allocator) 357 358 def destroy_framebuffer "vkDestroyFramebuffer" 359 (device : VkDevice 360 framebuffer : VkFramebuffer 361 allocator : Allocator) 362 363 def destroy_image "vkDestroyImage" 364 (device : VkDevice 365 image : VkImage 366 allocator : Allocator) 367 368 def destroy_image_view "vkDestroyImageView" 369 (device : VkDevice 370 image_view : VkImageView 371 allocator : Allocator) 372 373 def destroy_instance "vkDestroyInstance" 374 (instance : VkInstance 375 allocator : Allocator) 376 377 def destroy_pipeline "vkDestroyPipeline" 378 (device : VkDevice 379 pipeline : VkPipeline 380 allocator : Allocator) 381 382 def destroy_pipeline_layout "vkDestroyPipelineLayout" 383 (device : VkDevice 384 pipeline_layout : VkPipelineLayout 385 allocator : Allocator) 386 387 def destroy_render_pass "vkDestroyRenderPass" 388 (device : VkDevice 389 render_pass : VkRenderPass 390 allocator : Allocator) 391 392 def destroy_sampler "vkDestroySampler" 393 (device : VkDevice 394 sampler : VkSampler 395 allocator : Allocator) 396 397 def destroy_semaphore "vkDestroySemaphore" 398 (device : VkDevice 399 semaphore : VkSemaphore 400 allocator : Allocator) 401 402 def destroy_shader_module "vkDestroyShaderModule" 403 (device : VkDevice 404 shader_module : VkShaderModule 405 allocator : Allocator) 406 407 def destroy_surface_khr "vkDestroySurfaceKHR" 408 (instance : VkInstance 409 surface : VkSurface 410 allocator : Allocator) 411 412 def destroy_swapchain_khr "vkDestroySwapchainKHR" 413 (device : VkDevice 414 swapchain : VkSwapchain 415 allocator : Allocator) 416 417 def device_wait_idle "vkDeviceWaitIdle" (device : VkDevice) : Result 418 419 def end_command_buffer "vkEndCommandBuffer" (command_buffer : VkCommandBuffer) : Result 420 421 def enumerate_device_extension_properties "vkEnumerateDeviceExtensionProperties" 422 (physical_device : VkPhysicalDevice 423 layer_name : ptr CChar 424 property_count : mut ptr u32 425 properties : mut ptr ExtensionProperties) : Result 426 427 def enumerate_instance_extension_properties "vkEnumerateInstanceExtensionProperties" 428 (layer_name : CString 429 property_count : mut ptr u32 430 properties : mut ptr ExtensionProperties) : Result 431 432 def enumerate_instance_layer_properties "vkEnumerateInstanceLayerProperties" 433 (property_count : mut ptr u32 434 properties : mut ptr LayerProperties) : Result 435 436 def enumerate_physical_devices "vkEnumeratePhysicalDevices" 437 (instance : VkInstance 438 physical_device_count : mut ptr u32 439 physical_devices : mut ptr VkPhysicalDevice) : Result 440 441 def free_command_buffers "vkFreeCommandBuffers" 442 (device : VkDevice 443 command_pool : VkCommandPool 444 command_buffer_count : u32 445 command_buffers : ptr VkCommandBuffer) 446 447 def free_descriptor_sets "vkFreeDescriptorSets" 448 (device : VkDevice 449 descriptor_pool : VkDescriptorPool 450 descriptor_set_count : u32 451 descriptor_sets : ptr VkDescriptorSet) : Result 452 453 def free_memory "vkFreeMemory" 454 (device : VkDevice 455 memory : VkMemory 456 allocator : Allocator) 457 458 def get_buffer_memory_requirements "vkGetBufferMemoryRequirements" 459 (device : VkDevice 460 buffer : VkBuffer 461 memory_requirements : mut ptr MemoryRequirements) 462 463 def get_device_queue "vkGetDeviceQueue" 464 (device : VkDevice 465 queue_family_index : u32 466 queue_index : u32 467 queue : mut ptr VkQueue) 468 469 def get_image_memory_requirements "vkGetImageMemoryRequirements" 470 (device : VkDevice 471 image : VkImage 472 memory_requirements : mut ptr MemoryRequirements) 473 474 def get_instance_proc_addr "vkGetInstanceProcAddr" 475 (instance : VkInstance 476 name : CString) : Ptr 477 478 def get_physical_device_features "vkGetPhysicalDeviceFeatures" 479 (physical_device : VkPhysicalDevice 480 features : mut ptr PhysicalDeviceFeatures) 481 482 def get_physical_device_format_properties "vkGetPhysicalDeviceFormatProperties" 483 (physical_device : VkPhysicalDevice 484 format : VkFormat 485 format_properties : mut ptr FormatProperties) 486 487 def get_physical_device_memory_properties "vkGetPhysicalDeviceMemoryProperties" 488 (physical_device : VkPhysicalDevice 489 memory_properties : mut ptr PhysicalDeviceMemoryProperties) 490 491 def get_physical_device_properties "vkGetPhysicalDeviceProperties" 492 (physical_device : VkPhysicalDevice 493 properties : mut ptr PhysicalDeviceProperties) 494 495 def get_physical_device_queue_family_properties "vkGetPhysicalDeviceQueueFamilyProperties" 496 (physical_device : VkPhysicalDevice 497 queue_family_property_count : mut ptr u32 498 queue_family_properties : mut ptr QueueFamilyProperties) 499 500 def get_physical_device_surface_capabilities_khr "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" 501 (physical_device : VkPhysicalDevice 502 surface : VkSurface 503 surface_capabilities : mut ptr SurfaceCapabilitiesKhr) : Result 504 505 def get_physical_device_surface_formats_khr "vkGetPhysicalDeviceSurfaceFormatsKHR" 506 (physical_device : VkPhysicalDevice 507 surface : VkSurface 508 surface_format_count : mut ptr u32 509 surface_formats : mut ptr SurfaceFormatKhr) : Result 510 511 def get_physical_device_surface_present_modes_khr "vkGetPhysicalDeviceSurfacePresentModesKHR" 512 (physical_device : VkPhysicalDevice 513 surface : VkSurface 514 present_mode_count : mut ptr u32 515 present_modes : ptr PresentModeKhr) : Result 516 517 def get_physical_device_surface_support_khr "vkGetPhysicalDeviceSurfaceSupportKHR" 518 (physical_device : VkPhysicalDevice 519 queue_family_index : u32 520 surface : VkSurface 521 supported : mut ptr u32) : Result 522 523 def get_query_pool_results "vkGetQueryPoolResults" 524 (device : VkDevice 525 query_pool : VkQueryPool 526 first_query : u32 527 query_count : u32 528 data_size : usize 529 data : Ptr 530 stride : u64 531 flags : QueryResultFlags) : Result 532 533 def get_swapchain_images_khr "vkGetSwapchainImagesKHR" 534 (device : VkDevice 535 swapchain : VkSwapchain 536 swapchain_image_count : mut ptr u32 537 swapchain_images : mut ptr VkImage) : Result 538 539 def map_memory "vkMapMemory" 540 (device : VkDevice 541 memory : VkMemory 542 offset : u64 543 size : u64 544 flags : MemoryMapFlags 545 data : mut ptr MutPtr) : Result 546 547 def queue_present_khr "vkQueuePresentKHR" 548 (queue : VkQueue 549 present_info : ptr PresentInfoKhr) : Result 550 551 def queue_submit "vkQueueSubmit" 552 (queue : VkQueue 553 submit_count : u32 554 submits : ptr SubmitInfo 555 fence : VkFence) : Result 556 557 def queue_wait_idle "vkQueueWaitIdle" (queue : VkQueue) : Result 558 559 def reset_command_buffer "vkResetCommandBuffer" 560 (command_buffer : VkCommandBuffer 561 flags : u32) : Result 562 563 def reset_fences "vkResetFences" 564 (device : VkDevice 565 fence_count : u32 566 fences : ptr VkFence) : Result 567 568 def unmap_memory "vkUnmapMemory" (device : VkDevice 569 memory : VkMemory) 570 571 def update_descriptor_sets "vkUpdateDescriptorSets" 572 (device : VkDevice 573 descriptor_write_count : u32 574 descriptor_writes : ptr WriteDescriptorSet 575 descriptor_copy_count : u32 576 descriptor_copies : ptr CopyDescriptorSet) 577 578 def wait_for_fences "vkWaitForFences" 579 (device : VkDevice 580 fence_count : u32 581 fences : ptr VkFence 582 wait_all : u32 583 timeout : u64) : Result 584