vulkan-ruby 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (350) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.simplecov +6 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.lock +51 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +93 -0
  9. data/Rakefile +14 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +9 -0
  12. data/bin/setup.bat +2 -0
  13. data/examples/models/viking_room.obj +16053 -0
  14. data/examples/screenshots/vt10-viking_room.png +0 -0
  15. data/examples/shaders/depth_buffering.vert +25 -0
  16. data/examples/shaders/depth_buffering.vert.spv +0 -0
  17. data/examples/shaders/model_loading.frag +13 -0
  18. data/examples/shaders/model_loading.frag.spv +0 -0
  19. data/examples/shaders/model_loading.vert +25 -0
  20. data/examples/shaders/model_loading.vert.spv +0 -0
  21. data/examples/shaders/textures.frag +13 -0
  22. data/examples/shaders/textures.frag.spv +0 -0
  23. data/examples/shaders/textures.vert +25 -0
  24. data/examples/shaders/textures.vert.spv +0 -0
  25. data/examples/shaders/triangle.frag +10 -0
  26. data/examples/shaders/triangle.frag.spv +0 -0
  27. data/examples/shaders/triangle.vert +25 -0
  28. data/examples/shaders/triangle.vert.spv +0 -0
  29. data/examples/shaders/uniform_buffer.vert +22 -0
  30. data/examples/shaders/uniform_buffer.vert.spv +0 -0
  31. data/examples/shaders/vertex_buffer.vert +16 -0
  32. data/examples/shaders/vertex_buffer.vert.spv +0 -0
  33. data/examples/textures/texture.png +0 -0
  34. data/examples/textures/viking_room.png +0 -0
  35. data/examples/vt00_dump_info.rb +24 -0
  36. data/examples/vt01_triangle.rb +140 -0
  37. data/examples/vt02_vertex_buffer_triangle_host_visible.rb +164 -0
  38. data/examples/vt03_vertex_buffer_triangle_device_local.rb +174 -0
  39. data/examples/vt04_index_buffer_device_local.rb +193 -0
  40. data/examples/vt05_uniform_buffers.rb +237 -0
  41. data/examples/vt06_textures.rb +275 -0
  42. data/examples/vt07_depth_buffering.rb +315 -0
  43. data/examples/vt08_model_loading.rb +321 -0
  44. data/examples/vt09_mipmaps.rb +329 -0
  45. data/examples/vt10_multisampling.rb +344 -0
  46. data/lib/fiddle_ext.rb +15 -0
  47. data/lib/vulkan/buffer.rb +66 -0
  48. data/lib/vulkan/buffer_memory.rb +13 -0
  49. data/lib/vulkan/checks.rb +12 -0
  50. data/lib/vulkan/command_buffer.rb +380 -0
  51. data/lib/vulkan/command_pool.rb +28 -0
  52. data/lib/vulkan/conversions.rb +511 -0
  53. data/lib/vulkan/descriptor_pool.rb +45 -0
  54. data/lib/vulkan/descriptor_set.rb +86 -0
  55. data/lib/vulkan/descriptor_set_layout.rb +39 -0
  56. data/lib/vulkan/dispatch_table.rb +78 -0
  57. data/lib/vulkan/error.rb +43 -0
  58. data/lib/vulkan/fence.rb +32 -0
  59. data/lib/vulkan/finalizer.rb +43 -0
  60. data/lib/vulkan/framebuffer.rb +37 -0
  61. data/lib/vulkan/generated/commands.rb +298 -0
  62. data/lib/vulkan/generated/enums.rb +1049 -0
  63. data/lib/vulkan/generated/extensions/reserved_do_not_use_146.rb +8 -0
  64. data/lib/vulkan/generated/extensions/reserved_do_not_use_94.rb +8 -0
  65. data/lib/vulkan/generated/extensions/vk_amd_buffer_marker.rb +10 -0
  66. data/lib/vulkan/generated/extensions/vk_amd_draw_indirect_count.rb +10 -0
  67. data/lib/vulkan/generated/extensions/vk_amd_extension_134.rb +10 -0
  68. data/lib/vulkan/generated/extensions/vk_amd_extension_135.rb +10 -0
  69. data/lib/vulkan/generated/extensions/vk_amd_extension_136.rb +10 -0
  70. data/lib/vulkan/generated/extensions/vk_amd_extension_140.rb +10 -0
  71. data/lib/vulkan/generated/extensions/vk_amd_extension_142.rb +10 -0
  72. data/lib/vulkan/generated/extensions/vk_amd_extension_143.rb +10 -0
  73. data/lib/vulkan/generated/extensions/vk_amd_extension_17.rb +10 -0
  74. data/lib/vulkan/generated/extensions/vk_amd_extension_18.rb +10 -0
  75. data/lib/vulkan/generated/extensions/vk_amd_extension_182.rb +10 -0
  76. data/lib/vulkan/generated/extensions/vk_amd_extension_183.rb +10 -0
  77. data/lib/vulkan/generated/extensions/vk_amd_extension_184.rb +10 -0
  78. data/lib/vulkan/generated/extensions/vk_amd_extension_187.rb +10 -0
  79. data/lib/vulkan/generated/extensions/vk_amd_extension_188.rb +10 -0
  80. data/lib/vulkan/generated/extensions/vk_amd_extension_189.rb +10 -0
  81. data/lib/vulkan/generated/extensions/vk_amd_extension_20.rb +10 -0
  82. data/lib/vulkan/generated/extensions/vk_amd_extension_214.rb +10 -0
  83. data/lib/vulkan/generated/extensions/vk_amd_extension_226.rb +10 -0
  84. data/lib/vulkan/generated/extensions/vk_amd_extension_227.rb +10 -0
  85. data/lib/vulkan/generated/extensions/vk_amd_extension_228.rb +10 -0
  86. data/lib/vulkan/generated/extensions/vk_amd_extension_229.rb +10 -0
  87. data/lib/vulkan/generated/extensions/vk_amd_extension_230.rb +10 -0
  88. data/lib/vulkan/generated/extensions/vk_amd_extension_231.rb +10 -0
  89. data/lib/vulkan/generated/extensions/vk_amd_extension_232.rb +10 -0
  90. data/lib/vulkan/generated/extensions/vk_amd_extension_233.rb +10 -0
  91. data/lib/vulkan/generated/extensions/vk_amd_extension_234.rb +10 -0
  92. data/lib/vulkan/generated/extensions/vk_amd_extension_235.rb +10 -0
  93. data/lib/vulkan/generated/extensions/vk_amd_extension_236.rb +10 -0
  94. data/lib/vulkan/generated/extensions/vk_amd_extension_24.rb +10 -0
  95. data/lib/vulkan/generated/extensions/vk_amd_extension_25.rb +10 -0
  96. data/lib/vulkan/generated/extensions/vk_amd_extension_32.rb +10 -0
  97. data/lib/vulkan/generated/extensions/vk_amd_extension_33.rb +10 -0
  98. data/lib/vulkan/generated/extensions/vk_amd_extension_35.rb +10 -0
  99. data/lib/vulkan/generated/extensions/vk_amd_extension_39.rb +10 -0
  100. data/lib/vulkan/generated/extensions/vk_amd_extension_40.rb +10 -0
  101. data/lib/vulkan/generated/extensions/vk_amd_extension_41.rb +10 -0
  102. data/lib/vulkan/generated/extensions/vk_amd_extension_44.rb +10 -0
  103. data/lib/vulkan/generated/extensions/vk_amd_extension_45.rb +10 -0
  104. data/lib/vulkan/generated/extensions/vk_amd_extension_46.rb +10 -0
  105. data/lib/vulkan/generated/extensions/vk_amd_gcn_shader.rb +10 -0
  106. data/lib/vulkan/generated/extensions/vk_amd_gpu_shader_half_float.rb +10 -0
  107. data/lib/vulkan/generated/extensions/vk_amd_gpu_shader_int16.rb +10 -0
  108. data/lib/vulkan/generated/extensions/vk_amd_memory_overallocation_behavior.rb +11 -0
  109. data/lib/vulkan/generated/extensions/vk_amd_mixed_attachment_samples.rb +10 -0
  110. data/lib/vulkan/generated/extensions/vk_amd_negative_viewport_height.rb +10 -0
  111. data/lib/vulkan/generated/extensions/vk_amd_rasterization_order.rb +11 -0
  112. data/lib/vulkan/generated/extensions/vk_amd_shader_ballot.rb +10 -0
  113. data/lib/vulkan/generated/extensions/vk_amd_shader_core_properties.rb +11 -0
  114. data/lib/vulkan/generated/extensions/vk_amd_shader_explicit_vertex_parameter.rb +10 -0
  115. data/lib/vulkan/generated/extensions/vk_amd_shader_fragment_mask.rb +10 -0
  116. data/lib/vulkan/generated/extensions/vk_amd_shader_image_load_store_lod.rb +10 -0
  117. data/lib/vulkan/generated/extensions/vk_amd_shader_info.rb +10 -0
  118. data/lib/vulkan/generated/extensions/vk_amd_shader_trinary_minmax.rb +10 -0
  119. data/lib/vulkan/generated/extensions/vk_amd_texture_gather_bias_lod.rb +11 -0
  120. data/lib/vulkan/generated/extensions/vk_android_external_memory_android_hardware_buffer.rb +17 -0
  121. data/lib/vulkan/generated/extensions/vk_android_native_buffer.rb +12 -0
  122. data/lib/vulkan/generated/extensions/vk_arm_extension_01.rb +10 -0
  123. data/lib/vulkan/generated/extensions/vk_arm_extension_198.rb +10 -0
  124. data/lib/vulkan/generated/extensions/vk_ext_acquire_xlib_display.rb +10 -0
  125. data/lib/vulkan/generated/extensions/vk_ext_astc_decode_mode.rb +12 -0
  126. data/lib/vulkan/generated/extensions/vk_ext_blend_operation_advanced.rb +60 -0
  127. data/lib/vulkan/generated/extensions/vk_ext_calibrated_timestamps.rb +11 -0
  128. data/lib/vulkan/generated/extensions/vk_ext_conditional_rendering.rb +16 -0
  129. data/lib/vulkan/generated/extensions/vk_ext_conservative_rasterization.rb +12 -0
  130. data/lib/vulkan/generated/extensions/vk_ext_debug_marker.rb +13 -0
  131. data/lib/vulkan/generated/extensions/vk_ext_debug_report.rb +16 -0
  132. data/lib/vulkan/generated/extensions/vk_ext_debug_utils.rb +16 -0
  133. data/lib/vulkan/generated/extensions/vk_ext_depth_range_unrestricted.rb +10 -0
  134. data/lib/vulkan/generated/extensions/vk_ext_descriptor_indexing.rb +18 -0
  135. data/lib/vulkan/generated/extensions/vk_ext_direct_mode_display.rb +10 -0
  136. data/lib/vulkan/generated/extensions/vk_ext_discard_rectangles.rb +13 -0
  137. data/lib/vulkan/generated/extensions/vk_ext_display_control.rb +14 -0
  138. data/lib/vulkan/generated/extensions/vk_ext_display_surface_counter.rb +12 -0
  139. data/lib/vulkan/generated/extensions/vk_ext_extension_160.rb +10 -0
  140. data/lib/vulkan/generated/extensions/vk_ext_extension_176.rb +10 -0
  141. data/lib/vulkan/generated/extensions/vk_ext_extension_177.rb +10 -0
  142. data/lib/vulkan/generated/extensions/vk_ext_extension_219.rb +15 -0
  143. data/lib/vulkan/generated/extensions/vk_ext_extension_220.rb +10 -0
  144. data/lib/vulkan/generated/extensions/vk_ext_extension_222.rb +10 -0
  145. data/lib/vulkan/generated/extensions/vk_ext_extension_223.rb +10 -0
  146. data/lib/vulkan/generated/extensions/vk_ext_extension_28.rb +10 -0
  147. data/lib/vulkan/generated/extensions/vk_ext_external_memory_dma_buf.rb +11 -0
  148. data/lib/vulkan/generated/extensions/vk_ext_external_memory_host.rb +15 -0
  149. data/lib/vulkan/generated/extensions/vk_ext_global_priority.rb +12 -0
  150. data/lib/vulkan/generated/extensions/vk_ext_hdr_metadata.rb +11 -0
  151. data/lib/vulkan/generated/extensions/vk_ext_image_drm_format_modifier.rb +24 -0
  152. data/lib/vulkan/generated/extensions/vk_ext_inline_uniform_block.rb +15 -0
  153. data/lib/vulkan/generated/extensions/vk_ext_macos_ios_window.rb +10 -0
  154. data/lib/vulkan/generated/extensions/vk_ext_pci_bus_info.rb +11 -0
  155. data/lib/vulkan/generated/extensions/vk_ext_post_depth_coverage.rb +10 -0
  156. data/lib/vulkan/generated/extensions/vk_ext_queue_family_foreign.rb +11 -0
  157. data/lib/vulkan/generated/extensions/vk_ext_sample_locations.rb +17 -0
  158. data/lib/vulkan/generated/extensions/vk_ext_sampler_filter_minmax.rb +13 -0
  159. data/lib/vulkan/generated/extensions/vk_ext_shader_stencil_export.rb +10 -0
  160. data/lib/vulkan/generated/extensions/vk_ext_shader_subgroup_ballot.rb +10 -0
  161. data/lib/vulkan/generated/extensions/vk_ext_shader_subgroup_vote.rb +10 -0
  162. data/lib/vulkan/generated/extensions/vk_ext_shader_viewport_index_layer.rb +10 -0
  163. data/lib/vulkan/generated/extensions/vk_ext_swapchain_colorspace.rb +24 -0
  164. data/lib/vulkan/generated/extensions/vk_ext_transform_feedback.rb +20 -0
  165. data/lib/vulkan/generated/extensions/vk_ext_validation_cache.rb +13 -0
  166. data/lib/vulkan/generated/extensions/vk_ext_validation_flags.rb +11 -0
  167. data/lib/vulkan/generated/extensions/vk_ext_vertex_attribute_divisor.rb +13 -0
  168. data/lib/vulkan/generated/extensions/vk_fuchsia_imagepipe_surface.rb +11 -0
  169. data/lib/vulkan/generated/extensions/vk_google_decorate_string.rb +10 -0
  170. data/lib/vulkan/generated/extensions/vk_google_display_timing.rb +11 -0
  171. data/lib/vulkan/generated/extensions/vk_google_extension_192.rb +10 -0
  172. data/lib/vulkan/generated/extensions/vk_google_extension_193.rb +10 -0
  173. data/lib/vulkan/generated/extensions/vk_google_extension_194.rb +10 -0
  174. data/lib/vulkan/generated/extensions/vk_google_extension_195.rb +10 -0
  175. data/lib/vulkan/generated/extensions/vk_google_extension_196.rb +10 -0
  176. data/lib/vulkan/generated/extensions/vk_google_extension_216.rb +10 -0
  177. data/lib/vulkan/generated/extensions/vk_google_extension_217.rb +10 -0
  178. data/lib/vulkan/generated/extensions/vk_google_extension_49.rb +10 -0
  179. data/lib/vulkan/generated/extensions/vk_google_extension_50.rb +10 -0
  180. data/lib/vulkan/generated/extensions/vk_google_hlsl_functionality1.rb +10 -0
  181. data/lib/vulkan/generated/extensions/vk_img_extension_107.rb +10 -0
  182. data/lib/vulkan/generated/extensions/vk_img_extension_108.rb +10 -0
  183. data/lib/vulkan/generated/extensions/vk_img_extension_109.rb +10 -0
  184. data/lib/vulkan/generated/extensions/vk_img_extension_111.rb +10 -0
  185. data/lib/vulkan/generated/extensions/vk_img_extension_69.rb +10 -0
  186. data/lib/vulkan/generated/extensions/vk_img_filter_cubic.rb +12 -0
  187. data/lib/vulkan/generated/extensions/vk_img_format_pvrtc.rb +18 -0
  188. data/lib/vulkan/generated/extensions/vk_intel_extension_210.rb +10 -0
  189. data/lib/vulkan/generated/extensions/vk_intel_extension_211.rb +10 -0
  190. data/lib/vulkan/generated/extensions/vk_intel_extension_243.rb +10 -0
  191. data/lib/vulkan/generated/extensions/vk_khr_16bit_storage.rb +11 -0
  192. data/lib/vulkan/generated/extensions/vk_khr_8bit_storage.rb +11 -0
  193. data/lib/vulkan/generated/extensions/vk_khr_android_surface.rb +11 -0
  194. data/lib/vulkan/generated/extensions/vk_khr_bind_memory2.rb +13 -0
  195. data/lib/vulkan/generated/extensions/vk_khr_create_renderpass2.rb +17 -0
  196. data/lib/vulkan/generated/extensions/vk_khr_dedicated_allocation.rb +12 -0
  197. data/lib/vulkan/generated/extensions/vk_khr_descriptor_update_template.rb +15 -0
  198. data/lib/vulkan/generated/extensions/vk_khr_device_group.rb +33 -0
  199. data/lib/vulkan/generated/extensions/vk_khr_device_group_creation.rb +14 -0
  200. data/lib/vulkan/generated/extensions/vk_khr_display.rb +14 -0
  201. data/lib/vulkan/generated/extensions/vk_khr_display_swapchain.rb +12 -0
  202. data/lib/vulkan/generated/extensions/vk_khr_draw_indirect_count.rb +10 -0
  203. data/lib/vulkan/generated/extensions/vk_khr_driver_properties.rb +13 -0
  204. data/lib/vulkan/generated/extensions/vk_khr_extension_117.rb +10 -0
  205. data/lib/vulkan/generated/extensions/vk_khr_extension_119.rb +10 -0
  206. data/lib/vulkan/generated/extensions/vk_khr_extension_200.rb +10 -0
  207. data/lib/vulkan/generated/extensions/vk_khr_extension_201.rb +10 -0
  208. data/lib/vulkan/generated/extensions/vk_khr_extension_208.rb +10 -0
  209. data/lib/vulkan/generated/extensions/vk_khr_extension_209.rb +10 -0
  210. data/lib/vulkan/generated/extensions/vk_khr_extension_221.rb +11 -0
  211. data/lib/vulkan/generated/extensions/vk_khr_extension_237.rb +10 -0
  212. data/lib/vulkan/generated/extensions/vk_khr_extension_238.rb +10 -0
  213. data/lib/vulkan/generated/extensions/vk_khr_extension_239.rb +10 -0
  214. data/lib/vulkan/generated/extensions/vk_khr_extension_240.rb +10 -0
  215. data/lib/vulkan/generated/extensions/vk_khr_extension_83.rb +10 -0
  216. data/lib/vulkan/generated/extensions/vk_khr_external_fence.rb +12 -0
  217. data/lib/vulkan/generated/extensions/vk_khr_external_fence_capabilities.rb +19 -0
  218. data/lib/vulkan/generated/extensions/vk_khr_external_fence_fd.rb +12 -0
  219. data/lib/vulkan/generated/extensions/vk_khr_external_fence_win32.rb +13 -0
  220. data/lib/vulkan/generated/extensions/vk_khr_external_memory.rb +15 -0
  221. data/lib/vulkan/generated/extensions/vk_khr_external_memory_capabilities.rb +26 -0
  222. data/lib/vulkan/generated/extensions/vk_khr_external_memory_fd.rb +13 -0
  223. data/lib/vulkan/generated/extensions/vk_khr_external_memory_win32.rb +14 -0
  224. data/lib/vulkan/generated/extensions/vk_khr_external_semaphore.rb +12 -0
  225. data/lib/vulkan/generated/extensions/vk_khr_external_semaphore_capabilities.rb +20 -0
  226. data/lib/vulkan/generated/extensions/vk_khr_external_semaphore_fd.rb +12 -0
  227. data/lib/vulkan/generated/extensions/vk_khr_external_semaphore_win32.rb +14 -0
  228. data/lib/vulkan/generated/extensions/vk_khr_get_display_properties2.rb +15 -0
  229. data/lib/vulkan/generated/extensions/vk_khr_get_memory_requirements2.rb +15 -0
  230. data/lib/vulkan/generated/extensions/vk_khr_get_physical_device_properties2.rb +19 -0
  231. data/lib/vulkan/generated/extensions/vk_khr_get_surface_capabilities2.rb +13 -0
  232. data/lib/vulkan/generated/extensions/vk_khr_image_format_list.rb +11 -0
  233. data/lib/vulkan/generated/extensions/vk_khr_incremental_present.rb +11 -0
  234. data/lib/vulkan/generated/extensions/vk_khr_maintenance1.rb +14 -0
  235. data/lib/vulkan/generated/extensions/vk_khr_maintenance2.rb +22 -0
  236. data/lib/vulkan/generated/extensions/vk_khr_maintenance3.rb +12 -0
  237. data/lib/vulkan/generated/extensions/vk_khr_mir_surface.rb +10 -0
  238. data/lib/vulkan/generated/extensions/vk_khr_multiview.rb +14 -0
  239. data/lib/vulkan/generated/extensions/vk_khr_push_descriptor.rb +13 -0
  240. data/lib/vulkan/generated/extensions/vk_khr_relaxed_block_layout.rb +10 -0
  241. data/lib/vulkan/generated/extensions/vk_khr_sampler_mirror_clamp_to_edge.rb +11 -0
  242. data/lib/vulkan/generated/extensions/vk_khr_sampler_ycbcr_conversion.rb +73 -0
  243. data/lib/vulkan/generated/extensions/vk_khr_shader_atomic_int64.rb +11 -0
  244. data/lib/vulkan/generated/extensions/vk_khr_shader_draw_parameters.rb +10 -0
  245. data/lib/vulkan/generated/extensions/vk_khr_shared_presentable_image.rb +14 -0
  246. data/lib/vulkan/generated/extensions/vk_khr_storage_buffer_storage_class.rb +10 -0
  247. data/lib/vulkan/generated/extensions/vk_khr_surface.rb +13 -0
  248. data/lib/vulkan/generated/extensions/vk_khr_swapchain.rb +24 -0
  249. data/lib/vulkan/generated/extensions/vk_khr_variable_pointers.rb +11 -0
  250. data/lib/vulkan/generated/extensions/vk_khr_vulkan_memory_model.rb +11 -0
  251. data/lib/vulkan/generated/extensions/vk_khr_wayland_surface.rb +11 -0
  252. data/lib/vulkan/generated/extensions/vk_khr_win32_keyed_mutex.rb +11 -0
  253. data/lib/vulkan/generated/extensions/vk_khr_win32_surface.rb +11 -0
  254. data/lib/vulkan/generated/extensions/vk_khr_xcb_surface.rb +11 -0
  255. data/lib/vulkan/generated/extensions/vk_khr_xlib_surface.rb +11 -0
  256. data/lib/vulkan/generated/extensions/vk_mesa_extension_244.rb +10 -0
  257. data/lib/vulkan/generated/extensions/vk_mvk_ios_surface.rb +11 -0
  258. data/lib/vulkan/generated/extensions/vk_mvk_macos_surface.rb +11 -0
  259. data/lib/vulkan/generated/extensions/vk_mvk_moltenvk.rb +10 -0
  260. data/lib/vulkan/generated/extensions/vk_nn_vi_surface.rb +11 -0
  261. data/lib/vulkan/generated/extensions/vk_nv_clip_space_w_scaling.rb +12 -0
  262. data/lib/vulkan/generated/extensions/vk_nv_compute_shader_derivatives.rb +11 -0
  263. data/lib/vulkan/generated/extensions/vk_nv_corner_sampled_image.rb +12 -0
  264. data/lib/vulkan/generated/extensions/vk_nv_dedicated_allocation.rb +13 -0
  265. data/lib/vulkan/generated/extensions/vk_nv_device_diagnostic_checkpoints.rb +12 -0
  266. data/lib/vulkan/generated/extensions/vk_nv_extension_101.rb +10 -0
  267. data/lib/vulkan/generated/extensions/vk_nv_extension_103.rb +10 -0
  268. data/lib/vulkan/generated/extensions/vk_nv_extension_104.rb +10 -0
  269. data/lib/vulkan/generated/extensions/vk_nv_extension_151.rb +10 -0
  270. data/lib/vulkan/generated/extensions/vk_nv_extension_152.rb +10 -0
  271. data/lib/vulkan/generated/extensions/vk_nv_extension_155.rb +10 -0
  272. data/lib/vulkan/generated/extensions/vk_nv_extension_164.rb +10 -0
  273. data/lib/vulkan/generated/extensions/vk_nv_extension_168.rb +10 -0
  274. data/lib/vulkan/generated/extensions/vk_nv_extension_241.rb +10 -0
  275. data/lib/vulkan/generated/extensions/vk_nv_extension_242.rb +10 -0
  276. data/lib/vulkan/generated/extensions/vk_nv_extension_245.rb +10 -0
  277. data/lib/vulkan/generated/extensions/vk_nv_extension_53.rb +10 -0
  278. data/lib/vulkan/generated/extensions/vk_nv_external_memory.rb +12 -0
  279. data/lib/vulkan/generated/extensions/vk_nv_external_memory_capabilities.rb +10 -0
  280. data/lib/vulkan/generated/extensions/vk_nv_external_memory_win32.rb +12 -0
  281. data/lib/vulkan/generated/extensions/vk_nv_fill_rectangle.rb +11 -0
  282. data/lib/vulkan/generated/extensions/vk_nv_fragment_coverage_to_color.rb +11 -0
  283. data/lib/vulkan/generated/extensions/vk_nv_fragment_shader_barycentric.rb +11 -0
  284. data/lib/vulkan/generated/extensions/vk_nv_framebuffer_mixed_samples.rb +11 -0
  285. data/lib/vulkan/generated/extensions/vk_nv_geometry_shader_passthrough.rb +10 -0
  286. data/lib/vulkan/generated/extensions/vk_nv_glsl_shader.rb +11 -0
  287. data/lib/vulkan/generated/extensions/vk_nv_mesh_shader.rb +16 -0
  288. data/lib/vulkan/generated/extensions/vk_nv_ray_tracing.rb +40 -0
  289. data/lib/vulkan/generated/extensions/vk_nv_representative_fragment_test.rb +12 -0
  290. data/lib/vulkan/generated/extensions/vk_nv_sample_mask_override_coverage.rb +10 -0
  291. data/lib/vulkan/generated/extensions/vk_nv_scissor_exclusive.rb +13 -0
  292. data/lib/vulkan/generated/extensions/vk_nv_shader_image_footprint.rb +11 -0
  293. data/lib/vulkan/generated/extensions/vk_nv_shader_subgroup_partitioned.rb +11 -0
  294. data/lib/vulkan/generated/extensions/vk_nv_shading_rate_image.rb +20 -0
  295. data/lib/vulkan/generated/extensions/vk_nv_viewport_array2.rb +10 -0
  296. data/lib/vulkan/generated/extensions/vk_nv_viewport_swizzle.rb +11 -0
  297. data/lib/vulkan/generated/extensions/vk_nv_win32_keyed_mutex.rb +11 -0
  298. data/lib/vulkan/generated/extensions/vk_nvx_device_generated_commands.rb +21 -0
  299. data/lib/vulkan/generated/extensions/vk_nvx_extension_30.rb +10 -0
  300. data/lib/vulkan/generated/extensions/vk_nvx_extension_31.rb +10 -0
  301. data/lib/vulkan/generated/extensions/vk_nvx_extension_48.rb +10 -0
  302. data/lib/vulkan/generated/extensions/vk_nvx_extension_52.rb +10 -0
  303. data/lib/vulkan/generated/extensions/vk_nvx_multiview_per_view_attributes.rb +13 -0
  304. data/lib/vulkan/generated/extensions/vk_qcom_extension_171.rb +10 -0
  305. data/lib/vulkan/generated/extensions/vk_qcom_extension_172.rb +10 -0
  306. data/lib/vulkan/generated/extensions/vk_qcom_extension_173.rb +10 -0
  307. data/lib/vulkan/generated/extensions/vk_qcom_extension_174.rb +10 -0
  308. data/lib/vulkan/generated/extensions.rb +251 -0
  309. data/lib/vulkan/generated/structs.rb +2600 -0
  310. data/lib/vulkan/generated/types.rb +348 -0
  311. data/lib/vulkan/generated/vk.xml +10127 -0
  312. data/lib/vulkan/generated.rb +77 -0
  313. data/lib/vulkan/image.rb +263 -0
  314. data/lib/vulkan/image_memory.rb +13 -0
  315. data/lib/vulkan/image_view.rb +46 -0
  316. data/lib/vulkan/instance.rb +183 -0
  317. data/lib/vulkan/logical_device.rb +165 -0
  318. data/lib/vulkan/memory.rb +171 -0
  319. data/lib/vulkan/mock/swapchain_surface_info.rb +42 -0
  320. data/lib/vulkan/mock.rb +5 -0
  321. data/lib/vulkan/physical_device.rb +162 -0
  322. data/lib/vulkan/pipeline.rb +294 -0
  323. data/lib/vulkan/platform.rb +34 -0
  324. data/lib/vulkan/queue.rb +94 -0
  325. data/lib/vulkan/queue_family.rb +27 -0
  326. data/lib/vulkan/render_pass/subpass.rb +80 -0
  327. data/lib/vulkan/render_pass.rb +71 -0
  328. data/lib/vulkan/sampler.rb +48 -0
  329. data/lib/vulkan/semaphore.rb +16 -0
  330. data/lib/vulkan/shader_stage.rb +33 -0
  331. data/lib/vulkan/surface.rb +10 -0
  332. data/lib/vulkan/swapchain.rb +87 -0
  333. data/lib/vulkan/swapchain_builder.rb +111 -0
  334. data/lib/vulkan/swapchain_surface_info.rb +54 -0
  335. data/lib/vulkan/version.rb +3 -0
  336. data/lib/vulkan/window_surface.rb +13 -0
  337. data/lib/vulkan-ruby.rb +1 -0
  338. data/lib/vulkan.rb +91 -0
  339. data/tasks/examples.rake +29 -0
  340. data/tasks/fetch.rake +9 -0
  341. data/tasks/generate/commands.rake +51 -0
  342. data/tasks/generate/enums.rake +43 -0
  343. data/tasks/generate/extensions.rake +35 -0
  344. data/tasks/generate/structs.rake +117 -0
  345. data/tasks/generate/types.rake +91 -0
  346. data/tasks/generate.rake +2 -0
  347. data/tasks/helpers.rb +59 -0
  348. data/tasks/shaders.rake +8 -0
  349. data/vulkan-ruby.gemspec +45 -0
  350. metadata +546 -0
@@ -0,0 +1,2600 @@
1
+ # vulkan-ruby 0.1.0
2
+ #
3
+ # => https://github.com/sinisterchipmunk/vulkan-ruby
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ module Vulkan
8
+ VkGeometryTrianglesNV = struct ["VkStructureType sType",
9
+ "void * pNext",
10
+ "VkBuffer vertexData",
11
+ "VkDeviceSize vertexOffset",
12
+ "uint32_t vertexCount",
13
+ "VkDeviceSize vertexStride",
14
+ "VkFormat vertexFormat",
15
+ "VkBuffer indexData",
16
+ "VkDeviceSize indexOffset",
17
+ "uint32_t indexCount",
18
+ "VkIndexType indexType",
19
+ "VkBuffer transformData",
20
+ "VkDeviceSize transformOffset"]
21
+ VkGeometryAABBNV = struct ["VkStructureType sType",
22
+ "void * pNext",
23
+ "VkBuffer aabbData",
24
+ "uint32_t numAABBs",
25
+ "uint32_t stride",
26
+ "VkDeviceSize offset"]
27
+ VkGeometryDataNV = struct [{ "triangles" => VkGeometryTrianglesNV },
28
+ { "aabbs" => VkGeometryAABBNV }]
29
+ VkGeometryNV = struct ["VkStructureType sType",
30
+ "void * pNext",
31
+ "VkGeometryTypeNV geometryType",
32
+ { "geometry" => VkGeometryDataNV },
33
+ "VkGeometryFlagsNV flags"]
34
+ VkAccelerationStructureInfoNV = struct ["VkStructureType sType",
35
+ "void * pNext",
36
+ "VkAccelerationStructureTypeNV type",
37
+ "VkBuildAccelerationStructureFlagsNV flags",
38
+ "uint32_t instanceCount",
39
+ "uint32_t geometryCount",
40
+ "VkGeometryNV * pGeometries"]
41
+ VkAccelerationStructureCreateInfoNV = struct ["VkStructureType sType",
42
+ "void * pNext",
43
+ "VkDeviceSize compactedSize",
44
+ { "info" => VkAccelerationStructureInfoNV }]
45
+
46
+ VkAccelerationStructureMemoryRequirementsInfoNV = struct ["VkStructureType sType",
47
+ "void * pNext",
48
+ "VkAccelerationStructureMemoryRequirementsTypeNV type",
49
+ "VkAccelerationStructureNV accelerationStructure"]
50
+
51
+ VkAcquireNextImageInfoKHR = struct ["VkStructureType sType",
52
+ "void * pNext",
53
+ "VkSwapchainKHR swapchain",
54
+ "uint64_t timeout",
55
+ "VkSemaphore semaphore",
56
+ "VkFence fence",
57
+ "uint32_t deviceMask"]
58
+
59
+ VkAllocationCallbacks = struct ["void * pUserData",
60
+ "PFN_vkAllocationFunction pfnAllocation",
61
+ "PFN_vkReallocationFunction pfnReallocation",
62
+ "PFN_vkFreeFunction pfnFree",
63
+ "PFN_vkInternalAllocationNotification pfnInternalAllocation",
64
+ "PFN_vkInternalFreeNotification pfnInternalFree"]
65
+
66
+ VkComponentMapping = struct ["VkComponentSwizzle r",
67
+ "VkComponentSwizzle g",
68
+ "VkComponentSwizzle b",
69
+ "VkComponentSwizzle a"]
70
+ VkAndroidHardwareBufferFormatPropertiesANDROID = struct ["VkStructureType sType",
71
+ "void * pNext",
72
+ "VkFormat format",
73
+ "uint64_t externalFormat",
74
+ "VkFormatFeatureFlags formatFeatures",
75
+ { "samplerYcbcrConversionComponents" => VkComponentMapping },
76
+ "VkSamplerYcbcrModelConversion suggestedYcbcrModel",
77
+ "VkSamplerYcbcrRange suggestedYcbcrRange",
78
+ "VkChromaLocation suggestedXChromaOffset",
79
+ "VkChromaLocation suggestedYChromaOffset"]
80
+
81
+ VkAndroidHardwareBufferPropertiesANDROID = struct ["VkStructureType sType",
82
+ "void * pNext",
83
+ "VkDeviceSize allocationSize",
84
+ "uint32_t memoryTypeBits"]
85
+
86
+ VkAndroidHardwareBufferUsageANDROID = struct ["VkStructureType sType",
87
+ "void * pNext",
88
+ "uint64_t androidHardwareBufferUsage"]
89
+
90
+ VkAndroidSurfaceCreateInfoKHR = struct ["VkStructureType sType",
91
+ "void * pNext",
92
+ "VkAndroidSurfaceCreateFlagsKHR flags",
93
+ "ANativeWindow * window"]
94
+
95
+ VkApplicationInfo = struct ["VkStructureType sType",
96
+ "void * pNext",
97
+ "char * pApplicationName",
98
+ "uint32_t applicationVersion",
99
+ "char * pEngineName",
100
+ "uint32_t engineVersion",
101
+ "uint32_t apiVersion"]
102
+
103
+ VkAttachmentDescription = struct ["VkAttachmentDescriptionFlags flags",
104
+ "VkFormat format",
105
+ "VkSampleCountFlagBits samples",
106
+ "VkAttachmentLoadOp loadOp",
107
+ "VkAttachmentStoreOp storeOp",
108
+ "VkAttachmentLoadOp stencilLoadOp",
109
+ "VkAttachmentStoreOp stencilStoreOp",
110
+ "VkImageLayout initialLayout",
111
+ "VkImageLayout finalLayout"]
112
+
113
+ VkAttachmentDescription2KHR = struct ["VkStructureType sType",
114
+ "void * pNext",
115
+ "VkAttachmentDescriptionFlags flags",
116
+ "VkFormat format",
117
+ "VkSampleCountFlagBits samples",
118
+ "VkAttachmentLoadOp loadOp",
119
+ "VkAttachmentStoreOp storeOp",
120
+ "VkAttachmentLoadOp stencilLoadOp",
121
+ "VkAttachmentStoreOp stencilStoreOp",
122
+ "VkImageLayout initialLayout",
123
+ "VkImageLayout finalLayout"]
124
+
125
+ VkAttachmentReference = struct ["uint32_t attachment",
126
+ "VkImageLayout layout"]
127
+
128
+ VkAttachmentReference2KHR = struct ["VkStructureType sType",
129
+ "void * pNext",
130
+ "uint32_t attachment",
131
+ "VkImageLayout layout",
132
+ "VkImageAspectFlags aspectMask"]
133
+
134
+ VkExtent2D = struct ["uint32_t width",
135
+ "uint32_t height"]
136
+ VkSampleLocationEXT = struct ["float x",
137
+ "float y"]
138
+ VkSampleLocationsInfoEXT = struct ["VkStructureType sType",
139
+ "void * pNext",
140
+ "VkSampleCountFlagBits sampleLocationsPerPixel",
141
+ { "sampleLocationGridSize" => VkExtent2D },
142
+ "uint32_t sampleLocationsCount",
143
+ "VkSampleLocationEXT * pSampleLocations"]
144
+ VkAttachmentSampleLocationsEXT = struct ["uint32_t attachmentIndex",
145
+ { "sampleLocationsInfo" => VkSampleLocationsInfoEXT }]
146
+
147
+ VkBaseInStructure = struct ["VkStructureType sType",
148
+ "VkBaseInStructure * pNext"]
149
+
150
+ VkBaseOutStructure = struct ["VkStructureType sType",
151
+ "VkBaseOutStructure * pNext"]
152
+
153
+ VkBindAccelerationStructureMemoryInfoNV = struct ["VkStructureType sType",
154
+ "void * pNext",
155
+ "VkAccelerationStructureNV accelerationStructure",
156
+ "VkDeviceMemory memory",
157
+ "VkDeviceSize memoryOffset",
158
+ "uint32_t deviceIndexCount",
159
+ "uint32_t * pDeviceIndices"]
160
+
161
+ VkBindBufferMemoryDeviceGroupInfo = struct ["VkStructureType sType",
162
+ "void * pNext",
163
+ "uint32_t deviceIndexCount",
164
+ "uint32_t * pDeviceIndices"]
165
+
166
+ VkBindBufferMemoryDeviceGroupInfoKHR = VkBindBufferMemoryDeviceGroupInfo
167
+
168
+ VkBindBufferMemoryInfo = struct ["VkStructureType sType",
169
+ "void * pNext",
170
+ "VkBuffer buffer",
171
+ "VkDeviceMemory memory",
172
+ "VkDeviceSize memoryOffset"]
173
+
174
+ VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo
175
+
176
+ VkOffset2D = struct ["int32_t x",
177
+ "int32_t y"]
178
+ VkRect2D = struct [{ "offset" => VkOffset2D },
179
+ { "extent" => VkExtent2D }]
180
+ VkBindImageMemoryDeviceGroupInfo = struct ["VkStructureType sType",
181
+ "void * pNext",
182
+ "uint32_t deviceIndexCount",
183
+ "uint32_t * pDeviceIndices",
184
+ "uint32_t splitInstanceBindRegionCount",
185
+ "VkRect2D * pSplitInstanceBindRegions"]
186
+
187
+ VkBindImageMemoryDeviceGroupInfoKHR = VkBindImageMemoryDeviceGroupInfo
188
+
189
+ VkBindImageMemoryInfo = struct ["VkStructureType sType",
190
+ "void * pNext",
191
+ "VkImage image",
192
+ "VkDeviceMemory memory",
193
+ "VkDeviceSize memoryOffset"]
194
+
195
+ VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo
196
+
197
+ VkBindImageMemorySwapchainInfoKHR = struct ["VkStructureType sType",
198
+ "void * pNext",
199
+ "VkSwapchainKHR swapchain",
200
+ "uint32_t imageIndex"]
201
+
202
+ VkBindImagePlaneMemoryInfo = struct ["VkStructureType sType",
203
+ "void * pNext",
204
+ "VkImageAspectFlagBits planeAspect"]
205
+
206
+ VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo
207
+
208
+ VkSparseMemoryBind = struct ["VkDeviceSize resourceOffset",
209
+ "VkDeviceSize size",
210
+ "VkDeviceMemory memory",
211
+ "VkDeviceSize memoryOffset",
212
+ "VkSparseMemoryBindFlags flags"]
213
+ VkSparseBufferMemoryBindInfo = struct ["VkBuffer buffer",
214
+ "uint32_t bindCount",
215
+ "VkSparseMemoryBind * pBinds"]
216
+ VkSparseImageOpaqueMemoryBindInfo = struct ["VkImage image",
217
+ "uint32_t bindCount",
218
+ "VkSparseMemoryBind * pBinds"]
219
+ VkImageSubresource = struct ["VkImageAspectFlags aspectMask",
220
+ "uint32_t mipLevel",
221
+ "uint32_t arrayLayer"]
222
+ VkOffset3D = struct ["int32_t x",
223
+ "int32_t y",
224
+ "int32_t z"]
225
+ VkExtent3D = struct ["uint32_t width",
226
+ "uint32_t height",
227
+ "uint32_t depth"]
228
+ VkSparseImageMemoryBind = struct [{ "subresource" => VkImageSubresource },
229
+ { "offset" => VkOffset3D },
230
+ { "extent" => VkExtent3D },
231
+ "VkDeviceMemory memory",
232
+ "VkDeviceSize memoryOffset",
233
+ "VkSparseMemoryBindFlags flags"]
234
+ VkSparseImageMemoryBindInfo = struct ["VkImage image",
235
+ "uint32_t bindCount",
236
+ "VkSparseImageMemoryBind * pBinds"]
237
+ VkBindSparseInfo = struct ["VkStructureType sType",
238
+ "void * pNext",
239
+ "uint32_t waitSemaphoreCount",
240
+ "VkSemaphore * pWaitSemaphores",
241
+ "uint32_t bufferBindCount",
242
+ "VkSparseBufferMemoryBindInfo * pBufferBinds",
243
+ "uint32_t imageOpaqueBindCount",
244
+ "VkSparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds",
245
+ "uint32_t imageBindCount",
246
+ "VkSparseImageMemoryBindInfo * pImageBinds",
247
+ "uint32_t signalSemaphoreCount",
248
+ "VkSemaphore * pSignalSemaphores"]
249
+
250
+ VkBufferCopy = struct ["VkDeviceSize srcOffset",
251
+ "VkDeviceSize dstOffset",
252
+ "VkDeviceSize size"]
253
+
254
+ VkBufferCreateInfo = struct ["VkStructureType sType",
255
+ "void * pNext",
256
+ "VkBufferCreateFlags flags",
257
+ "VkDeviceSize size",
258
+ "VkBufferUsageFlags usage",
259
+ "VkSharingMode sharingMode",
260
+ "uint32_t queueFamilyIndexCount",
261
+ "uint32_t * pQueueFamilyIndices"]
262
+
263
+ VkImageSubresourceLayers = struct ["VkImageAspectFlags aspectMask",
264
+ "uint32_t mipLevel",
265
+ "uint32_t baseArrayLayer",
266
+ "uint32_t layerCount"]
267
+ VkBufferImageCopy = struct ["VkDeviceSize bufferOffset",
268
+ "uint32_t bufferRowLength",
269
+ "uint32_t bufferImageHeight",
270
+ { "imageSubresource" => VkImageSubresourceLayers },
271
+ { "imageOffset" => VkOffset3D },
272
+ { "imageExtent" => VkExtent3D }]
273
+
274
+ VkBufferMemoryBarrier = struct ["VkStructureType sType",
275
+ "void * pNext",
276
+ "VkAccessFlags srcAccessMask",
277
+ "VkAccessFlags dstAccessMask",
278
+ "uint32_t srcQueueFamilyIndex",
279
+ "uint32_t dstQueueFamilyIndex",
280
+ "VkBuffer buffer",
281
+ "VkDeviceSize offset",
282
+ "VkDeviceSize size"]
283
+
284
+ VkBufferMemoryRequirementsInfo2 = struct ["VkStructureType sType",
285
+ "void * pNext",
286
+ "VkBuffer buffer"]
287
+
288
+ VkBufferMemoryRequirementsInfo2KHR = VkBufferMemoryRequirementsInfo2
289
+
290
+ VkBufferViewCreateInfo = struct ["VkStructureType sType",
291
+ "void * pNext",
292
+ "VkBufferViewCreateFlags flags",
293
+ "VkBuffer buffer",
294
+ "VkFormat format",
295
+ "VkDeviceSize offset",
296
+ "VkDeviceSize range"]
297
+
298
+ VkCalibratedTimestampInfoEXT = struct ["VkStructureType sType",
299
+ "void * pNext",
300
+ "VkTimeDomainEXT timeDomain"]
301
+
302
+ VkCheckpointDataNV = struct ["VkStructureType sType",
303
+ "void * pNext",
304
+ "VkPipelineStageFlagBits stage",
305
+ "void * pCheckpointMarker"]
306
+
307
+ # Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
308
+ VkClearColorValue = union ["float float32 [4]",
309
+ "int32_t int32 [4]",
310
+ "uint32_t uint32 [4]"]
311
+ VkClearDepthStencilValue = struct ["float depth",
312
+ "uint32_t stencil"]
313
+ # Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.
314
+ VkClearValue = union [{ "color" => VkClearColorValue },
315
+ { "depthStencil" => VkClearDepthStencilValue }]
316
+ VkClearAttachment = struct ["VkImageAspectFlags aspectMask",
317
+ "uint32_t colorAttachment",
318
+ { "clearValue" => VkClearValue }]
319
+
320
+ VkClearRect = struct [{ "rect" => VkRect2D },
321
+ "uint32_t baseArrayLayer",
322
+ "uint32_t layerCount"]
323
+
324
+ VkIndirectCommandsTokenNVX = struct ["VkIndirectCommandsTokenTypeNVX tokenType",
325
+ "VkBuffer buffer",
326
+ "VkDeviceSize offset"]
327
+ VkCmdProcessCommandsInfoNVX = struct ["VkStructureType sType",
328
+ "void * pNext",
329
+ "VkObjectTableNVX objectTable",
330
+ "VkIndirectCommandsLayoutNVX indirectCommandsLayout",
331
+ "uint32_t indirectCommandsTokenCount",
332
+ "VkIndirectCommandsTokenNVX * pIndirectCommandsTokens",
333
+ "uint32_t maxSequencesCount",
334
+ "VkCommandBuffer targetCommandBuffer",
335
+ "VkBuffer sequencesCountBuffer",
336
+ "VkDeviceSize sequencesCountOffset",
337
+ "VkBuffer sequencesIndexBuffer",
338
+ "VkDeviceSize sequencesIndexOffset"]
339
+
340
+ VkCmdReserveSpaceForCommandsInfoNVX = struct ["VkStructureType sType",
341
+ "void * pNext",
342
+ "VkObjectTableNVX objectTable",
343
+ "VkIndirectCommandsLayoutNVX indirectCommandsLayout",
344
+ "uint32_t maxSequencesCount"]
345
+
346
+ VkCoarseSampleLocationNV = struct ["uint32_t pixelX",
347
+ "uint32_t pixelY",
348
+ "uint32_t sample"]
349
+
350
+ VkCoarseSampleOrderCustomNV = struct ["VkShadingRatePaletteEntryNV shadingRate",
351
+ "uint32_t sampleCount",
352
+ "uint32_t sampleLocationCount",
353
+ "VkCoarseSampleLocationNV * pSampleLocations"]
354
+
355
+ VkCommandBufferAllocateInfo = struct ["VkStructureType sType",
356
+ "void * pNext",
357
+ "VkCommandPool commandPool",
358
+ "VkCommandBufferLevel level",
359
+ "uint32_t commandBufferCount"]
360
+
361
+ VkCommandBufferInheritanceInfo = struct ["VkStructureType sType",
362
+ "void * pNext",
363
+ "VkRenderPass renderPass",
364
+ "uint32_t subpass",
365
+ "VkFramebuffer framebuffer",
366
+ "VkBool32 occlusionQueryEnable",
367
+ "VkQueryControlFlags queryFlags",
368
+ "VkQueryPipelineStatisticFlags pipelineStatistics"]
369
+ VkCommandBufferBeginInfo = struct ["VkStructureType sType",
370
+ "void * pNext",
371
+ "VkCommandBufferUsageFlags flags",
372
+ "VkCommandBufferInheritanceInfo * pInheritanceInfo"]
373
+
374
+ VkCommandBufferInheritanceConditionalRenderingInfoEXT = struct ["VkStructureType sType",
375
+ "void * pNext",
376
+ "VkBool32 conditionalRenderingEnable"]
377
+
378
+ VkCommandPoolCreateInfo = struct ["VkStructureType sType",
379
+ "void * pNext",
380
+ "VkCommandPoolCreateFlags flags",
381
+ "uint32_t queueFamilyIndex"]
382
+
383
+ VkSpecializationMapEntry = struct ["uint32_t constantID",
384
+ "uint32_t offset",
385
+ "size_t size"]
386
+ VkSpecializationInfo = struct ["uint32_t mapEntryCount",
387
+ "VkSpecializationMapEntry * pMapEntries",
388
+ "size_t dataSize",
389
+ "void * pData"]
390
+ VkPipelineShaderStageCreateInfo = struct ["VkStructureType sType",
391
+ "void * pNext",
392
+ "VkPipelineShaderStageCreateFlags flags",
393
+ "VkShaderStageFlagBits stage",
394
+ "VkShaderModule module",
395
+ "char * pName",
396
+ "VkSpecializationInfo * pSpecializationInfo"]
397
+ VkComputePipelineCreateInfo = struct ["VkStructureType sType",
398
+ "void * pNext",
399
+ "VkPipelineCreateFlags flags",
400
+ { "stage" => VkPipelineShaderStageCreateInfo },
401
+ "VkPipelineLayout layout",
402
+ "VkPipeline basePipelineHandle",
403
+ "int32_t basePipelineIndex"]
404
+
405
+ VkConditionalRenderingBeginInfoEXT = struct ["VkStructureType sType",
406
+ "void * pNext",
407
+ "VkBuffer buffer",
408
+ "VkDeviceSize offset",
409
+ "VkConditionalRenderingFlagsEXT flags"]
410
+
411
+ VkConformanceVersionKHR = struct ["uint8_t major",
412
+ "uint8_t minor",
413
+ "uint8_t subminor",
414
+ "uint8_t patch"]
415
+
416
+ VkCopyDescriptorSet = struct ["VkStructureType sType",
417
+ "void * pNext",
418
+ "VkDescriptorSet srcSet",
419
+ "uint32_t srcBinding",
420
+ "uint32_t srcArrayElement",
421
+ "VkDescriptorSet dstSet",
422
+ "uint32_t dstBinding",
423
+ "uint32_t dstArrayElement",
424
+ "uint32_t descriptorCount"]
425
+
426
+ VkD3D12FenceSubmitInfoKHR = struct ["VkStructureType sType",
427
+ "void * pNext",
428
+ "uint32_t waitSemaphoreValuesCount",
429
+ "uint64_t * pWaitSemaphoreValues",
430
+ "uint32_t signalSemaphoreValuesCount",
431
+ "uint64_t * pSignalSemaphoreValues"]
432
+
433
+ VkDebugMarkerMarkerInfoEXT = struct ["VkStructureType sType",
434
+ "void * pNext",
435
+ "char * pMarkerName",
436
+ "float color [4]"]
437
+
438
+ VkDebugMarkerObjectNameInfoEXT = struct ["VkStructureType sType",
439
+ "void * pNext",
440
+ "VkDebugReportObjectTypeEXT objectType",
441
+ "uint64_t object",
442
+ "char * pObjectName"]
443
+
444
+ VkDebugMarkerObjectTagInfoEXT = struct ["VkStructureType sType",
445
+ "void * pNext",
446
+ "VkDebugReportObjectTypeEXT objectType",
447
+ "uint64_t object",
448
+ "uint64_t tagName",
449
+ "size_t tagSize",
450
+ "void * pTag"]
451
+
452
+ VkDebugReportCallbackCreateInfoEXT = struct ["VkStructureType sType",
453
+ "void * pNext",
454
+ "VkDebugReportFlagsEXT flags",
455
+ "PFN_vkDebugReportCallbackEXT pfnCallback",
456
+ "void * pUserData"]
457
+
458
+ VkDebugUtilsLabelEXT = struct ["VkStructureType sType",
459
+ "void * pNext",
460
+ "char * pLabelName",
461
+ "float color [4]"]
462
+
463
+ VkDebugUtilsObjectNameInfoEXT = struct ["VkStructureType sType",
464
+ "void * pNext",
465
+ "VkObjectType objectType",
466
+ "uint64_t objectHandle",
467
+ "char * pObjectName"]
468
+ VkDebugUtilsMessengerCallbackDataEXT = struct ["VkStructureType sType",
469
+ "void * pNext",
470
+ "VkDebugUtilsMessengerCallbackDataFlagsEXT flags",
471
+ "char * pMessageIdName",
472
+ "int32_t messageIdNumber",
473
+ "char * pMessage",
474
+ "uint32_t queueLabelCount",
475
+ "VkDebugUtilsLabelEXT * pQueueLabels",
476
+ "uint32_t cmdBufLabelCount",
477
+ "VkDebugUtilsLabelEXT * pCmdBufLabels",
478
+ "uint32_t objectCount",
479
+ "VkDebugUtilsObjectNameInfoEXT * pObjects"]
480
+
481
+ VkDebugUtilsMessengerCreateInfoEXT = struct ["VkStructureType sType",
482
+ "void * pNext",
483
+ "VkDebugUtilsMessengerCreateFlagsEXT flags",
484
+ "VkDebugUtilsMessageSeverityFlagsEXT messageSeverity",
485
+ "VkDebugUtilsMessageTypeFlagsEXT messageType",
486
+ "PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback",
487
+ "void * pUserData"]
488
+
489
+ VkDebugUtilsObjectTagInfoEXT = struct ["VkStructureType sType",
490
+ "void * pNext",
491
+ "VkObjectType objectType",
492
+ "uint64_t objectHandle",
493
+ "uint64_t tagName",
494
+ "size_t tagSize",
495
+ "void * pTag"]
496
+
497
+ VkDedicatedAllocationBufferCreateInfoNV = struct ["VkStructureType sType",
498
+ "void * pNext",
499
+ "VkBool32 dedicatedAllocation"]
500
+
501
+ VkDedicatedAllocationImageCreateInfoNV = struct ["VkStructureType sType",
502
+ "void * pNext",
503
+ "VkBool32 dedicatedAllocation"]
504
+
505
+ VkDedicatedAllocationMemoryAllocateInfoNV = struct ["VkStructureType sType",
506
+ "void * pNext",
507
+ "VkImage image",
508
+ "VkBuffer buffer"]
509
+
510
+ VkDescriptorBufferInfo = struct ["VkBuffer buffer",
511
+ "VkDeviceSize offset",
512
+ "VkDeviceSize range"]
513
+
514
+ VkDescriptorImageInfo = struct ["VkSampler sampler",
515
+ "VkImageView imageView",
516
+ "VkImageLayout imageLayout"]
517
+
518
+ VkDescriptorPoolSize = struct ["VkDescriptorType type",
519
+ "uint32_t descriptorCount"]
520
+ VkDescriptorPoolCreateInfo = struct ["VkStructureType sType",
521
+ "void * pNext",
522
+ "VkDescriptorPoolCreateFlags flags",
523
+ "uint32_t maxSets",
524
+ "uint32_t poolSizeCount",
525
+ "VkDescriptorPoolSize * pPoolSizes"]
526
+
527
+ VkDescriptorPoolInlineUniformBlockCreateInfoEXT = struct ["VkStructureType sType",
528
+ "void * pNext",
529
+ "uint32_t maxInlineUniformBlockBindings"]
530
+
531
+ VkDescriptorSetAllocateInfo = struct ["VkStructureType sType",
532
+ "void * pNext",
533
+ "VkDescriptorPool descriptorPool",
534
+ "uint32_t descriptorSetCount",
535
+ "VkDescriptorSetLayout * pSetLayouts"]
536
+
537
+ VkDescriptorSetLayoutBinding = struct ["uint32_t binding",
538
+ "VkDescriptorType descriptorType",
539
+ "uint32_t descriptorCount",
540
+ "VkShaderStageFlags stageFlags",
541
+ "VkSampler * pImmutableSamplers"]
542
+
543
+ VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = struct ["VkStructureType sType",
544
+ "void * pNext",
545
+ "uint32_t bindingCount",
546
+ "VkDescriptorBindingFlagsEXT * pBindingFlags"]
547
+
548
+ VkDescriptorSetLayoutCreateInfo = struct ["VkStructureType sType",
549
+ "void * pNext",
550
+ "VkDescriptorSetLayoutCreateFlags flags",
551
+ "uint32_t bindingCount",
552
+ "VkDescriptorSetLayoutBinding * pBindings"]
553
+
554
+ VkDescriptorSetLayoutSupport = struct ["VkStructureType sType",
555
+ "void * pNext",
556
+ "VkBool32 supported"]
557
+
558
+ VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport
559
+
560
+ VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = struct ["VkStructureType sType",
561
+ "void * pNext",
562
+ "uint32_t descriptorSetCount",
563
+ "uint32_t * pDescriptorCounts"]
564
+
565
+ VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = struct ["VkStructureType sType",
566
+ "void * pNext",
567
+ "uint32_t maxVariableDescriptorCount"]
568
+
569
+ VkDescriptorUpdateTemplateEntry = struct ["uint32_t dstBinding",
570
+ "uint32_t dstArrayElement",
571
+ "uint32_t descriptorCount",
572
+ "VkDescriptorType descriptorType",
573
+ "size_t offset",
574
+ "size_t stride"]
575
+ VkDescriptorUpdateTemplateCreateInfo = struct ["VkStructureType sType",
576
+ "void * pNext",
577
+ "VkDescriptorUpdateTemplateCreateFlags flags",
578
+ "uint32_t descriptorUpdateEntryCount",
579
+ "VkDescriptorUpdateTemplateEntry * pDescriptorUpdateEntries",
580
+ "VkDescriptorUpdateTemplateType templateType",
581
+ "VkDescriptorSetLayout descriptorSetLayout",
582
+ "VkPipelineBindPoint pipelineBindPoint",
583
+ "VkPipelineLayout pipelineLayout",
584
+ "uint32_t set"]
585
+
586
+ VkDescriptorUpdateTemplateCreateInfoKHR = VkDescriptorUpdateTemplateCreateInfo
587
+
588
+ VkDescriptorUpdateTemplateEntryKHR = VkDescriptorUpdateTemplateEntry
589
+
590
+ VkDeviceQueueCreateInfo = struct ["VkStructureType sType",
591
+ "void * pNext",
592
+ "VkDeviceQueueCreateFlags flags",
593
+ "uint32_t queueFamilyIndex",
594
+ "uint32_t queueCount",
595
+ "float * pQueuePriorities"]
596
+ VkPhysicalDeviceFeatures = struct ["VkBool32 robustBufferAccess",
597
+ "VkBool32 fullDrawIndexUint32",
598
+ "VkBool32 imageCubeArray",
599
+ "VkBool32 independentBlend",
600
+ "VkBool32 geometryShader",
601
+ "VkBool32 tessellationShader",
602
+ "VkBool32 sampleRateShading",
603
+ "VkBool32 dualSrcBlend",
604
+ "VkBool32 logicOp",
605
+ "VkBool32 multiDrawIndirect",
606
+ "VkBool32 drawIndirectFirstInstance",
607
+ "VkBool32 depthClamp",
608
+ "VkBool32 depthBiasClamp",
609
+ "VkBool32 fillModeNonSolid",
610
+ "VkBool32 depthBounds",
611
+ "VkBool32 wideLines",
612
+ "VkBool32 largePoints",
613
+ "VkBool32 alphaToOne",
614
+ "VkBool32 multiViewport",
615
+ "VkBool32 samplerAnisotropy",
616
+ "VkBool32 textureCompressionETC2",
617
+ "VkBool32 textureCompressionASTC_LDR",
618
+ "VkBool32 textureCompressionBC",
619
+ "VkBool32 occlusionQueryPrecise",
620
+ "VkBool32 pipelineStatisticsQuery",
621
+ "VkBool32 vertexPipelineStoresAndAtomics",
622
+ "VkBool32 fragmentStoresAndAtomics",
623
+ "VkBool32 shaderTessellationAndGeometryPointSize",
624
+ "VkBool32 shaderImageGatherExtended",
625
+ "VkBool32 shaderStorageImageExtendedFormats",
626
+ "VkBool32 shaderStorageImageMultisample",
627
+ "VkBool32 shaderStorageImageReadWithoutFormat",
628
+ "VkBool32 shaderStorageImageWriteWithoutFormat",
629
+ "VkBool32 shaderUniformBufferArrayDynamicIndexing",
630
+ "VkBool32 shaderSampledImageArrayDynamicIndexing",
631
+ "VkBool32 shaderStorageBufferArrayDynamicIndexing",
632
+ "VkBool32 shaderStorageImageArrayDynamicIndexing",
633
+ "VkBool32 shaderClipDistance",
634
+ "VkBool32 shaderCullDistance",
635
+ "VkBool32 shaderFloat64",
636
+ "VkBool32 shaderInt64",
637
+ "VkBool32 shaderInt16",
638
+ "VkBool32 shaderResourceResidency",
639
+ "VkBool32 shaderResourceMinLod",
640
+ "VkBool32 sparseBinding",
641
+ "VkBool32 sparseResidencyBuffer",
642
+ "VkBool32 sparseResidencyImage2D",
643
+ "VkBool32 sparseResidencyImage3D",
644
+ "VkBool32 sparseResidency2Samples",
645
+ "VkBool32 sparseResidency4Samples",
646
+ "VkBool32 sparseResidency8Samples",
647
+ "VkBool32 sparseResidency16Samples",
648
+ "VkBool32 sparseResidencyAliased",
649
+ "VkBool32 variableMultisampleRate",
650
+ "VkBool32 inheritedQueries"]
651
+ VkDeviceCreateInfo = struct ["VkStructureType sType",
652
+ "void * pNext",
653
+ "VkDeviceCreateFlags flags",
654
+ "uint32_t queueCreateInfoCount",
655
+ "VkDeviceQueueCreateInfo * pQueueCreateInfos",
656
+ "uint32_t enabledLayerCount",
657
+ "char * ppEnabledLayerNames",
658
+ "uint32_t enabledExtensionCount",
659
+ "char * ppEnabledExtensionNames",
660
+ "VkPhysicalDeviceFeatures * pEnabledFeatures"]
661
+
662
+ VkDeviceEventInfoEXT = struct ["VkStructureType sType",
663
+ "void * pNext",
664
+ "VkDeviceEventTypeEXT deviceEvent"]
665
+
666
+ VkDeviceGeneratedCommandsFeaturesNVX = struct ["VkStructureType sType",
667
+ "void * pNext",
668
+ "VkBool32 computeBindingPointSupport"]
669
+
670
+ VkDeviceGeneratedCommandsLimitsNVX = struct ["VkStructureType sType",
671
+ "void * pNext",
672
+ "uint32_t maxIndirectCommandsLayoutTokenCount",
673
+ "uint32_t maxObjectEntryCounts",
674
+ "uint32_t minSequenceCountBufferOffsetAlignment",
675
+ "uint32_t minSequenceIndexBufferOffsetAlignment",
676
+ "uint32_t minCommandsTokenBufferOffsetAlignment"]
677
+
678
+ VkDeviceGroupBindSparseInfo = struct ["VkStructureType sType",
679
+ "void * pNext",
680
+ "uint32_t resourceDeviceIndex",
681
+ "uint32_t memoryDeviceIndex"]
682
+
683
+ VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo
684
+
685
+ VkDeviceGroupCommandBufferBeginInfo = struct ["VkStructureType sType",
686
+ "void * pNext",
687
+ "uint32_t deviceMask"]
688
+
689
+ VkDeviceGroupCommandBufferBeginInfoKHR = VkDeviceGroupCommandBufferBeginInfo
690
+
691
+ VkDeviceGroupDeviceCreateInfo = struct ["VkStructureType sType",
692
+ "void * pNext",
693
+ "uint32_t physicalDeviceCount",
694
+ "VkPhysicalDevice * pPhysicalDevices"]
695
+
696
+ VkDeviceGroupDeviceCreateInfoKHR = VkDeviceGroupDeviceCreateInfo
697
+
698
+ VkDeviceGroupPresentCapabilitiesKHR = struct ["VkStructureType sType",
699
+ "void * pNext",
700
+ "uint32_t presentMask[#{VK_MAX_DEVICE_GROUP_SIZE}]",
701
+ "VkDeviceGroupPresentModeFlagsKHR modes"]
702
+
703
+ VkDeviceGroupPresentInfoKHR = struct ["VkStructureType sType",
704
+ "void * pNext",
705
+ "uint32_t swapchainCount",
706
+ "uint32_t * pDeviceMasks",
707
+ "VkDeviceGroupPresentModeFlagBitsKHR mode"]
708
+
709
+ VkDeviceGroupRenderPassBeginInfo = struct ["VkStructureType sType",
710
+ "void * pNext",
711
+ "uint32_t deviceMask",
712
+ "uint32_t deviceRenderAreaCount",
713
+ "VkRect2D * pDeviceRenderAreas"]
714
+
715
+ VkDeviceGroupRenderPassBeginInfoKHR = VkDeviceGroupRenderPassBeginInfo
716
+
717
+ VkDeviceGroupSubmitInfo = struct ["VkStructureType sType",
718
+ "void * pNext",
719
+ "uint32_t waitSemaphoreCount",
720
+ "uint32_t * pWaitSemaphoreDeviceIndices",
721
+ "uint32_t commandBufferCount",
722
+ "uint32_t * pCommandBufferDeviceMasks",
723
+ "uint32_t signalSemaphoreCount",
724
+ "uint32_t * pSignalSemaphoreDeviceIndices"]
725
+
726
+ VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo
727
+
728
+ VkDeviceGroupSwapchainCreateInfoKHR = struct ["VkStructureType sType",
729
+ "void * pNext",
730
+ "VkDeviceGroupPresentModeFlagsKHR modes"]
731
+
732
+ VkDeviceMemoryOverallocationCreateInfoAMD = struct ["VkStructureType sType",
733
+ "void * pNext",
734
+ "VkMemoryOverallocationBehaviorAMD overallocationBehavior"]
735
+
736
+ VkDeviceQueueGlobalPriorityCreateInfoEXT = struct ["VkStructureType sType",
737
+ "void * pNext",
738
+ "VkQueueGlobalPriorityEXT globalPriority"]
739
+
740
+ VkDeviceQueueInfo2 = struct ["VkStructureType sType",
741
+ "void * pNext",
742
+ "VkDeviceQueueCreateFlags flags",
743
+ "uint32_t queueFamilyIndex",
744
+ "uint32_t queueIndex"]
745
+
746
+ VkDispatchIndirectCommand = struct ["uint32_t x",
747
+ "uint32_t y",
748
+ "uint32_t z"]
749
+
750
+ VkDisplayEventInfoEXT = struct ["VkStructureType sType",
751
+ "void * pNext",
752
+ "VkDisplayEventTypeEXT displayEvent"]
753
+
754
+ VkDisplayModeParametersKHR = struct [{ "visibleRegion" => VkExtent2D },
755
+ "uint32_t refreshRate"]
756
+ VkDisplayModeCreateInfoKHR = struct ["VkStructureType sType",
757
+ "void * pNext",
758
+ "VkDisplayModeCreateFlagsKHR flags",
759
+ { "parameters" => VkDisplayModeParametersKHR }]
760
+
761
+ VkDisplayModePropertiesKHR = struct ["VkDisplayModeKHR displayMode",
762
+ { "parameters" => VkDisplayModeParametersKHR }]
763
+ VkDisplayModeProperties2KHR = struct ["VkStructureType sType",
764
+ "void * pNext",
765
+ { "displayModeProperties" => VkDisplayModePropertiesKHR }]
766
+
767
+ VkDisplayPlaneCapabilitiesKHR = struct ["VkDisplayPlaneAlphaFlagsKHR supportedAlpha",
768
+ { "minSrcPosition" => VkOffset2D },
769
+ { "maxSrcPosition" => VkOffset2D },
770
+ { "minSrcExtent" => VkExtent2D },
771
+ { "maxSrcExtent" => VkExtent2D },
772
+ { "minDstPosition" => VkOffset2D },
773
+ { "maxDstPosition" => VkOffset2D },
774
+ { "minDstExtent" => VkExtent2D },
775
+ { "maxDstExtent" => VkExtent2D }]
776
+ VkDisplayPlaneCapabilities2KHR = struct ["VkStructureType sType",
777
+ "void * pNext",
778
+ { "capabilities" => VkDisplayPlaneCapabilitiesKHR }]
779
+
780
+ VkDisplayPlaneInfo2KHR = struct ["VkStructureType sType",
781
+ "void * pNext",
782
+ "VkDisplayModeKHR mode",
783
+ "uint32_t planeIndex"]
784
+
785
+ VkDisplayPlanePropertiesKHR = struct ["VkDisplayKHR currentDisplay",
786
+ "uint32_t currentStackIndex"]
787
+ VkDisplayPlaneProperties2KHR = struct ["VkStructureType sType",
788
+ "void * pNext",
789
+ { "displayPlaneProperties" => VkDisplayPlanePropertiesKHR }]
790
+
791
+ VkDisplayPowerInfoEXT = struct ["VkStructureType sType",
792
+ "void * pNext",
793
+ "VkDisplayPowerStateEXT powerState"]
794
+
795
+ VkDisplayPresentInfoKHR = struct ["VkStructureType sType",
796
+ "void * pNext",
797
+ { "srcRect" => VkRect2D },
798
+ { "dstRect" => VkRect2D },
799
+ "VkBool32 persistent"]
800
+
801
+ VkDisplayPropertiesKHR = struct ["VkDisplayKHR display",
802
+ "char * displayName",
803
+ { "physicalDimensions" => VkExtent2D },
804
+ { "physicalResolution" => VkExtent2D },
805
+ "VkSurfaceTransformFlagsKHR supportedTransforms",
806
+ "VkBool32 planeReorderPossible",
807
+ "VkBool32 persistentContent"]
808
+ VkDisplayProperties2KHR = struct ["VkStructureType sType",
809
+ "void * pNext",
810
+ { "displayProperties" => VkDisplayPropertiesKHR }]
811
+
812
+ VkDisplaySurfaceCreateInfoKHR = struct ["VkStructureType sType",
813
+ "void * pNext",
814
+ "VkDisplaySurfaceCreateFlagsKHR flags",
815
+ "VkDisplayModeKHR displayMode",
816
+ "uint32_t planeIndex",
817
+ "uint32_t planeStackIndex",
818
+ "VkSurfaceTransformFlagBitsKHR transform",
819
+ "float globalAlpha",
820
+ "VkDisplayPlaneAlphaFlagBitsKHR alphaMode",
821
+ { "imageExtent" => VkExtent2D }]
822
+
823
+ VkDrawIndexedIndirectCommand = struct ["uint32_t indexCount",
824
+ "uint32_t instanceCount",
825
+ "uint32_t firstIndex",
826
+ "int32_t vertexOffset",
827
+ "uint32_t firstInstance"]
828
+
829
+ VkDrawIndirectCommand = struct ["uint32_t vertexCount",
830
+ "uint32_t instanceCount",
831
+ "uint32_t firstVertex",
832
+ "uint32_t firstInstance"]
833
+
834
+ VkDrawMeshTasksIndirectCommandNV = struct ["uint32_t taskCount",
835
+ "uint32_t firstTask"]
836
+
837
+ VkDrmFormatModifierPropertiesEXT = struct ["uint64_t drmFormatModifier",
838
+ "uint32_t drmFormatModifierPlaneCount",
839
+ "VkFormatFeatureFlags drmFormatModifierTilingFeatures"]
840
+
841
+ VkDrmFormatModifierPropertiesListEXT = struct ["VkStructureType sType",
842
+ "void * pNext",
843
+ "uint32_t drmFormatModifierCount",
844
+ "VkDrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties"]
845
+
846
+ VkEventCreateInfo = struct ["VkStructureType sType",
847
+ "void * pNext",
848
+ "VkEventCreateFlags flags"]
849
+
850
+ VkExportFenceCreateInfo = struct ["VkStructureType sType",
851
+ "void * pNext",
852
+ "VkExternalFenceHandleTypeFlags handleTypes"]
853
+
854
+ VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo
855
+
856
+ VkExportFenceWin32HandleInfoKHR = struct ["VkStructureType sType",
857
+ "void * pNext",
858
+ "SECURITY_ATTRIBUTES * pAttributes",
859
+ "DWORD dwAccess",
860
+ "LPCWSTR name"]
861
+
862
+ VkExportMemoryAllocateInfo = struct ["VkStructureType sType",
863
+ "void * pNext",
864
+ "VkExternalMemoryHandleTypeFlags handleTypes"]
865
+
866
+ VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo
867
+
868
+ VkExportMemoryAllocateInfoNV = struct ["VkStructureType sType",
869
+ "void * pNext",
870
+ "VkExternalMemoryHandleTypeFlagsNV handleTypes"]
871
+
872
+ VkExportMemoryWin32HandleInfoKHR = struct ["VkStructureType sType",
873
+ "void * pNext",
874
+ "SECURITY_ATTRIBUTES * pAttributes",
875
+ "DWORD dwAccess",
876
+ "LPCWSTR name"]
877
+
878
+ VkExportMemoryWin32HandleInfoNV = struct ["VkStructureType sType",
879
+ "void * pNext",
880
+ "SECURITY_ATTRIBUTES * pAttributes",
881
+ "DWORD dwAccess"]
882
+
883
+ VkExportSemaphoreCreateInfo = struct ["VkStructureType sType",
884
+ "void * pNext",
885
+ "VkExternalSemaphoreHandleTypeFlags handleTypes"]
886
+
887
+ VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo
888
+
889
+ VkExportSemaphoreWin32HandleInfoKHR = struct ["VkStructureType sType",
890
+ "void * pNext",
891
+ "SECURITY_ATTRIBUTES * pAttributes",
892
+ "DWORD dwAccess",
893
+ "LPCWSTR name"]
894
+
895
+ VkExtensionProperties = struct ["char extensionName[#{VK_MAX_EXTENSION_NAME_SIZE}]",
896
+ "uint32_t specVersion"]
897
+
898
+ VkExternalMemoryProperties = struct ["VkExternalMemoryFeatureFlags externalMemoryFeatures",
899
+ "VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes",
900
+ "VkExternalMemoryHandleTypeFlags compatibleHandleTypes"]
901
+ VkExternalBufferProperties = struct ["VkStructureType sType",
902
+ "void * pNext",
903
+ { "externalMemoryProperties" => VkExternalMemoryProperties }]
904
+
905
+ VkExternalBufferPropertiesKHR = VkExternalBufferProperties
906
+
907
+ VkExternalFenceProperties = struct ["VkStructureType sType",
908
+ "void * pNext",
909
+ "VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes",
910
+ "VkExternalFenceHandleTypeFlags compatibleHandleTypes",
911
+ "VkExternalFenceFeatureFlags externalFenceFeatures"]
912
+
913
+ VkExternalFencePropertiesKHR = VkExternalFenceProperties
914
+
915
+ VkExternalFormatANDROID = struct ["VkStructureType sType",
916
+ "void * pNext",
917
+ "uint64_t externalFormat"]
918
+
919
+ VkExternalImageFormatProperties = struct ["VkStructureType sType",
920
+ "void * pNext",
921
+ { "externalMemoryProperties" => VkExternalMemoryProperties }]
922
+
923
+ VkExternalImageFormatPropertiesKHR = VkExternalImageFormatProperties
924
+
925
+ VkImageFormatProperties = struct [{ "maxExtent" => VkExtent3D },
926
+ "uint32_t maxMipLevels",
927
+ "uint32_t maxArrayLayers",
928
+ "VkSampleCountFlags sampleCounts",
929
+ "VkDeviceSize maxResourceSize"]
930
+ VkExternalImageFormatPropertiesNV = struct [{ "imageFormatProperties" => VkImageFormatProperties },
931
+ "VkExternalMemoryFeatureFlagsNV externalMemoryFeatures",
932
+ "VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes",
933
+ "VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes"]
934
+
935
+ VkExternalMemoryBufferCreateInfo = struct ["VkStructureType sType",
936
+ "void * pNext",
937
+ "VkExternalMemoryHandleTypeFlags handleTypes"]
938
+
939
+ VkExternalMemoryBufferCreateInfoKHR = VkExternalMemoryBufferCreateInfo
940
+
941
+ VkExternalMemoryImageCreateInfo = struct ["VkStructureType sType",
942
+ "void * pNext",
943
+ "VkExternalMemoryHandleTypeFlags handleTypes"]
944
+
945
+ VkExternalMemoryImageCreateInfoKHR = VkExternalMemoryImageCreateInfo
946
+
947
+ VkExternalMemoryImageCreateInfoNV = struct ["VkStructureType sType",
948
+ "void * pNext",
949
+ "VkExternalMemoryHandleTypeFlagsNV handleTypes"]
950
+
951
+ VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties
952
+
953
+ VkExternalSemaphoreProperties = struct ["VkStructureType sType",
954
+ "void * pNext",
955
+ "VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes",
956
+ "VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes",
957
+ "VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures"]
958
+
959
+ VkExternalSemaphorePropertiesKHR = VkExternalSemaphoreProperties
960
+
961
+ VkFenceCreateInfo = struct ["VkStructureType sType",
962
+ "void * pNext",
963
+ "VkFenceCreateFlags flags"]
964
+
965
+ VkFenceGetFdInfoKHR = struct ["VkStructureType sType",
966
+ "void * pNext",
967
+ "VkFence fence",
968
+ "VkExternalFenceHandleTypeFlagBits handleType"]
969
+
970
+ VkFenceGetWin32HandleInfoKHR = struct ["VkStructureType sType",
971
+ "void * pNext",
972
+ "VkFence fence",
973
+ "VkExternalFenceHandleTypeFlagBits handleType"]
974
+
975
+ VkFormatProperties = struct ["VkFormatFeatureFlags linearTilingFeatures",
976
+ "VkFormatFeatureFlags optimalTilingFeatures",
977
+ "VkFormatFeatureFlags bufferFeatures"]
978
+
979
+ VkFormatProperties2 = struct ["VkStructureType sType",
980
+ "void * pNext",
981
+ { "formatProperties" => VkFormatProperties }]
982
+
983
+ VkFormatProperties2KHR = VkFormatProperties2
984
+
985
+ VkFramebufferCreateInfo = struct ["VkStructureType sType",
986
+ "void * pNext",
987
+ "VkFramebufferCreateFlags flags",
988
+ "VkRenderPass renderPass",
989
+ "uint32_t attachmentCount",
990
+ "VkImageView * pAttachments",
991
+ "uint32_t width",
992
+ "uint32_t height",
993
+ "uint32_t layers"]
994
+
995
+ VkVertexInputBindingDescription = struct ["uint32_t binding",
996
+ "uint32_t stride",
997
+ "VkVertexInputRate inputRate"]
998
+ VkVertexInputAttributeDescription = struct ["uint32_t location",
999
+ "uint32_t binding",
1000
+ "VkFormat format",
1001
+ "uint32_t offset"]
1002
+ VkPipelineVertexInputStateCreateInfo = struct ["VkStructureType sType",
1003
+ "void * pNext",
1004
+ "VkPipelineVertexInputStateCreateFlags flags",
1005
+ "uint32_t vertexBindingDescriptionCount",
1006
+ "VkVertexInputBindingDescription * pVertexBindingDescriptions",
1007
+ "uint32_t vertexAttributeDescriptionCount",
1008
+ "VkVertexInputAttributeDescription * pVertexAttributeDescriptions"]
1009
+ VkPipelineInputAssemblyStateCreateInfo = struct ["VkStructureType sType",
1010
+ "void * pNext",
1011
+ "VkPipelineInputAssemblyStateCreateFlags flags",
1012
+ "VkPrimitiveTopology topology",
1013
+ "VkBool32 primitiveRestartEnable"]
1014
+ VkPipelineTessellationStateCreateInfo = struct ["VkStructureType sType",
1015
+ "void * pNext",
1016
+ "VkPipelineTessellationStateCreateFlags flags",
1017
+ "uint32_t patchControlPoints"]
1018
+ VkViewport = struct ["float x",
1019
+ "float y",
1020
+ "float width",
1021
+ "float height",
1022
+ "float minDepth",
1023
+ "float maxDepth"]
1024
+ VkPipelineViewportStateCreateInfo = struct ["VkStructureType sType",
1025
+ "void * pNext",
1026
+ "VkPipelineViewportStateCreateFlags flags",
1027
+ "uint32_t viewportCount",
1028
+ "VkViewport * pViewports",
1029
+ "uint32_t scissorCount",
1030
+ "VkRect2D * pScissors"]
1031
+ VkPipelineRasterizationStateCreateInfo = struct ["VkStructureType sType",
1032
+ "void * pNext",
1033
+ "VkPipelineRasterizationStateCreateFlags flags",
1034
+ "VkBool32 depthClampEnable",
1035
+ "VkBool32 rasterizerDiscardEnable",
1036
+ "VkPolygonMode polygonMode",
1037
+ "VkCullModeFlags cullMode",
1038
+ "VkFrontFace frontFace",
1039
+ "VkBool32 depthBiasEnable",
1040
+ "float depthBiasConstantFactor",
1041
+ "float depthBiasClamp",
1042
+ "float depthBiasSlopeFactor",
1043
+ "float lineWidth"]
1044
+ VkPipelineMultisampleStateCreateInfo = struct ["VkStructureType sType",
1045
+ "void * pNext",
1046
+ "VkPipelineMultisampleStateCreateFlags flags",
1047
+ "VkSampleCountFlagBits rasterizationSamples",
1048
+ "VkBool32 sampleShadingEnable",
1049
+ "float minSampleShading",
1050
+ "VkSampleMask * pSampleMask",
1051
+ "VkBool32 alphaToCoverageEnable",
1052
+ "VkBool32 alphaToOneEnable"]
1053
+ VkStencilOpState = struct ["VkStencilOp failOp",
1054
+ "VkStencilOp passOp",
1055
+ "VkStencilOp depthFailOp",
1056
+ "VkCompareOp compareOp",
1057
+ "uint32_t compareMask",
1058
+ "uint32_t writeMask",
1059
+ "uint32_t reference"]
1060
+ VkPipelineDepthStencilStateCreateInfo = struct ["VkStructureType sType",
1061
+ "void * pNext",
1062
+ "VkPipelineDepthStencilStateCreateFlags flags",
1063
+ "VkBool32 depthTestEnable",
1064
+ "VkBool32 depthWriteEnable",
1065
+ "VkCompareOp depthCompareOp",
1066
+ "VkBool32 depthBoundsTestEnable",
1067
+ "VkBool32 stencilTestEnable",
1068
+ { "front" => VkStencilOpState },
1069
+ { "back" => VkStencilOpState },
1070
+ "float minDepthBounds",
1071
+ "float maxDepthBounds"]
1072
+ VkPipelineColorBlendAttachmentState = struct ["VkBool32 blendEnable",
1073
+ "VkBlendFactor srcColorBlendFactor",
1074
+ "VkBlendFactor dstColorBlendFactor",
1075
+ "VkBlendOp colorBlendOp",
1076
+ "VkBlendFactor srcAlphaBlendFactor",
1077
+ "VkBlendFactor dstAlphaBlendFactor",
1078
+ "VkBlendOp alphaBlendOp",
1079
+ "VkColorComponentFlags colorWriteMask"]
1080
+ VkPipelineColorBlendStateCreateInfo = struct ["VkStructureType sType",
1081
+ "void * pNext",
1082
+ "VkPipelineColorBlendStateCreateFlags flags",
1083
+ "VkBool32 logicOpEnable",
1084
+ "VkLogicOp logicOp",
1085
+ "uint32_t attachmentCount",
1086
+ "VkPipelineColorBlendAttachmentState * pAttachments",
1087
+ "float blendConstants [4]"]
1088
+ VkPipelineDynamicStateCreateInfo = struct ["VkStructureType sType",
1089
+ "void * pNext",
1090
+ "VkPipelineDynamicStateCreateFlags flags",
1091
+ "uint32_t dynamicStateCount",
1092
+ "VkDynamicState * pDynamicStates"]
1093
+ VkGraphicsPipelineCreateInfo = struct ["VkStructureType sType",
1094
+ "void * pNext",
1095
+ "VkPipelineCreateFlags flags",
1096
+ "uint32_t stageCount",
1097
+ "VkPipelineShaderStageCreateInfo * pStages",
1098
+ "VkPipelineVertexInputStateCreateInfo * pVertexInputState",
1099
+ "VkPipelineInputAssemblyStateCreateInfo * pInputAssemblyState",
1100
+ "VkPipelineTessellationStateCreateInfo * pTessellationState",
1101
+ "VkPipelineViewportStateCreateInfo * pViewportState",
1102
+ "VkPipelineRasterizationStateCreateInfo * pRasterizationState",
1103
+ "VkPipelineMultisampleStateCreateInfo * pMultisampleState",
1104
+ "VkPipelineDepthStencilStateCreateInfo * pDepthStencilState",
1105
+ "VkPipelineColorBlendStateCreateInfo * pColorBlendState",
1106
+ "VkPipelineDynamicStateCreateInfo * pDynamicState",
1107
+ "VkPipelineLayout layout",
1108
+ "VkRenderPass renderPass",
1109
+ "uint32_t subpass",
1110
+ "VkPipeline basePipelineHandle",
1111
+ "int32_t basePipelineIndex"]
1112
+
1113
+ # Chromaticity coordinate
1114
+ VkXYColorEXT = struct ["float x",
1115
+ "float y"]
1116
+ VkHdrMetadataEXT = struct ["VkStructureType sType",
1117
+ "void * pNext",
1118
+ { "displayPrimaryRed" => VkXYColorEXT },
1119
+ { "displayPrimaryGreen" => VkXYColorEXT },
1120
+ { "displayPrimaryBlue" => VkXYColorEXT },
1121
+ { "whitePoint" => VkXYColorEXT },
1122
+ "float maxLuminance",
1123
+ "float minLuminance",
1124
+ "float maxContentLightLevel",
1125
+ "float maxFrameAverageLightLevel"]
1126
+
1127
+ VkIOSSurfaceCreateInfoMVK = struct ["VkStructureType sType",
1128
+ "void * pNext",
1129
+ "VkIOSSurfaceCreateFlagsMVK flags",
1130
+ "void * pView"]
1131
+
1132
+ VkImageBlit = struct [{ "srcSubresource" => VkImageSubresourceLayers },
1133
+ { "srcOffsets[2]" => VkOffset3D },
1134
+ { "dstSubresource" => VkImageSubresourceLayers },
1135
+ { "dstOffsets[2]" => VkOffset3D }]
1136
+
1137
+ VkImageCopy = struct [{ "srcSubresource" => VkImageSubresourceLayers },
1138
+ { "srcOffset" => VkOffset3D },
1139
+ { "dstSubresource" => VkImageSubresourceLayers },
1140
+ { "dstOffset" => VkOffset3D },
1141
+ { "extent" => VkExtent3D }]
1142
+
1143
+ VkImageCreateInfo = struct ["VkStructureType sType",
1144
+ "void * pNext",
1145
+ "VkImageCreateFlags flags",
1146
+ "VkImageType imageType",
1147
+ "VkFormat format",
1148
+ { "extent" => VkExtent3D },
1149
+ "uint32_t mipLevels",
1150
+ "uint32_t arrayLayers",
1151
+ "VkSampleCountFlagBits samples",
1152
+ "VkImageTiling tiling",
1153
+ "VkImageUsageFlags usage",
1154
+ "VkSharingMode sharingMode",
1155
+ "uint32_t queueFamilyIndexCount",
1156
+ "uint32_t * pQueueFamilyIndices",
1157
+ "VkImageLayout initialLayout"]
1158
+
1159
+ VkSubresourceLayout = struct ["VkDeviceSize offset",
1160
+ "VkDeviceSize size",
1161
+ "VkDeviceSize rowPitch",
1162
+ "VkDeviceSize arrayPitch",
1163
+ "VkDeviceSize depthPitch"]
1164
+ VkImageDrmFormatModifierExplicitCreateInfoEXT = struct ["VkStructureType sType",
1165
+ "void * pNext",
1166
+ "uint64_t drmFormatModifier",
1167
+ "uint32_t drmFormatModifierPlaneCount",
1168
+ "VkSubresourceLayout * pPlaneLayouts"]
1169
+
1170
+ VkImageDrmFormatModifierListCreateInfoEXT = struct ["VkStructureType sType",
1171
+ "void * pNext",
1172
+ "uint32_t drmFormatModifierCount",
1173
+ "uint64_t * pDrmFormatModifiers"]
1174
+
1175
+ VkImageDrmFormatModifierPropertiesEXT = struct ["VkStructureType sType",
1176
+ "void * pNext",
1177
+ "uint64_t drmFormatModifier"]
1178
+
1179
+ VkImageFormatListCreateInfoKHR = struct ["VkStructureType sType",
1180
+ "void * pNext",
1181
+ "uint32_t viewFormatCount",
1182
+ "VkFormat * pViewFormats"]
1183
+
1184
+ VkImageFormatProperties2 = struct ["VkStructureType sType",
1185
+ "void * pNext",
1186
+ { "imageFormatProperties" => VkImageFormatProperties }]
1187
+
1188
+ VkImageFormatProperties2KHR = VkImageFormatProperties2
1189
+
1190
+ VkImageSubresourceRange = struct ["VkImageAspectFlags aspectMask",
1191
+ "uint32_t baseMipLevel",
1192
+ "uint32_t levelCount",
1193
+ "uint32_t baseArrayLayer",
1194
+ "uint32_t layerCount"]
1195
+ VkImageMemoryBarrier = struct ["VkStructureType sType",
1196
+ "void * pNext",
1197
+ "VkAccessFlags srcAccessMask",
1198
+ "VkAccessFlags dstAccessMask",
1199
+ "VkImageLayout oldLayout",
1200
+ "VkImageLayout newLayout",
1201
+ "uint32_t srcQueueFamilyIndex",
1202
+ "uint32_t dstQueueFamilyIndex",
1203
+ "VkImage image",
1204
+ { "subresourceRange" => VkImageSubresourceRange }]
1205
+
1206
+ VkImageMemoryRequirementsInfo2 = struct ["VkStructureType sType",
1207
+ "void * pNext",
1208
+ "VkImage image"]
1209
+
1210
+ VkImageMemoryRequirementsInfo2KHR = VkImageMemoryRequirementsInfo2
1211
+
1212
+ VkImagePipeSurfaceCreateInfoFUCHSIA = struct ["VkStructureType sType",
1213
+ "void * pNext",
1214
+ "VkImagePipeSurfaceCreateFlagsFUCHSIA flags",
1215
+ "zx_handle_t imagePipeHandle"]
1216
+
1217
+ VkImagePlaneMemoryRequirementsInfo = struct ["VkStructureType sType",
1218
+ "void * pNext",
1219
+ "VkImageAspectFlagBits planeAspect"]
1220
+
1221
+ VkImagePlaneMemoryRequirementsInfoKHR = VkImagePlaneMemoryRequirementsInfo
1222
+
1223
+ VkImageResolve = struct [{ "srcSubresource" => VkImageSubresourceLayers },
1224
+ { "srcOffset" => VkOffset3D },
1225
+ { "dstSubresource" => VkImageSubresourceLayers },
1226
+ { "dstOffset" => VkOffset3D },
1227
+ { "extent" => VkExtent3D }]
1228
+
1229
+ VkImageSparseMemoryRequirementsInfo2 = struct ["VkStructureType sType",
1230
+ "void * pNext",
1231
+ "VkImage image"]
1232
+
1233
+ VkImageSparseMemoryRequirementsInfo2KHR = VkImageSparseMemoryRequirementsInfo2
1234
+
1235
+ VkImageSwapchainCreateInfoKHR = struct ["VkStructureType sType",
1236
+ "void * pNext",
1237
+ "VkSwapchainKHR swapchain"]
1238
+
1239
+ VkImageViewASTCDecodeModeEXT = struct ["VkStructureType sType",
1240
+ "void * pNext",
1241
+ "VkFormat decodeMode"]
1242
+
1243
+ VkImageViewCreateInfo = struct ["VkStructureType sType",
1244
+ "void * pNext",
1245
+ "VkImageViewCreateFlags flags",
1246
+ "VkImage image",
1247
+ "VkImageViewType viewType",
1248
+ "VkFormat format",
1249
+ { "components" => VkComponentMapping },
1250
+ { "subresourceRange" => VkImageSubresourceRange }]
1251
+
1252
+ VkImageViewUsageCreateInfo = struct ["VkStructureType sType",
1253
+ "void * pNext",
1254
+ "VkImageUsageFlags usage"]
1255
+
1256
+ VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo
1257
+
1258
+ VkImportAndroidHardwareBufferInfoANDROID = struct ["VkStructureType sType",
1259
+ "void * pNext",
1260
+ "AHardwareBuffer * buffer"]
1261
+
1262
+ VkImportFenceFdInfoKHR = struct ["VkStructureType sType",
1263
+ "void * pNext",
1264
+ "VkFence fence",
1265
+ "VkFenceImportFlags flags",
1266
+ "VkExternalFenceHandleTypeFlagBits handleType",
1267
+ "int fd"]
1268
+
1269
+ VkImportFenceWin32HandleInfoKHR = struct ["VkStructureType sType",
1270
+ "void * pNext",
1271
+ "VkFence fence",
1272
+ "VkFenceImportFlags flags",
1273
+ "VkExternalFenceHandleTypeFlagBits handleType",
1274
+ "HANDLE handle",
1275
+ "LPCWSTR name"]
1276
+
1277
+ VkImportMemoryFdInfoKHR = struct ["VkStructureType sType",
1278
+ "void * pNext",
1279
+ "VkExternalMemoryHandleTypeFlagBits handleType",
1280
+ "int fd"]
1281
+
1282
+ VkImportMemoryHostPointerInfoEXT = struct ["VkStructureType sType",
1283
+ "void * pNext",
1284
+ "VkExternalMemoryHandleTypeFlagBits handleType",
1285
+ "void * pHostPointer"]
1286
+
1287
+ VkImportMemoryWin32HandleInfoKHR = struct ["VkStructureType sType",
1288
+ "void * pNext",
1289
+ "VkExternalMemoryHandleTypeFlagBits handleType",
1290
+ "HANDLE handle",
1291
+ "LPCWSTR name"]
1292
+
1293
+ VkImportMemoryWin32HandleInfoNV = struct ["VkStructureType sType",
1294
+ "void * pNext",
1295
+ "VkExternalMemoryHandleTypeFlagsNV handleType",
1296
+ "HANDLE handle"]
1297
+
1298
+ VkImportSemaphoreFdInfoKHR = struct ["VkStructureType sType",
1299
+ "void * pNext",
1300
+ "VkSemaphore semaphore",
1301
+ "VkSemaphoreImportFlags flags",
1302
+ "VkExternalSemaphoreHandleTypeFlagBits handleType",
1303
+ "int fd"]
1304
+
1305
+ VkImportSemaphoreWin32HandleInfoKHR = struct ["VkStructureType sType",
1306
+ "void * pNext",
1307
+ "VkSemaphore semaphore",
1308
+ "VkSemaphoreImportFlags flags",
1309
+ "VkExternalSemaphoreHandleTypeFlagBits handleType",
1310
+ "HANDLE handle",
1311
+ "LPCWSTR name"]
1312
+
1313
+ VkIndirectCommandsLayoutTokenNVX = struct ["VkIndirectCommandsTokenTypeNVX tokenType",
1314
+ "uint32_t bindingUnit",
1315
+ "uint32_t dynamicCount",
1316
+ "uint32_t divisor"]
1317
+ VkIndirectCommandsLayoutCreateInfoNVX = struct ["VkStructureType sType",
1318
+ "void * pNext",
1319
+ "VkPipelineBindPoint pipelineBindPoint",
1320
+ "VkIndirectCommandsLayoutUsageFlagsNVX flags",
1321
+ "uint32_t tokenCount",
1322
+ "VkIndirectCommandsLayoutTokenNVX * pTokens"]
1323
+
1324
+ VkInputAttachmentAspectReference = struct ["uint32_t subpass",
1325
+ "uint32_t inputAttachmentIndex",
1326
+ "VkImageAspectFlags aspectMask"]
1327
+
1328
+ VkInputAttachmentAspectReferenceKHR = VkInputAttachmentAspectReference
1329
+
1330
+ VkInstanceCreateInfo = struct ["VkStructureType sType",
1331
+ "void * pNext",
1332
+ "VkInstanceCreateFlags flags",
1333
+ "VkApplicationInfo * pApplicationInfo",
1334
+ "uint32_t enabledLayerCount",
1335
+ "char * ppEnabledLayerNames",
1336
+ "uint32_t enabledExtensionCount",
1337
+ "char * ppEnabledExtensionNames"]
1338
+
1339
+ VkLayerProperties = struct ["char layerName[#{VK_MAX_EXTENSION_NAME_SIZE}]",
1340
+ "uint32_t specVersion",
1341
+ "uint32_t implementationVersion",
1342
+ "char description[#{VK_MAX_DESCRIPTION_SIZE}]"]
1343
+
1344
+ VkMacOSSurfaceCreateInfoMVK = struct ["VkStructureType sType",
1345
+ "void * pNext",
1346
+ "VkMacOSSurfaceCreateFlagsMVK flags",
1347
+ "void * pView"]
1348
+
1349
+ VkMappedMemoryRange = struct ["VkStructureType sType",
1350
+ "void * pNext",
1351
+ "VkDeviceMemory memory",
1352
+ "VkDeviceSize offset",
1353
+ "VkDeviceSize size"]
1354
+
1355
+ VkMemoryAllocateFlagsInfo = struct ["VkStructureType sType",
1356
+ "void * pNext",
1357
+ "VkMemoryAllocateFlags flags",
1358
+ "uint32_t deviceMask"]
1359
+
1360
+ VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo
1361
+
1362
+ VkMemoryAllocateInfo = struct ["VkStructureType sType",
1363
+ "void * pNext",
1364
+ "VkDeviceSize allocationSize",
1365
+ "uint32_t memoryTypeIndex"]
1366
+
1367
+ VkMemoryBarrier = struct ["VkStructureType sType",
1368
+ "void * pNext",
1369
+ "VkAccessFlags srcAccessMask",
1370
+ "VkAccessFlags dstAccessMask"]
1371
+
1372
+ VkMemoryDedicatedAllocateInfo = struct ["VkStructureType sType",
1373
+ "void * pNext",
1374
+ "VkImage image",
1375
+ "VkBuffer buffer"]
1376
+
1377
+ VkMemoryDedicatedAllocateInfoKHR = VkMemoryDedicatedAllocateInfo
1378
+
1379
+ VkMemoryDedicatedRequirements = struct ["VkStructureType sType",
1380
+ "void * pNext",
1381
+ "VkBool32 prefersDedicatedAllocation",
1382
+ "VkBool32 requiresDedicatedAllocation"]
1383
+
1384
+ VkMemoryDedicatedRequirementsKHR = VkMemoryDedicatedRequirements
1385
+
1386
+ VkMemoryFdPropertiesKHR = struct ["VkStructureType sType",
1387
+ "void * pNext",
1388
+ "uint32_t memoryTypeBits"]
1389
+
1390
+ VkMemoryGetAndroidHardwareBufferInfoANDROID = struct ["VkStructureType sType",
1391
+ "void * pNext",
1392
+ "VkDeviceMemory memory"]
1393
+
1394
+ VkMemoryGetFdInfoKHR = struct ["VkStructureType sType",
1395
+ "void * pNext",
1396
+ "VkDeviceMemory memory",
1397
+ "VkExternalMemoryHandleTypeFlagBits handleType"]
1398
+
1399
+ VkMemoryGetWin32HandleInfoKHR = struct ["VkStructureType sType",
1400
+ "void * pNext",
1401
+ "VkDeviceMemory memory",
1402
+ "VkExternalMemoryHandleTypeFlagBits handleType"]
1403
+
1404
+ VkMemoryHeap = struct ["VkDeviceSize size",
1405
+ "VkMemoryHeapFlags flags"]
1406
+
1407
+ VkMemoryHostPointerPropertiesEXT = struct ["VkStructureType sType",
1408
+ "void * pNext",
1409
+ "uint32_t memoryTypeBits"]
1410
+
1411
+ VkMemoryRequirements = struct ["VkDeviceSize size",
1412
+ "VkDeviceSize alignment",
1413
+ "uint32_t memoryTypeBits"]
1414
+
1415
+ VkMemoryRequirements2 = struct ["VkStructureType sType",
1416
+ "void * pNext",
1417
+ { "memoryRequirements" => VkMemoryRequirements }]
1418
+
1419
+ VkMemoryRequirements2KHR = VkMemoryRequirements2
1420
+
1421
+ VkMemoryType = struct ["VkMemoryPropertyFlags propertyFlags",
1422
+ "uint32_t heapIndex"]
1423
+
1424
+ VkMemoryWin32HandlePropertiesKHR = struct ["VkStructureType sType",
1425
+ "void * pNext",
1426
+ "uint32_t memoryTypeBits"]
1427
+
1428
+ VkMultisamplePropertiesEXT = struct ["VkStructureType sType",
1429
+ "void * pNext",
1430
+ { "maxSampleLocationGridSize" => VkExtent2D }]
1431
+
1432
+ VkNativeBufferANDROID = struct ["VkStructureType sType",
1433
+ "void * pNext",
1434
+ "void * handle",
1435
+ "int stride",
1436
+ "int format",
1437
+ "int usage"]
1438
+
1439
+ VkObjectTableCreateInfoNVX = struct ["VkStructureType sType",
1440
+ "void * pNext",
1441
+ "uint32_t objectCount",
1442
+ "VkObjectEntryTypeNVX * pObjectEntryTypes",
1443
+ "uint32_t * pObjectEntryCounts",
1444
+ "VkObjectEntryUsageFlagsNVX * pObjectEntryUsageFlags",
1445
+ "uint32_t maxUniformBuffersPerDescriptor",
1446
+ "uint32_t maxStorageBuffersPerDescriptor",
1447
+ "uint32_t maxStorageImagesPerDescriptor",
1448
+ "uint32_t maxSampledImagesPerDescriptor",
1449
+ "uint32_t maxPipelineLayouts"]
1450
+
1451
+ VkObjectTableDescriptorSetEntryNVX = struct ["VkObjectEntryTypeNVX type",
1452
+ "VkObjectEntryUsageFlagsNVX flags",
1453
+ "VkPipelineLayout pipelineLayout",
1454
+ "VkDescriptorSet descriptorSet"]
1455
+
1456
+ VkObjectTableEntryNVX = struct ["VkObjectEntryTypeNVX type",
1457
+ "VkObjectEntryUsageFlagsNVX flags"]
1458
+
1459
+ VkObjectTableIndexBufferEntryNVX = struct ["VkObjectEntryTypeNVX type",
1460
+ "VkObjectEntryUsageFlagsNVX flags",
1461
+ "VkBuffer buffer",
1462
+ "VkIndexType indexType"]
1463
+
1464
+ VkObjectTablePipelineEntryNVX = struct ["VkObjectEntryTypeNVX type",
1465
+ "VkObjectEntryUsageFlagsNVX flags",
1466
+ "VkPipeline pipeline"]
1467
+
1468
+ VkObjectTablePushConstantEntryNVX = struct ["VkObjectEntryTypeNVX type",
1469
+ "VkObjectEntryUsageFlagsNVX flags",
1470
+ "VkPipelineLayout pipelineLayout",
1471
+ "VkShaderStageFlags stageFlags"]
1472
+
1473
+ VkObjectTableVertexBufferEntryNVX = struct ["VkObjectEntryTypeNVX type",
1474
+ "VkObjectEntryUsageFlagsNVX flags",
1475
+ "VkBuffer buffer"]
1476
+
1477
+ VkPastPresentationTimingGOOGLE = struct ["uint32_t presentID",
1478
+ "uint64_t desiredPresentTime",
1479
+ "uint64_t actualPresentTime",
1480
+ "uint64_t earliestPresentTime",
1481
+ "uint64_t presentMargin"]
1482
+
1483
+ VkPhysicalDevice16BitStorageFeatures = struct ["VkStructureType sType",
1484
+ "void * pNext",
1485
+ "VkBool32 storageBuffer16BitAccess",
1486
+ "VkBool32 uniformAndStorageBuffer16BitAccess",
1487
+ "VkBool32 storagePushConstant16",
1488
+ "VkBool32 storageInputOutput16"]
1489
+
1490
+ VkPhysicalDevice16BitStorageFeaturesKHR = VkPhysicalDevice16BitStorageFeatures
1491
+
1492
+ VkPhysicalDevice8BitStorageFeaturesKHR = struct ["VkStructureType sType",
1493
+ "void * pNext",
1494
+ "VkBool32 storageBuffer8BitAccess",
1495
+ "VkBool32 uniformAndStorageBuffer8BitAccess",
1496
+ "VkBool32 storagePushConstant8"]
1497
+
1498
+ VkPhysicalDeviceASTCDecodeFeaturesEXT = struct ["VkStructureType sType",
1499
+ "void * pNext",
1500
+ "VkBool32 decodeModeSharedExponent"]
1501
+
1502
+ VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = struct ["VkStructureType sType",
1503
+ "void * pNext",
1504
+ "VkBool32 advancedBlendCoherentOperations"]
1505
+
1506
+ VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = struct ["VkStructureType sType",
1507
+ "void * pNext",
1508
+ "uint32_t advancedBlendMaxColorAttachments",
1509
+ "VkBool32 advancedBlendIndependentBlend",
1510
+ "VkBool32 advancedBlendNonPremultipliedSrcColor",
1511
+ "VkBool32 advancedBlendNonPremultipliedDstColor",
1512
+ "VkBool32 advancedBlendCorrelatedOverlap",
1513
+ "VkBool32 advancedBlendAllOperations"]
1514
+
1515
+ VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = struct ["VkStructureType sType",
1516
+ "void * pNext",
1517
+ "VkBool32 computeDerivativeGroupQuads",
1518
+ "VkBool32 computeDerivativeGroupLinear"]
1519
+
1520
+ VkPhysicalDeviceConditionalRenderingFeaturesEXT = struct ["VkStructureType sType",
1521
+ "void * pNext",
1522
+ "VkBool32 conditionalRendering",
1523
+ "VkBool32 inheritedConditionalRendering"]
1524
+
1525
+ VkPhysicalDeviceConservativeRasterizationPropertiesEXT = struct ["VkStructureType sType",
1526
+ "void * pNext",
1527
+ "float primitiveOverestimationSize",
1528
+ "float maxExtraPrimitiveOverestimationSize",
1529
+ "float extraPrimitiveOverestimationSizeGranularity",
1530
+ "VkBool32 primitiveUnderestimation",
1531
+ "VkBool32 conservativePointAndLineRasterization",
1532
+ "VkBool32 degenerateTrianglesRasterized",
1533
+ "VkBool32 degenerateLinesRasterized",
1534
+ "VkBool32 fullyCoveredFragmentShaderInputVariable",
1535
+ "VkBool32 conservativeRasterizationPostDepthCoverage"]
1536
+
1537
+ VkPhysicalDeviceCornerSampledImageFeaturesNV = struct ["VkStructureType sType",
1538
+ "void * pNext",
1539
+ "VkBool32 cornerSampledImage"]
1540
+
1541
+ VkPhysicalDeviceDescriptorIndexingFeaturesEXT = struct ["VkStructureType sType",
1542
+ "void * pNext",
1543
+ "VkBool32 shaderInputAttachmentArrayDynamicIndexing",
1544
+ "VkBool32 shaderUniformTexelBufferArrayDynamicIndexing",
1545
+ "VkBool32 shaderStorageTexelBufferArrayDynamicIndexing",
1546
+ "VkBool32 shaderUniformBufferArrayNonUniformIndexing",
1547
+ "VkBool32 shaderSampledImageArrayNonUniformIndexing",
1548
+ "VkBool32 shaderStorageBufferArrayNonUniformIndexing",
1549
+ "VkBool32 shaderStorageImageArrayNonUniformIndexing",
1550
+ "VkBool32 shaderInputAttachmentArrayNonUniformIndexing",
1551
+ "VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing",
1552
+ "VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing",
1553
+ "VkBool32 descriptorBindingUniformBufferUpdateAfterBind",
1554
+ "VkBool32 descriptorBindingSampledImageUpdateAfterBind",
1555
+ "VkBool32 descriptorBindingStorageImageUpdateAfterBind",
1556
+ "VkBool32 descriptorBindingStorageBufferUpdateAfterBind",
1557
+ "VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind",
1558
+ "VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind",
1559
+ "VkBool32 descriptorBindingUpdateUnusedWhilePending",
1560
+ "VkBool32 descriptorBindingPartiallyBound",
1561
+ "VkBool32 descriptorBindingVariableDescriptorCount",
1562
+ "VkBool32 runtimeDescriptorArray"]
1563
+
1564
+ VkPhysicalDeviceDescriptorIndexingPropertiesEXT = struct ["VkStructureType sType",
1565
+ "void * pNext",
1566
+ "uint32_t maxUpdateAfterBindDescriptorsInAllPools",
1567
+ "VkBool32 shaderUniformBufferArrayNonUniformIndexingNative",
1568
+ "VkBool32 shaderSampledImageArrayNonUniformIndexingNative",
1569
+ "VkBool32 shaderStorageBufferArrayNonUniformIndexingNative",
1570
+ "VkBool32 shaderStorageImageArrayNonUniformIndexingNative",
1571
+ "VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative",
1572
+ "VkBool32 robustBufferAccessUpdateAfterBind",
1573
+ "VkBool32 quadDivergentImplicitLod",
1574
+ "uint32_t maxPerStageDescriptorUpdateAfterBindSamplers",
1575
+ "uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers",
1576
+ "uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers",
1577
+ "uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages",
1578
+ "uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages",
1579
+ "uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments",
1580
+ "uint32_t maxPerStageUpdateAfterBindResources",
1581
+ "uint32_t maxDescriptorSetUpdateAfterBindSamplers",
1582
+ "uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers",
1583
+ "uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
1584
+ "uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers",
1585
+ "uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
1586
+ "uint32_t maxDescriptorSetUpdateAfterBindSampledImages",
1587
+ "uint32_t maxDescriptorSetUpdateAfterBindStorageImages",
1588
+ "uint32_t maxDescriptorSetUpdateAfterBindInputAttachments"]
1589
+
1590
+ VkPhysicalDeviceDiscardRectanglePropertiesEXT = struct ["VkStructureType sType",
1591
+ "void * pNext",
1592
+ "uint32_t maxDiscardRectangles"]
1593
+
1594
+ VkPhysicalDeviceDriverPropertiesKHR = struct ["VkStructureType sType",
1595
+ "void * pNext",
1596
+ "VkDriverIdKHR driverID",
1597
+ "char driverName[#{VK_MAX_DRIVER_NAME_SIZE_KHR}]",
1598
+ "char driverInfo[#{VK_MAX_DRIVER_INFO_SIZE_KHR}]",
1599
+ { "conformanceVersion" => VkConformanceVersionKHR }]
1600
+
1601
+ VkPhysicalDeviceExclusiveScissorFeaturesNV = struct ["VkStructureType sType",
1602
+ "void * pNext",
1603
+ "VkBool32 exclusiveScissor"]
1604
+
1605
+ VkPhysicalDeviceExternalBufferInfo = struct ["VkStructureType sType",
1606
+ "void * pNext",
1607
+ "VkBufferCreateFlags flags",
1608
+ "VkBufferUsageFlags usage",
1609
+ "VkExternalMemoryHandleTypeFlagBits handleType"]
1610
+
1611
+ VkPhysicalDeviceExternalBufferInfoKHR = VkPhysicalDeviceExternalBufferInfo
1612
+
1613
+ VkPhysicalDeviceExternalFenceInfo = struct ["VkStructureType sType",
1614
+ "void * pNext",
1615
+ "VkExternalFenceHandleTypeFlagBits handleType"]
1616
+
1617
+ VkPhysicalDeviceExternalFenceInfoKHR = VkPhysicalDeviceExternalFenceInfo
1618
+
1619
+ VkPhysicalDeviceExternalImageFormatInfo = struct ["VkStructureType sType",
1620
+ "void * pNext",
1621
+ "VkExternalMemoryHandleTypeFlagBits handleType"]
1622
+
1623
+ VkPhysicalDeviceExternalImageFormatInfoKHR = VkPhysicalDeviceExternalImageFormatInfo
1624
+
1625
+ VkPhysicalDeviceExternalMemoryHostPropertiesEXT = struct ["VkStructureType sType",
1626
+ "void * pNext",
1627
+ "VkDeviceSize minImportedHostPointerAlignment"]
1628
+
1629
+ VkPhysicalDeviceExternalSemaphoreInfo = struct ["VkStructureType sType",
1630
+ "void * pNext",
1631
+ "VkExternalSemaphoreHandleTypeFlagBits handleType"]
1632
+
1633
+ VkPhysicalDeviceExternalSemaphoreInfoKHR = VkPhysicalDeviceExternalSemaphoreInfo
1634
+
1635
+ VkPhysicalDeviceFeatures2 = struct ["VkStructureType sType",
1636
+ "void * pNext",
1637
+ { "features" => VkPhysicalDeviceFeatures }]
1638
+
1639
+ VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
1640
+
1641
+ VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = struct ["VkStructureType sType",
1642
+ "void * pNext",
1643
+ "VkBool32 fragmentShaderBarycentric"]
1644
+
1645
+ VkPhysicalDeviceGroupProperties = struct ["VkStructureType sType",
1646
+ "void * pNext",
1647
+ "uint32_t physicalDeviceCount",
1648
+ "VkPhysicalDevice physicalDevices[#{VK_MAX_DEVICE_GROUP_SIZE}]",
1649
+ "VkBool32 subsetAllocation"]
1650
+
1651
+ VkPhysicalDeviceGroupPropertiesKHR = VkPhysicalDeviceGroupProperties
1652
+
1653
+ VkPhysicalDeviceIDProperties = struct ["VkStructureType sType",
1654
+ "void * pNext",
1655
+ "uint8_t deviceUUID[#{VK_UUID_SIZE}]",
1656
+ "uint8_t driverUUID[#{VK_UUID_SIZE}]",
1657
+ "uint8_t deviceLUID[#{VK_LUID_SIZE}]",
1658
+ "uint32_t deviceNodeMask",
1659
+ "VkBool32 deviceLUIDValid"]
1660
+
1661
+ VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
1662
+
1663
+ VkPhysicalDeviceImageDrmFormatModifierInfoEXT = struct ["VkStructureType sType",
1664
+ "void * pNext",
1665
+ "uint64_t drmFormatModifier",
1666
+ "VkSharingMode sharingMode",
1667
+ "uint32_t queueFamilyIndexCount",
1668
+ "uint32_t * pQueueFamilyIndices"]
1669
+
1670
+ VkPhysicalDeviceImageFormatInfo2 = struct ["VkStructureType sType",
1671
+ "void * pNext",
1672
+ "VkFormat format",
1673
+ "VkImageType type",
1674
+ "VkImageTiling tiling",
1675
+ "VkImageUsageFlags usage",
1676
+ "VkImageCreateFlags flags"]
1677
+
1678
+ VkPhysicalDeviceImageFormatInfo2KHR = VkPhysicalDeviceImageFormatInfo2
1679
+
1680
+ VkPhysicalDeviceInlineUniformBlockFeaturesEXT = struct ["VkStructureType sType",
1681
+ "void * pNext",
1682
+ "VkBool32 inlineUniformBlock",
1683
+ "VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind"]
1684
+
1685
+ VkPhysicalDeviceInlineUniformBlockPropertiesEXT = struct ["VkStructureType sType",
1686
+ "void * pNext",
1687
+ "uint32_t maxInlineUniformBlockSize",
1688
+ "uint32_t maxPerStageDescriptorInlineUniformBlocks",
1689
+ "uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks",
1690
+ "uint32_t maxDescriptorSetInlineUniformBlocks",
1691
+ "uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks"]
1692
+
1693
+ VkPhysicalDeviceLimits = struct ["uint32_t maxImageDimension1D",
1694
+ "uint32_t maxImageDimension2D",
1695
+ "uint32_t maxImageDimension3D",
1696
+ "uint32_t maxImageDimensionCube",
1697
+ "uint32_t maxImageArrayLayers",
1698
+ "uint32_t maxTexelBufferElements",
1699
+ "uint32_t maxUniformBufferRange",
1700
+ "uint32_t maxStorageBufferRange",
1701
+ "uint32_t maxPushConstantsSize",
1702
+ "uint32_t maxMemoryAllocationCount",
1703
+ "uint32_t maxSamplerAllocationCount",
1704
+ "VkDeviceSize bufferImageGranularity",
1705
+ "VkDeviceSize sparseAddressSpaceSize",
1706
+ "uint32_t maxBoundDescriptorSets",
1707
+ "uint32_t maxPerStageDescriptorSamplers",
1708
+ "uint32_t maxPerStageDescriptorUniformBuffers",
1709
+ "uint32_t maxPerStageDescriptorStorageBuffers",
1710
+ "uint32_t maxPerStageDescriptorSampledImages",
1711
+ "uint32_t maxPerStageDescriptorStorageImages",
1712
+ "uint32_t maxPerStageDescriptorInputAttachments",
1713
+ "uint32_t maxPerStageResources",
1714
+ "uint32_t maxDescriptorSetSamplers",
1715
+ "uint32_t maxDescriptorSetUniformBuffers",
1716
+ "uint32_t maxDescriptorSetUniformBuffersDynamic",
1717
+ "uint32_t maxDescriptorSetStorageBuffers",
1718
+ "uint32_t maxDescriptorSetStorageBuffersDynamic",
1719
+ "uint32_t maxDescriptorSetSampledImages",
1720
+ "uint32_t maxDescriptorSetStorageImages",
1721
+ "uint32_t maxDescriptorSetInputAttachments",
1722
+ "uint32_t maxVertexInputAttributes",
1723
+ "uint32_t maxVertexInputBindings",
1724
+ "uint32_t maxVertexInputAttributeOffset",
1725
+ "uint32_t maxVertexInputBindingStride",
1726
+ "uint32_t maxVertexOutputComponents",
1727
+ "uint32_t maxTessellationGenerationLevel",
1728
+ "uint32_t maxTessellationPatchSize",
1729
+ "uint32_t maxTessellationControlPerVertexInputComponents",
1730
+ "uint32_t maxTessellationControlPerVertexOutputComponents",
1731
+ "uint32_t maxTessellationControlPerPatchOutputComponents",
1732
+ "uint32_t maxTessellationControlTotalOutputComponents",
1733
+ "uint32_t maxTessellationEvaluationInputComponents",
1734
+ "uint32_t maxTessellationEvaluationOutputComponents",
1735
+ "uint32_t maxGeometryShaderInvocations",
1736
+ "uint32_t maxGeometryInputComponents",
1737
+ "uint32_t maxGeometryOutputComponents",
1738
+ "uint32_t maxGeometryOutputVertices",
1739
+ "uint32_t maxGeometryTotalOutputComponents",
1740
+ "uint32_t maxFragmentInputComponents",
1741
+ "uint32_t maxFragmentOutputAttachments",
1742
+ "uint32_t maxFragmentDualSrcAttachments",
1743
+ "uint32_t maxFragmentCombinedOutputResources",
1744
+ "uint32_t maxComputeSharedMemorySize",
1745
+ "uint32_t maxComputeWorkGroupCount [3]",
1746
+ "uint32_t maxComputeWorkGroupInvocations",
1747
+ "uint32_t maxComputeWorkGroupSize [3]",
1748
+ "uint32_t subPixelPrecisionBits",
1749
+ "uint32_t subTexelPrecisionBits",
1750
+ "uint32_t mipmapPrecisionBits",
1751
+ "uint32_t maxDrawIndexedIndexValue",
1752
+ "uint32_t maxDrawIndirectCount",
1753
+ "float maxSamplerLodBias",
1754
+ "float maxSamplerAnisotropy",
1755
+ "uint32_t maxViewports",
1756
+ "uint32_t maxViewportDimensions [2]",
1757
+ "float viewportBoundsRange [2]",
1758
+ "uint32_t viewportSubPixelBits",
1759
+ "size_t minMemoryMapAlignment",
1760
+ "VkDeviceSize minTexelBufferOffsetAlignment",
1761
+ "VkDeviceSize minUniformBufferOffsetAlignment",
1762
+ "VkDeviceSize minStorageBufferOffsetAlignment",
1763
+ "int32_t minTexelOffset",
1764
+ "uint32_t maxTexelOffset",
1765
+ "int32_t minTexelGatherOffset",
1766
+ "uint32_t maxTexelGatherOffset",
1767
+ "float minInterpolationOffset",
1768
+ "float maxInterpolationOffset",
1769
+ "uint32_t subPixelInterpolationOffsetBits",
1770
+ "uint32_t maxFramebufferWidth",
1771
+ "uint32_t maxFramebufferHeight",
1772
+ "uint32_t maxFramebufferLayers",
1773
+ "VkSampleCountFlags framebufferColorSampleCounts",
1774
+ "VkSampleCountFlags framebufferDepthSampleCounts",
1775
+ "VkSampleCountFlags framebufferStencilSampleCounts",
1776
+ "VkSampleCountFlags framebufferNoAttachmentsSampleCounts",
1777
+ "uint32_t maxColorAttachments",
1778
+ "VkSampleCountFlags sampledImageColorSampleCounts",
1779
+ "VkSampleCountFlags sampledImageIntegerSampleCounts",
1780
+ "VkSampleCountFlags sampledImageDepthSampleCounts",
1781
+ "VkSampleCountFlags sampledImageStencilSampleCounts",
1782
+ "VkSampleCountFlags storageImageSampleCounts",
1783
+ "uint32_t maxSampleMaskWords",
1784
+ "VkBool32 timestampComputeAndGraphics",
1785
+ "float timestampPeriod",
1786
+ "uint32_t maxClipDistances",
1787
+ "uint32_t maxCullDistances",
1788
+ "uint32_t maxCombinedClipAndCullDistances",
1789
+ "uint32_t discreteQueuePriorities",
1790
+ "float pointSizeRange [2]",
1791
+ "float lineWidthRange [2]",
1792
+ "float pointSizeGranularity",
1793
+ "float lineWidthGranularity",
1794
+ "VkBool32 strictLines",
1795
+ "VkBool32 standardSampleLocations",
1796
+ "VkDeviceSize optimalBufferCopyOffsetAlignment",
1797
+ "VkDeviceSize optimalBufferCopyRowPitchAlignment",
1798
+ "VkDeviceSize nonCoherentAtomSize"]
1799
+
1800
+ VkPhysicalDeviceMaintenance3Properties = struct ["VkStructureType sType",
1801
+ "void * pNext",
1802
+ "uint32_t maxPerSetDescriptors",
1803
+ "VkDeviceSize maxMemoryAllocationSize"]
1804
+
1805
+ VkPhysicalDeviceMaintenance3PropertiesKHR = VkPhysicalDeviceMaintenance3Properties
1806
+
1807
+ VkPhysicalDeviceMemoryProperties = struct ["uint32_t memoryTypeCount",
1808
+ { "memoryTypes[#{VK_MAX_MEMORY_TYPES}]" => VkMemoryType },
1809
+ "uint32_t memoryHeapCount",
1810
+ { "memoryHeaps[#{VK_MAX_MEMORY_HEAPS}]" => VkMemoryHeap }]
1811
+
1812
+ VkPhysicalDeviceMemoryProperties2 = struct ["VkStructureType sType",
1813
+ "void * pNext",
1814
+ { "memoryProperties" => VkPhysicalDeviceMemoryProperties }]
1815
+
1816
+ VkPhysicalDeviceMemoryProperties2KHR = VkPhysicalDeviceMemoryProperties2
1817
+
1818
+ VkPhysicalDeviceMeshShaderFeaturesNV = struct ["VkStructureType sType",
1819
+ "void * pNext",
1820
+ "VkBool32 taskShader",
1821
+ "VkBool32 meshShader"]
1822
+
1823
+ VkPhysicalDeviceMeshShaderPropertiesNV = struct ["VkStructureType sType",
1824
+ "void * pNext",
1825
+ "uint32_t maxDrawMeshTasksCount",
1826
+ "uint32_t maxTaskWorkGroupInvocations",
1827
+ "uint32_t maxTaskWorkGroupSize [3]",
1828
+ "uint32_t maxTaskTotalMemorySize",
1829
+ "uint32_t maxTaskOutputCount",
1830
+ "uint32_t maxMeshWorkGroupInvocations",
1831
+ "uint32_t maxMeshWorkGroupSize [3]",
1832
+ "uint32_t maxMeshTotalMemorySize",
1833
+ "uint32_t maxMeshOutputVertices",
1834
+ "uint32_t maxMeshOutputPrimitives",
1835
+ "uint32_t maxMeshMultiviewViewCount",
1836
+ "uint32_t meshOutputPerVertexGranularity",
1837
+ "uint32_t meshOutputPerPrimitiveGranularity"]
1838
+
1839
+ VkPhysicalDeviceMultiviewFeatures = struct ["VkStructureType sType",
1840
+ "void * pNext",
1841
+ "VkBool32 multiview",
1842
+ "VkBool32 multiviewGeometryShader",
1843
+ "VkBool32 multiviewTessellationShader"]
1844
+
1845
+ VkPhysicalDeviceMultiviewFeaturesKHR = VkPhysicalDeviceMultiviewFeatures
1846
+
1847
+ VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = struct ["VkStructureType sType",
1848
+ "void * pNext",
1849
+ "VkBool32 perViewPositionAllComponents"]
1850
+
1851
+ VkPhysicalDeviceMultiviewProperties = struct ["VkStructureType sType",
1852
+ "void * pNext",
1853
+ "uint32_t maxMultiviewViewCount",
1854
+ "uint32_t maxMultiviewInstanceIndex"]
1855
+
1856
+ VkPhysicalDeviceMultiviewPropertiesKHR = VkPhysicalDeviceMultiviewProperties
1857
+
1858
+ VkPhysicalDevicePCIBusInfoPropertiesEXT = struct ["VkStructureType sType",
1859
+ "void * pNext",
1860
+ "uint16_t pciDomain",
1861
+ "uint8_t pciBus",
1862
+ "uint8_t pciDevice",
1863
+ "uint8_t pciFunction"]
1864
+
1865
+ VkPhysicalDevicePointClippingProperties = struct ["VkStructureType sType",
1866
+ "void * pNext",
1867
+ "VkPointClippingBehavior pointClippingBehavior"]
1868
+
1869
+ VkPhysicalDevicePointClippingPropertiesKHR = VkPhysicalDevicePointClippingProperties
1870
+
1871
+ VkPhysicalDeviceSparseProperties = struct ["VkBool32 residencyStandard2DBlockShape",
1872
+ "VkBool32 residencyStandard2DMultisampleBlockShape",
1873
+ "VkBool32 residencyStandard3DBlockShape",
1874
+ "VkBool32 residencyAlignedMipSize",
1875
+ "VkBool32 residencyNonResidentStrict"]
1876
+ VkPhysicalDeviceProperties = struct ["uint32_t apiVersion",
1877
+ "uint32_t driverVersion",
1878
+ "uint32_t vendorID",
1879
+ "uint32_t deviceID",
1880
+ "VkPhysicalDeviceType deviceType",
1881
+ "char deviceName[#{VK_MAX_PHYSICAL_DEVICE_NAME_SIZE}]",
1882
+ "uint8_t pipelineCacheUUID[#{VK_UUID_SIZE}]",
1883
+ { "limits" => VkPhysicalDeviceLimits },
1884
+ { "sparseProperties" => VkPhysicalDeviceSparseProperties }]
1885
+
1886
+ VkPhysicalDeviceProperties2 = struct ["VkStructureType sType",
1887
+ "void * pNext",
1888
+ { "properties" => VkPhysicalDeviceProperties }]
1889
+
1890
+ VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
1891
+
1892
+ VkPhysicalDeviceProtectedMemoryFeatures = struct ["VkStructureType sType",
1893
+ "void * pNext",
1894
+ "VkBool32 protectedMemory"]
1895
+
1896
+ VkPhysicalDeviceProtectedMemoryProperties = struct ["VkStructureType sType",
1897
+ "void * pNext",
1898
+ "VkBool32 protectedNoFault"]
1899
+
1900
+ VkPhysicalDevicePushDescriptorPropertiesKHR = struct ["VkStructureType sType",
1901
+ "void * pNext",
1902
+ "uint32_t maxPushDescriptors"]
1903
+
1904
+ VkPhysicalDeviceRayTracingPropertiesNV = struct ["VkStructureType sType",
1905
+ "void * pNext",
1906
+ "uint32_t shaderGroupHandleSize",
1907
+ "uint32_t maxRecursionDepth",
1908
+ "uint32_t maxShaderGroupStride",
1909
+ "uint32_t shaderGroupBaseAlignment",
1910
+ "uint64_t maxGeometryCount",
1911
+ "uint64_t maxInstanceCount",
1912
+ "uint64_t maxTriangleCount",
1913
+ "uint32_t maxDescriptorSetAccelerationStructures"]
1914
+
1915
+ VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = struct ["VkStructureType sType",
1916
+ "void * pNext",
1917
+ "VkBool32 representativeFragmentTest"]
1918
+
1919
+ VkPhysicalDeviceSampleLocationsPropertiesEXT = struct ["VkStructureType sType",
1920
+ "void * pNext",
1921
+ "VkSampleCountFlags sampleLocationSampleCounts",
1922
+ { "maxSampleLocationGridSize" => VkExtent2D },
1923
+ "float sampleLocationCoordinateRange [2]",
1924
+ "uint32_t sampleLocationSubPixelBits",
1925
+ "VkBool32 variableSampleLocations"]
1926
+
1927
+ VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = struct ["VkStructureType sType",
1928
+ "void * pNext",
1929
+ "VkBool32 filterMinmaxSingleComponentFormats",
1930
+ "VkBool32 filterMinmaxImageComponentMapping"]
1931
+
1932
+ VkPhysicalDeviceSamplerYcbcrConversionFeatures = struct ["VkStructureType sType",
1933
+ "void * pNext",
1934
+ "VkBool32 samplerYcbcrConversion"]
1935
+
1936
+ VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VkPhysicalDeviceSamplerYcbcrConversionFeatures
1937
+
1938
+ VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = struct ["VkStructureType sType",
1939
+ "void * pNext",
1940
+ "VkBool32 shaderBufferInt64Atomics",
1941
+ "VkBool32 shaderSharedInt64Atomics"]
1942
+
1943
+ VkPhysicalDeviceShaderCorePropertiesAMD = struct ["VkStructureType sType",
1944
+ "void * pNext",
1945
+ "uint32_t shaderEngineCount",
1946
+ "uint32_t shaderArraysPerEngineCount",
1947
+ "uint32_t computeUnitsPerShaderArray",
1948
+ "uint32_t simdPerComputeUnit",
1949
+ "uint32_t wavefrontsPerSimd",
1950
+ "uint32_t wavefrontSize",
1951
+ "uint32_t sgprsPerSimd",
1952
+ "uint32_t minSgprAllocation",
1953
+ "uint32_t maxSgprAllocation",
1954
+ "uint32_t sgprAllocationGranularity",
1955
+ "uint32_t vgprsPerSimd",
1956
+ "uint32_t minVgprAllocation",
1957
+ "uint32_t maxVgprAllocation",
1958
+ "uint32_t vgprAllocationGranularity"]
1959
+
1960
+ VkPhysicalDeviceShaderDrawParameterFeatures = struct ["VkStructureType sType",
1961
+ "void * pNext",
1962
+ "VkBool32 shaderDrawParameters"]
1963
+
1964
+ VkPhysicalDeviceShaderImageFootprintFeaturesNV = struct ["VkStructureType sType",
1965
+ "void * pNext",
1966
+ "VkBool32 imageFootprint"]
1967
+
1968
+ VkPhysicalDeviceShadingRateImageFeaturesNV = struct ["VkStructureType sType",
1969
+ "void * pNext",
1970
+ "VkBool32 shadingRateImage",
1971
+ "VkBool32 shadingRateCoarseSampleOrder"]
1972
+
1973
+ VkPhysicalDeviceShadingRateImagePropertiesNV = struct ["VkStructureType sType",
1974
+ "void * pNext",
1975
+ { "shadingRateTexelSize" => VkExtent2D },
1976
+ "uint32_t shadingRatePaletteSize",
1977
+ "uint32_t shadingRateMaxCoarseSamples"]
1978
+
1979
+ VkPhysicalDeviceSparseImageFormatInfo2 = struct ["VkStructureType sType",
1980
+ "void * pNext",
1981
+ "VkFormat format",
1982
+ "VkImageType type",
1983
+ "VkSampleCountFlagBits samples",
1984
+ "VkImageUsageFlags usage",
1985
+ "VkImageTiling tiling"]
1986
+
1987
+ VkPhysicalDeviceSparseImageFormatInfo2KHR = VkPhysicalDeviceSparseImageFormatInfo2
1988
+
1989
+ VkPhysicalDeviceSubgroupProperties = struct ["VkStructureType sType",
1990
+ "void * pNext",
1991
+ "uint32_t subgroupSize",
1992
+ "VkShaderStageFlags supportedStages",
1993
+ "VkSubgroupFeatureFlags supportedOperations",
1994
+ "VkBool32 quadOperationsInAllStages"]
1995
+
1996
+ VkPhysicalDeviceSurfaceInfo2KHR = struct ["VkStructureType sType",
1997
+ "void * pNext",
1998
+ "VkSurfaceKHR surface"]
1999
+
2000
+ VkPhysicalDeviceTransformFeedbackFeaturesEXT = struct ["VkStructureType sType",
2001
+ "void * pNext",
2002
+ "VkBool32 transformFeedback",
2003
+ "VkBool32 geometryStreams"]
2004
+
2005
+ VkPhysicalDeviceTransformFeedbackPropertiesEXT = struct ["VkStructureType sType",
2006
+ "void * pNext",
2007
+ "uint32_t maxTransformFeedbackStreams",
2008
+ "uint32_t maxTransformFeedbackBuffers",
2009
+ "VkDeviceSize maxTransformFeedbackBufferSize",
2010
+ "uint32_t maxTransformFeedbackStreamDataSize",
2011
+ "uint32_t maxTransformFeedbackBufferDataSize",
2012
+ "uint32_t maxTransformFeedbackBufferDataStride",
2013
+ "VkBool32 transformFeedbackQueries",
2014
+ "VkBool32 transformFeedbackStreamsLinesTriangles",
2015
+ "VkBool32 transformFeedbackRasterizationStreamSelect",
2016
+ "VkBool32 transformFeedbackDraw"]
2017
+
2018
+ VkPhysicalDeviceVariablePointerFeatures = struct ["VkStructureType sType",
2019
+ "void * pNext",
2020
+ "VkBool32 variablePointersStorageBuffer",
2021
+ "VkBool32 variablePointers"]
2022
+
2023
+ VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointerFeatures
2024
+
2025
+ VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = struct ["VkStructureType sType",
2026
+ "void * pNext",
2027
+ "VkBool32 vertexAttributeInstanceRateDivisor",
2028
+ "VkBool32 vertexAttributeInstanceRateZeroDivisor"]
2029
+
2030
+ VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = struct ["VkStructureType sType",
2031
+ "void * pNext",
2032
+ "uint32_t maxVertexAttribDivisor"]
2033
+
2034
+ VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = struct ["VkStructureType sType",
2035
+ "void * pNext",
2036
+ "VkBool32 vulkanMemoryModel",
2037
+ "VkBool32 vulkanMemoryModelDeviceScope"]
2038
+
2039
+ VkPipelineCacheCreateInfo = struct ["VkStructureType sType",
2040
+ "void * pNext",
2041
+ "VkPipelineCacheCreateFlags flags",
2042
+ "size_t initialDataSize",
2043
+ "void * pInitialData"]
2044
+
2045
+ VkPipelineColorBlendAdvancedStateCreateInfoEXT = struct ["VkStructureType sType",
2046
+ "void * pNext",
2047
+ "VkBool32 srcPremultiplied",
2048
+ "VkBool32 dstPremultiplied",
2049
+ "VkBlendOverlapEXT blendOverlap"]
2050
+
2051
+ VkPipelineCoverageModulationStateCreateInfoNV = struct ["VkStructureType sType",
2052
+ "void * pNext",
2053
+ "VkPipelineCoverageModulationStateCreateFlagsNV flags",
2054
+ "VkCoverageModulationModeNV coverageModulationMode",
2055
+ "VkBool32 coverageModulationTableEnable",
2056
+ "uint32_t coverageModulationTableCount",
2057
+ "float * pCoverageModulationTable"]
2058
+
2059
+ VkPipelineCoverageToColorStateCreateInfoNV = struct ["VkStructureType sType",
2060
+ "void * pNext",
2061
+ "VkPipelineCoverageToColorStateCreateFlagsNV flags",
2062
+ "VkBool32 coverageToColorEnable",
2063
+ "uint32_t coverageToColorLocation"]
2064
+
2065
+ VkPipelineDiscardRectangleStateCreateInfoEXT = struct ["VkStructureType sType",
2066
+ "void * pNext",
2067
+ "VkPipelineDiscardRectangleStateCreateFlagsEXT flags",
2068
+ "VkDiscardRectangleModeEXT discardRectangleMode",
2069
+ "uint32_t discardRectangleCount",
2070
+ "VkRect2D * pDiscardRectangles"]
2071
+
2072
+ VkPushConstantRange = struct ["VkShaderStageFlags stageFlags",
2073
+ "uint32_t offset",
2074
+ "uint32_t size"]
2075
+ VkPipelineLayoutCreateInfo = struct ["VkStructureType sType",
2076
+ "void * pNext",
2077
+ "VkPipelineLayoutCreateFlags flags",
2078
+ "uint32_t setLayoutCount",
2079
+ "VkDescriptorSetLayout * pSetLayouts",
2080
+ "uint32_t pushConstantRangeCount",
2081
+ "VkPushConstantRange * pPushConstantRanges"]
2082
+
2083
+ VkPipelineRasterizationConservativeStateCreateInfoEXT = struct ["VkStructureType sType",
2084
+ "void * pNext",
2085
+ "VkPipelineRasterizationConservativeStateCreateFlagsEXT flags",
2086
+ "VkConservativeRasterizationModeEXT conservativeRasterizationMode",
2087
+ "float extraPrimitiveOverestimationSize"]
2088
+
2089
+ VkPipelineRasterizationStateRasterizationOrderAMD = struct ["VkStructureType sType",
2090
+ "void * pNext",
2091
+ "VkRasterizationOrderAMD rasterizationOrder"]
2092
+
2093
+ VkPipelineRasterizationStateStreamCreateInfoEXT = struct ["VkStructureType sType",
2094
+ "void * pNext",
2095
+ "VkPipelineRasterizationStateStreamCreateFlagsEXT flags",
2096
+ "uint32_t rasterizationStream"]
2097
+
2098
+ VkPipelineRepresentativeFragmentTestStateCreateInfoNV = struct ["VkStructureType sType",
2099
+ "void * pNext",
2100
+ "VkBool32 representativeFragmentTestEnable"]
2101
+
2102
+ VkPipelineSampleLocationsStateCreateInfoEXT = struct ["VkStructureType sType",
2103
+ "void * pNext",
2104
+ "VkBool32 sampleLocationsEnable",
2105
+ { "sampleLocationsInfo" => VkSampleLocationsInfoEXT }]
2106
+
2107
+ VkPipelineTessellationDomainOriginStateCreateInfo = struct ["VkStructureType sType",
2108
+ "void * pNext",
2109
+ "VkTessellationDomainOrigin domainOrigin"]
2110
+
2111
+ VkPipelineTessellationDomainOriginStateCreateInfoKHR = VkPipelineTessellationDomainOriginStateCreateInfo
2112
+
2113
+ VkVertexInputBindingDivisorDescriptionEXT = struct ["uint32_t binding",
2114
+ "uint32_t divisor"]
2115
+ VkPipelineVertexInputDivisorStateCreateInfoEXT = struct ["VkStructureType sType",
2116
+ "void * pNext",
2117
+ "uint32_t vertexBindingDivisorCount",
2118
+ "VkVertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors"]
2119
+
2120
+ VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = struct ["VkStructureType sType",
2121
+ "void * pNext",
2122
+ "VkCoarseSampleOrderTypeNV sampleOrderType",
2123
+ "uint32_t customSampleOrderCount",
2124
+ "VkCoarseSampleOrderCustomNV * pCustomSampleOrders"]
2125
+
2126
+ VkPipelineViewportExclusiveScissorStateCreateInfoNV = struct ["VkStructureType sType",
2127
+ "void * pNext",
2128
+ "uint32_t exclusiveScissorCount",
2129
+ "VkRect2D * pExclusiveScissors"]
2130
+
2131
+ VkShadingRatePaletteNV = struct ["uint32_t shadingRatePaletteEntryCount",
2132
+ "VkShadingRatePaletteEntryNV * pShadingRatePaletteEntries"]
2133
+ VkPipelineViewportShadingRateImageStateCreateInfoNV = struct ["VkStructureType sType",
2134
+ "void * pNext",
2135
+ "VkBool32 shadingRateImageEnable",
2136
+ "uint32_t viewportCount",
2137
+ "VkShadingRatePaletteNV * pShadingRatePalettes"]
2138
+
2139
+ VkViewportSwizzleNV = struct ["VkViewportCoordinateSwizzleNV x",
2140
+ "VkViewportCoordinateSwizzleNV y",
2141
+ "VkViewportCoordinateSwizzleNV z",
2142
+ "VkViewportCoordinateSwizzleNV w"]
2143
+ VkPipelineViewportSwizzleStateCreateInfoNV = struct ["VkStructureType sType",
2144
+ "void * pNext",
2145
+ "VkPipelineViewportSwizzleStateCreateFlagsNV flags",
2146
+ "uint32_t viewportCount",
2147
+ "VkViewportSwizzleNV * pViewportSwizzles"]
2148
+
2149
+ VkViewportWScalingNV = struct ["float xcoeff",
2150
+ "float ycoeff"]
2151
+ VkPipelineViewportWScalingStateCreateInfoNV = struct ["VkStructureType sType",
2152
+ "void * pNext",
2153
+ "VkBool32 viewportWScalingEnable",
2154
+ "uint32_t viewportCount",
2155
+ "VkViewportWScalingNV * pViewportWScalings"]
2156
+
2157
+ VkPresentInfoKHR = struct ["VkStructureType sType",
2158
+ "void * pNext",
2159
+ "uint32_t waitSemaphoreCount",
2160
+ "VkSemaphore * pWaitSemaphores",
2161
+ "uint32_t swapchainCount",
2162
+ "VkSwapchainKHR * pSwapchains",
2163
+ "uint32_t * pImageIndices",
2164
+ "VkResult * pResults"]
2165
+
2166
+ VkRectLayerKHR = struct [{ "offset" => VkOffset2D },
2167
+ { "extent" => VkExtent2D },
2168
+ "uint32_t layer"]
2169
+ VkPresentRegionKHR = struct ["uint32_t rectangleCount",
2170
+ "VkRectLayerKHR * pRectangles"]
2171
+
2172
+ VkPresentRegionsKHR = struct ["VkStructureType sType",
2173
+ "void * pNext",
2174
+ "uint32_t swapchainCount",
2175
+ "VkPresentRegionKHR * pRegions"]
2176
+
2177
+ VkPresentTimeGOOGLE = struct ["uint32_t presentID",
2178
+ "uint64_t desiredPresentTime"]
2179
+
2180
+ VkPresentTimesInfoGOOGLE = struct ["VkStructureType sType",
2181
+ "void * pNext",
2182
+ "uint32_t swapchainCount",
2183
+ "VkPresentTimeGOOGLE * pTimes"]
2184
+
2185
+ VkProtectedSubmitInfo = struct ["VkStructureType sType",
2186
+ "void * pNext",
2187
+ "VkBool32 protectedSubmit"]
2188
+
2189
+ VkQueryPoolCreateInfo = struct ["VkStructureType sType",
2190
+ "void * pNext",
2191
+ "VkQueryPoolCreateFlags flags",
2192
+ "VkQueryType queryType",
2193
+ "uint32_t queryCount",
2194
+ "VkQueryPipelineStatisticFlags pipelineStatistics"]
2195
+
2196
+ VkQueueFamilyCheckpointPropertiesNV = struct ["VkStructureType sType",
2197
+ "void * pNext",
2198
+ "VkPipelineStageFlags checkpointExecutionStageMask"]
2199
+
2200
+ VkQueueFamilyProperties = struct ["VkQueueFlags queueFlags",
2201
+ "uint32_t queueCount",
2202
+ "uint32_t timestampValidBits",
2203
+ { "minImageTransferGranularity" => VkExtent3D }]
2204
+
2205
+ VkQueueFamilyProperties2 = struct ["VkStructureType sType",
2206
+ "void * pNext",
2207
+ { "queueFamilyProperties" => VkQueueFamilyProperties }]
2208
+
2209
+ VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2
2210
+
2211
+ VkRayTracingShaderGroupCreateInfoNV = struct ["VkStructureType sType",
2212
+ "void * pNext",
2213
+ "VkRayTracingShaderGroupTypeNV type",
2214
+ "uint32_t generalShader",
2215
+ "uint32_t closestHitShader",
2216
+ "uint32_t anyHitShader",
2217
+ "uint32_t intersectionShader"]
2218
+ VkRayTracingPipelineCreateInfoNV = struct ["VkStructureType sType",
2219
+ "void * pNext",
2220
+ "VkPipelineCreateFlags flags",
2221
+ "uint32_t stageCount",
2222
+ "VkPipelineShaderStageCreateInfo * pStages",
2223
+ "uint32_t groupCount",
2224
+ "VkRayTracingShaderGroupCreateInfoNV * pGroups",
2225
+ "uint32_t maxRecursionDepth",
2226
+ "VkPipelineLayout layout",
2227
+ "VkPipeline basePipelineHandle",
2228
+ "int32_t basePipelineIndex"]
2229
+
2230
+ VkRefreshCycleDurationGOOGLE = struct ["uint64_t refreshDuration"]
2231
+
2232
+ VkRenderPassBeginInfo = struct ["VkStructureType sType",
2233
+ "void * pNext",
2234
+ "VkRenderPass renderPass",
2235
+ "VkFramebuffer framebuffer",
2236
+ { "renderArea" => VkRect2D },
2237
+ "uint32_t clearValueCount",
2238
+ "VkClearValue * pClearValues"]
2239
+
2240
+ VkSubpassDescription = struct ["VkSubpassDescriptionFlags flags",
2241
+ "VkPipelineBindPoint pipelineBindPoint",
2242
+ "uint32_t inputAttachmentCount",
2243
+ "VkAttachmentReference * pInputAttachments",
2244
+ "uint32_t colorAttachmentCount",
2245
+ "VkAttachmentReference * pColorAttachments",
2246
+ "VkAttachmentReference * pResolveAttachments",
2247
+ "VkAttachmentReference * pDepthStencilAttachment",
2248
+ "uint32_t preserveAttachmentCount",
2249
+ "uint32_t * pPreserveAttachments"]
2250
+ VkSubpassDependency = struct ["uint32_t srcSubpass",
2251
+ "uint32_t dstSubpass",
2252
+ "VkPipelineStageFlags srcStageMask",
2253
+ "VkPipelineStageFlags dstStageMask",
2254
+ "VkAccessFlags srcAccessMask",
2255
+ "VkAccessFlags dstAccessMask",
2256
+ "VkDependencyFlags dependencyFlags"]
2257
+ VkRenderPassCreateInfo = struct ["VkStructureType sType",
2258
+ "void * pNext",
2259
+ "VkRenderPassCreateFlags flags",
2260
+ "uint32_t attachmentCount",
2261
+ "VkAttachmentDescription * pAttachments",
2262
+ "uint32_t subpassCount",
2263
+ "VkSubpassDescription * pSubpasses",
2264
+ "uint32_t dependencyCount",
2265
+ "VkSubpassDependency * pDependencies"]
2266
+
2267
+ VkSubpassDescription2KHR = struct ["VkStructureType sType",
2268
+ "void * pNext",
2269
+ "VkSubpassDescriptionFlags flags",
2270
+ "VkPipelineBindPoint pipelineBindPoint",
2271
+ "uint32_t viewMask",
2272
+ "uint32_t inputAttachmentCount",
2273
+ "VkAttachmentReference2KHR * pInputAttachments",
2274
+ "uint32_t colorAttachmentCount",
2275
+ "VkAttachmentReference2KHR * pColorAttachments",
2276
+ "VkAttachmentReference2KHR * pResolveAttachments",
2277
+ "VkAttachmentReference2KHR * pDepthStencilAttachment",
2278
+ "uint32_t preserveAttachmentCount",
2279
+ "uint32_t * pPreserveAttachments"]
2280
+ VkSubpassDependency2KHR = struct ["VkStructureType sType",
2281
+ "void * pNext",
2282
+ "uint32_t srcSubpass",
2283
+ "uint32_t dstSubpass",
2284
+ "VkPipelineStageFlags srcStageMask",
2285
+ "VkPipelineStageFlags dstStageMask",
2286
+ "VkAccessFlags srcAccessMask",
2287
+ "VkAccessFlags dstAccessMask",
2288
+ "VkDependencyFlags dependencyFlags",
2289
+ "int32_t viewOffset"]
2290
+ VkRenderPassCreateInfo2KHR = struct ["VkStructureType sType",
2291
+ "void * pNext",
2292
+ "VkRenderPassCreateFlags flags",
2293
+ "uint32_t attachmentCount",
2294
+ "VkAttachmentDescription2KHR * pAttachments",
2295
+ "uint32_t subpassCount",
2296
+ "VkSubpassDescription2KHR * pSubpasses",
2297
+ "uint32_t dependencyCount",
2298
+ "VkSubpassDependency2KHR * pDependencies",
2299
+ "uint32_t correlatedViewMaskCount",
2300
+ "uint32_t * pCorrelatedViewMasks"]
2301
+
2302
+ VkRenderPassInputAttachmentAspectCreateInfo = struct ["VkStructureType sType",
2303
+ "void * pNext",
2304
+ "uint32_t aspectReferenceCount",
2305
+ "VkInputAttachmentAspectReference * pAspectReferences"]
2306
+
2307
+ VkRenderPassInputAttachmentAspectCreateInfoKHR = VkRenderPassInputAttachmentAspectCreateInfo
2308
+
2309
+ VkRenderPassMultiviewCreateInfo = struct ["VkStructureType sType",
2310
+ "void * pNext",
2311
+ "uint32_t subpassCount",
2312
+ "uint32_t * pViewMasks",
2313
+ "uint32_t dependencyCount",
2314
+ "int32_t * pViewOffsets",
2315
+ "uint32_t correlationMaskCount",
2316
+ "uint32_t * pCorrelationMasks"]
2317
+
2318
+ VkRenderPassMultiviewCreateInfoKHR = VkRenderPassMultiviewCreateInfo
2319
+
2320
+ VkSubpassSampleLocationsEXT = struct ["uint32_t subpassIndex",
2321
+ { "sampleLocationsInfo" => VkSampleLocationsInfoEXT }]
2322
+ VkRenderPassSampleLocationsBeginInfoEXT = struct ["VkStructureType sType",
2323
+ "void * pNext",
2324
+ "uint32_t attachmentInitialSampleLocationsCount",
2325
+ "VkAttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations",
2326
+ "uint32_t postSubpassSampleLocationsCount",
2327
+ "VkSubpassSampleLocationsEXT * pPostSubpassSampleLocations"]
2328
+
2329
+ VkSamplerCreateInfo = struct ["VkStructureType sType",
2330
+ "void * pNext",
2331
+ "VkSamplerCreateFlags flags",
2332
+ "VkFilter magFilter",
2333
+ "VkFilter minFilter",
2334
+ "VkSamplerMipmapMode mipmapMode",
2335
+ "VkSamplerAddressMode addressModeU",
2336
+ "VkSamplerAddressMode addressModeV",
2337
+ "VkSamplerAddressMode addressModeW",
2338
+ "float mipLodBias",
2339
+ "VkBool32 anisotropyEnable",
2340
+ "float maxAnisotropy",
2341
+ "VkBool32 compareEnable",
2342
+ "VkCompareOp compareOp",
2343
+ "float minLod",
2344
+ "float maxLod",
2345
+ "VkBorderColor borderColor",
2346
+ "VkBool32 unnormalizedCoordinates"]
2347
+
2348
+ VkSamplerReductionModeCreateInfoEXT = struct ["VkStructureType sType",
2349
+ "void * pNext",
2350
+ "VkSamplerReductionModeEXT reductionMode"]
2351
+
2352
+ VkSamplerYcbcrConversionCreateInfo = struct ["VkStructureType sType",
2353
+ "void * pNext",
2354
+ "VkFormat format",
2355
+ "VkSamplerYcbcrModelConversion ycbcrModel",
2356
+ "VkSamplerYcbcrRange ycbcrRange",
2357
+ { "components" => VkComponentMapping },
2358
+ "VkChromaLocation xChromaOffset",
2359
+ "VkChromaLocation yChromaOffset",
2360
+ "VkFilter chromaFilter",
2361
+ "VkBool32 forceExplicitReconstruction"]
2362
+
2363
+ VkSamplerYcbcrConversionCreateInfoKHR = VkSamplerYcbcrConversionCreateInfo
2364
+
2365
+ VkSamplerYcbcrConversionImageFormatProperties = struct ["VkStructureType sType",
2366
+ "void * pNext",
2367
+ "uint32_t combinedImageSamplerDescriptorCount"]
2368
+
2369
+ VkSamplerYcbcrConversionImageFormatPropertiesKHR = VkSamplerYcbcrConversionImageFormatProperties
2370
+
2371
+ VkSamplerYcbcrConversionInfo = struct ["VkStructureType sType",
2372
+ "void * pNext",
2373
+ "VkSamplerYcbcrConversion conversion"]
2374
+
2375
+ VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo
2376
+
2377
+ VkSemaphoreCreateInfo = struct ["VkStructureType sType",
2378
+ "void * pNext",
2379
+ "VkSemaphoreCreateFlags flags"]
2380
+
2381
+ VkSemaphoreGetFdInfoKHR = struct ["VkStructureType sType",
2382
+ "void * pNext",
2383
+ "VkSemaphore semaphore",
2384
+ "VkExternalSemaphoreHandleTypeFlagBits handleType"]
2385
+
2386
+ VkSemaphoreGetWin32HandleInfoKHR = struct ["VkStructureType sType",
2387
+ "void * pNext",
2388
+ "VkSemaphore semaphore",
2389
+ "VkExternalSemaphoreHandleTypeFlagBits handleType"]
2390
+
2391
+ VkShaderModuleCreateInfo = struct ["VkStructureType sType",
2392
+ "void * pNext",
2393
+ "VkShaderModuleCreateFlags flags",
2394
+ "size_t codeSize",
2395
+ "uint32_t * pCode"]
2396
+
2397
+ VkShaderModuleValidationCacheCreateInfoEXT = struct ["VkStructureType sType",
2398
+ "void * pNext",
2399
+ "VkValidationCacheEXT validationCache"]
2400
+
2401
+ VkShaderResourceUsageAMD = struct ["uint32_t numUsedVgprs",
2402
+ "uint32_t numUsedSgprs",
2403
+ "uint32_t ldsSizePerLocalWorkGroup",
2404
+ "size_t ldsUsageSizeInBytes",
2405
+ "size_t scratchMemUsageInBytes"]
2406
+
2407
+ VkShaderStatisticsInfoAMD = struct ["VkShaderStageFlags shaderStageMask",
2408
+ { "resourceUsage" => VkShaderResourceUsageAMD },
2409
+ "uint32_t numPhysicalVgprs",
2410
+ "uint32_t numPhysicalSgprs",
2411
+ "uint32_t numAvailableVgprs",
2412
+ "uint32_t numAvailableSgprs",
2413
+ "uint32_t computeWorkGroupSize [3]"]
2414
+
2415
+ VkSharedPresentSurfaceCapabilitiesKHR = struct ["VkStructureType sType",
2416
+ "void * pNext",
2417
+ "VkImageUsageFlags sharedPresentSupportedUsageFlags"]
2418
+
2419
+ VkSparseImageFormatProperties = struct ["VkImageAspectFlags aspectMask",
2420
+ { "imageGranularity" => VkExtent3D },
2421
+ "VkSparseImageFormatFlags flags"]
2422
+
2423
+ VkSparseImageFormatProperties2 = struct ["VkStructureType sType",
2424
+ "void * pNext",
2425
+ { "properties" => VkSparseImageFormatProperties }]
2426
+
2427
+ VkSparseImageFormatProperties2KHR = VkSparseImageFormatProperties2
2428
+
2429
+ VkSparseImageMemoryRequirements = struct [{ "formatProperties" => VkSparseImageFormatProperties },
2430
+ "uint32_t imageMipTailFirstLod",
2431
+ "VkDeviceSize imageMipTailSize",
2432
+ "VkDeviceSize imageMipTailOffset",
2433
+ "VkDeviceSize imageMipTailStride"]
2434
+
2435
+ VkSparseImageMemoryRequirements2 = struct ["VkStructureType sType",
2436
+ "void * pNext",
2437
+ { "memoryRequirements" => VkSparseImageMemoryRequirements }]
2438
+
2439
+ VkSparseImageMemoryRequirements2KHR = VkSparseImageMemoryRequirements2
2440
+
2441
+ VkSubmitInfo = struct ["VkStructureType sType",
2442
+ "void * pNext",
2443
+ "uint32_t waitSemaphoreCount",
2444
+ "VkSemaphore * pWaitSemaphores",
2445
+ "VkPipelineStageFlags * pWaitDstStageMask",
2446
+ "uint32_t commandBufferCount",
2447
+ "VkCommandBuffer * pCommandBuffers",
2448
+ "uint32_t signalSemaphoreCount",
2449
+ "VkSemaphore * pSignalSemaphores"]
2450
+
2451
+ VkSubpassBeginInfoKHR = struct ["VkStructureType sType",
2452
+ "void * pNext",
2453
+ "VkSubpassContents contents"]
2454
+
2455
+ VkSubpassEndInfoKHR = struct ["VkStructureType sType",
2456
+ "void * pNext"]
2457
+
2458
+ VkSurfaceCapabilities2EXT = struct ["VkStructureType sType",
2459
+ "void * pNext",
2460
+ "uint32_t minImageCount",
2461
+ "uint32_t maxImageCount",
2462
+ { "currentExtent" => VkExtent2D },
2463
+ { "minImageExtent" => VkExtent2D },
2464
+ { "maxImageExtent" => VkExtent2D },
2465
+ "uint32_t maxImageArrayLayers",
2466
+ "VkSurfaceTransformFlagsKHR supportedTransforms",
2467
+ "VkSurfaceTransformFlagBitsKHR currentTransform",
2468
+ "VkCompositeAlphaFlagsKHR supportedCompositeAlpha",
2469
+ "VkImageUsageFlags supportedUsageFlags",
2470
+ "VkSurfaceCounterFlagsEXT supportedSurfaceCounters"]
2471
+
2472
+ VkSurfaceCapabilitiesKHR = struct ["uint32_t minImageCount",
2473
+ "uint32_t maxImageCount",
2474
+ { "currentExtent" => VkExtent2D },
2475
+ { "minImageExtent" => VkExtent2D },
2476
+ { "maxImageExtent" => VkExtent2D },
2477
+ "uint32_t maxImageArrayLayers",
2478
+ "VkSurfaceTransformFlagsKHR supportedTransforms",
2479
+ "VkSurfaceTransformFlagBitsKHR currentTransform",
2480
+ "VkCompositeAlphaFlagsKHR supportedCompositeAlpha",
2481
+ "VkImageUsageFlags supportedUsageFlags"]
2482
+ VkSurfaceCapabilities2KHR = struct ["VkStructureType sType",
2483
+ "void * pNext",
2484
+ { "surfaceCapabilities" => VkSurfaceCapabilitiesKHR }]
2485
+
2486
+ VkSurfaceFormatKHR = struct ["VkFormat format",
2487
+ "VkColorSpaceKHR colorSpace"]
2488
+ VkSurfaceFormat2KHR = struct ["VkStructureType sType",
2489
+ "void * pNext",
2490
+ { "surfaceFormat" => VkSurfaceFormatKHR }]
2491
+
2492
+ VkSwapchainCounterCreateInfoEXT = struct ["VkStructureType sType",
2493
+ "void * pNext",
2494
+ "VkSurfaceCounterFlagsEXT surfaceCounters"]
2495
+
2496
+ VkSwapchainCreateInfoKHR = struct ["VkStructureType sType",
2497
+ "void * pNext",
2498
+ "VkSwapchainCreateFlagsKHR flags",
2499
+ "VkSurfaceKHR surface",
2500
+ "uint32_t minImageCount",
2501
+ "VkFormat imageFormat",
2502
+ "VkColorSpaceKHR imageColorSpace",
2503
+ { "imageExtent" => VkExtent2D },
2504
+ "uint32_t imageArrayLayers",
2505
+ "VkImageUsageFlags imageUsage",
2506
+ "VkSharingMode imageSharingMode",
2507
+ "uint32_t queueFamilyIndexCount",
2508
+ "uint32_t * pQueueFamilyIndices",
2509
+ "VkSurfaceTransformFlagBitsKHR preTransform",
2510
+ "VkCompositeAlphaFlagBitsKHR compositeAlpha",
2511
+ "VkPresentModeKHR presentMode",
2512
+ "VkBool32 clipped",
2513
+ "VkSwapchainKHR oldSwapchain"]
2514
+
2515
+ VkTextureLODGatherFormatPropertiesAMD = struct ["VkStructureType sType",
2516
+ "void * pNext",
2517
+ "VkBool32 supportsTextureGatherLODBiasAMD"]
2518
+
2519
+ VkValidationCacheCreateInfoEXT = struct ["VkStructureType sType",
2520
+ "void * pNext",
2521
+ "VkValidationCacheCreateFlagsEXT flags",
2522
+ "size_t initialDataSize",
2523
+ "void * pInitialData"]
2524
+
2525
+ VkValidationFlagsEXT = struct ["VkStructureType sType",
2526
+ "void * pNext",
2527
+ "uint32_t disabledValidationCheckCount",
2528
+ "VkValidationCheckEXT * pDisabledValidationChecks"]
2529
+
2530
+ VkViSurfaceCreateInfoNN = struct ["VkStructureType sType",
2531
+ "void * pNext",
2532
+ "VkViSurfaceCreateFlagsNN flags",
2533
+ "void * window"]
2534
+
2535
+ VkWaylandSurfaceCreateInfoKHR = struct ["VkStructureType sType",
2536
+ "void * pNext",
2537
+ "VkWaylandSurfaceCreateFlagsKHR flags",
2538
+ "wl_display * display",
2539
+ "wl_surface * surface"]
2540
+
2541
+ VkWin32KeyedMutexAcquireReleaseInfoKHR = struct ["VkStructureType sType",
2542
+ "void * pNext",
2543
+ "uint32_t acquireCount",
2544
+ "VkDeviceMemory * pAcquireSyncs",
2545
+ "uint64_t * pAcquireKeys",
2546
+ "uint32_t * pAcquireTimeouts",
2547
+ "uint32_t releaseCount",
2548
+ "VkDeviceMemory * pReleaseSyncs",
2549
+ "uint64_t * pReleaseKeys"]
2550
+
2551
+ VkWin32KeyedMutexAcquireReleaseInfoNV = struct ["VkStructureType sType",
2552
+ "void * pNext",
2553
+ "uint32_t acquireCount",
2554
+ "VkDeviceMemory * pAcquireSyncs",
2555
+ "uint64_t * pAcquireKeys",
2556
+ "uint32_t * pAcquireTimeoutMilliseconds",
2557
+ "uint32_t releaseCount",
2558
+ "VkDeviceMemory * pReleaseSyncs",
2559
+ "uint64_t * pReleaseKeys"]
2560
+
2561
+ VkWin32SurfaceCreateInfoKHR = struct ["VkStructureType sType",
2562
+ "void * pNext",
2563
+ "VkWin32SurfaceCreateFlagsKHR flags",
2564
+ "HINSTANCE hinstance",
2565
+ "HWND hwnd"]
2566
+
2567
+ VkWriteDescriptorSet = struct ["VkStructureType sType",
2568
+ "void * pNext",
2569
+ "VkDescriptorSet dstSet",
2570
+ "uint32_t dstBinding",
2571
+ "uint32_t dstArrayElement",
2572
+ "uint32_t descriptorCount",
2573
+ "VkDescriptorType descriptorType",
2574
+ "VkDescriptorImageInfo * pImageInfo",
2575
+ "VkDescriptorBufferInfo * pBufferInfo",
2576
+ "VkBufferView * pTexelBufferView"]
2577
+
2578
+ VkWriteDescriptorSetAccelerationStructureNV = struct ["VkStructureType sType",
2579
+ "void * pNext",
2580
+ "uint32_t accelerationStructureCount",
2581
+ "VkAccelerationStructureNV * pAccelerationStructures"]
2582
+
2583
+ VkWriteDescriptorSetInlineUniformBlockEXT = struct ["VkStructureType sType",
2584
+ "void * pNext",
2585
+ "uint32_t dataSize",
2586
+ "void * pData"]
2587
+
2588
+ VkXcbSurfaceCreateInfoKHR = struct ["VkStructureType sType",
2589
+ "void * pNext",
2590
+ "VkXcbSurfaceCreateFlagsKHR flags",
2591
+ "xcb_connection_t * connection",
2592
+ "xcb_window_t window"]
2593
+
2594
+ VkXlibSurfaceCreateInfoKHR = struct ["VkStructureType sType",
2595
+ "void * pNext",
2596
+ "VkXlibSurfaceCreateFlagsKHR flags",
2597
+ "Display * dpy",
2598
+ "Window window"]
2599
+
2600
+ end