diff options
Diffstat (limited to 'scripts/generate_vulkan_wrapper.py')
| -rwxr-xr-x | scripts/generate_vulkan_wrapper.py | 128 |
1 files changed, 98 insertions, 30 deletions
diff --git a/scripts/generate_vulkan_wrapper.py b/scripts/generate_vulkan_wrapper.py index 8dcb89fa..9ff6a2cc 100755 --- a/scripts/generate_vulkan_wrapper.py +++ b/scripts/generate_vulkan_wrapper.py @@ -385,7 +385,7 @@ VK_KHR_shader_float16_int8 = Extension(name='VK_KHR_shader_float16_int8', versio VK_KHR_16bit_storage = Extension(name='VK_KHR_16bit_storage', version=1, guard=None, commands=[ ]) -VK_KHR_incremental_present = Extension(name='VK_KHR_incremental_present', version=1, guard=None, commands=[ +VK_KHR_incremental_present = Extension(name='VK_KHR_incremental_present', version=2, guard=None, commands=[ ]) VK_KHR_descriptor_update_template = Extension(name='VK_KHR_descriptor_update_template', version=1, guard=None, commands=[ @@ -587,7 +587,7 @@ VK_KHR_copy_commands2 = Extension(name='VK_KHR_copy_commands2', version=1, guard Command(name='vkCmdResolveImage2KHR', dispatch='VkCommandBuffer'), ]) -VK_EXT_debug_report = Extension(name='VK_EXT_debug_report', version=9, guard=None, commands=[ +VK_EXT_debug_report = Extension(name='VK_EXT_debug_report', version=10, guard=None, commands=[ Command(name='vkCreateDebugReportCallbackEXT', dispatch='VkInstance'), Command(name='vkDestroyDebugReportCallbackEXT', dispatch='VkInstance'), Command(name='vkDebugReportMessageEXT', dispatch='VkInstance'), @@ -875,7 +875,7 @@ VK_AMD_buffer_marker = Extension(name='VK_AMD_buffer_marker', version=1, guard=N VK_AMD_pipeline_compiler_control = Extension(name='VK_AMD_pipeline_compiler_control', version=1, guard=None, commands=[ ]) -VK_EXT_calibrated_timestamps = Extension(name='VK_EXT_calibrated_timestamps', version=1, guard=None, commands=[ +VK_EXT_calibrated_timestamps = Extension(name='VK_EXT_calibrated_timestamps', version=2, guard=None, commands=[ Command(name='vkGetPhysicalDeviceCalibrateableTimeDomainsEXT', dispatch='VkPhysicalDevice'), Command(name='vkGetCalibratedTimestampsEXT', dispatch='VkDevice'), ]) @@ -1047,10 +1047,13 @@ VK_NV_device_generated_commands = Extension(name='VK_NV_device_generated_command Command(name='vkDestroyIndirectCommandsLayoutNV', dispatch='VkDevice'), ]) +VK_NV_inherited_viewport_scissor = Extension(name='VK_NV_inherited_viewport_scissor', version=1, guard=None, commands=[ +]) + VK_EXT_texel_buffer_alignment = Extension(name='VK_EXT_texel_buffer_alignment', version=1, guard=None, commands=[ ]) -VK_QCOM_render_pass_transform = Extension(name='VK_QCOM_render_pass_transform', version=1, guard=None, commands=[ +VK_QCOM_render_pass_transform = Extension(name='VK_QCOM_render_pass_transform', version=2, guard=None, commands=[ ]) VK_EXT_device_memory_report = Extension(name='VK_EXT_device_memory_report', version=2, guard=None, commands=[ @@ -1085,10 +1088,13 @@ VK_NV_fragment_shading_rate_enums = Extension(name='VK_NV_fragment_shading_rate_ Command(name='vkCmdSetFragmentShadingRateEnumNV', dispatch='VkCommandBuffer'), ]) +VK_EXT_ycbcr_2plane_444_formats = Extension(name='VK_EXT_ycbcr_2plane_444_formats', version=1, guard=None, commands=[ +]) + VK_EXT_fragment_density_map2 = Extension(name='VK_EXT_fragment_density_map2', version=1, guard=None, commands=[ ]) -VK_QCOM_rotated_copy_commands = Extension(name='VK_QCOM_rotated_copy_commands', version=0, guard=None, commands=[ +VK_QCOM_rotated_copy_commands = Extension(name='VK_QCOM_rotated_copy_commands', version=1, guard=None, commands=[ ]) VK_EXT_image_robustness = Extension(name='VK_EXT_image_robustness', version=1, guard=None, commands=[ @@ -1105,6 +1111,22 @@ VK_NV_acquire_winrt_display = Extension(name='VK_NV_acquire_winrt_display', vers VK_VALVE_mutable_descriptor_type = Extension(name='VK_VALVE_mutable_descriptor_type', version=1, guard=None, commands=[ ]) +VK_EXT_vertex_input_dynamic_state = Extension(name='VK_EXT_vertex_input_dynamic_state', version=2, guard=None, commands=[ + Command(name='vkCmdSetVertexInputEXT', dispatch='VkCommandBuffer'), +]) + +VK_EXT_extended_dynamic_state2 = Extension(name='VK_EXT_extended_dynamic_state2', version=1, guard=None, commands=[ + Command(name='vkCmdSetPatchControlPointsEXT', dispatch='VkCommandBuffer'), + Command(name='vkCmdSetRasterizerDiscardEnableEXT', dispatch='VkCommandBuffer'), + Command(name='vkCmdSetDepthBiasEnableEXT', dispatch='VkCommandBuffer'), + Command(name='vkCmdSetLogicOpEXT', dispatch='VkCommandBuffer'), + Command(name='vkCmdSetPrimitiveRestartEnableEXT', dispatch='VkCommandBuffer'), +]) + +VK_EXT_color_write_enable = Extension(name='VK_EXT_color_write_enable', version=1, guard=None, commands=[ + Command(name='vkCmdSetColorWriteEnableEXT', dispatch='VkCommandBuffer'), +]) + VK_KHR_acceleration_structure = Extension(name='VK_KHR_acceleration_structure', version=11, guard=None, commands=[ Command(name='vkCreateAccelerationStructureKHR', dispatch='VkDevice'), Command(name='vkDestroyAccelerationStructureKHR', dispatch='VkDevice'), @@ -1249,7 +1271,39 @@ VK_QNX_screen_surface = Extension(name='VK_QNX_screen_surface', version=1, guard Command(name='vkGetPhysicalDeviceScreenPresentationSupportQNX', dispatch='VkPhysicalDevice'), ]) -VK_KHR_portability_subset = Extension(name='VK_KHR_portability_subset', version=1, guard='VK_USE_PLATFORM_SCREEN_QNX', commands=[ +VK_KHR_video_queue = Extension(name='VK_KHR_video_queue', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ + Command(name='vkGetPhysicalDeviceVideoCapabilitiesKHR', dispatch='VkPhysicalDevice'), + Command(name='vkGetPhysicalDeviceVideoFormatPropertiesKHR', dispatch='VkPhysicalDevice'), + Command(name='vkCreateVideoSessionKHR', dispatch='VkDevice'), + Command(name='vkDestroyVideoSessionKHR', dispatch='VkDevice'), + Command(name='vkGetVideoSessionMemoryRequirementsKHR', dispatch='VkDevice'), + Command(name='vkBindVideoSessionMemoryKHR', dispatch='VkDevice'), + Command(name='vkCreateVideoSessionParametersKHR', dispatch='VkDevice'), + Command(name='vkUpdateVideoSessionParametersKHR', dispatch='VkDevice'), + Command(name='vkDestroyVideoSessionParametersKHR', dispatch='VkDevice'), + Command(name='vkCmdBeginVideoCodingKHR', dispatch='VkCommandBuffer'), + Command(name='vkCmdEndVideoCodingKHR', dispatch='VkCommandBuffer'), + Command(name='vkCmdControlVideoCodingKHR', dispatch='VkCommandBuffer'), +]) + +VK_KHR_video_decode_queue = Extension(name='VK_KHR_video_decode_queue', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ + Command(name='vkCmdDecodeVideoKHR', dispatch='VkCommandBuffer'), +]) + +VK_KHR_portability_subset = Extension(name='VK_KHR_portability_subset', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ +]) + +VK_KHR_video_encode_queue = Extension(name='VK_KHR_video_encode_queue', version=2, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ + Command(name='vkCmdEncodeVideoKHR', dispatch='VkCommandBuffer'), +]) + +VK_EXT_video_encode_h264 = Extension(name='VK_EXT_video_encode_h264', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ +]) + +VK_EXT_video_decode_h264 = Extension(name='VK_EXT_video_decode_h264', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ +]) + +VK_EXT_video_decode_h265 = Extension(name='VK_EXT_video_decode_h265', version=1, guard='VK_ENABLE_BETA_EXTENSIONS', commands=[ ]) extensions = [ @@ -1439,6 +1493,7 @@ extensions = [ VK_EXT_extended_dynamic_state, VK_EXT_shader_demote_to_helper_invocation, VK_NV_device_generated_commands, + VK_NV_inherited_viewport_scissor, VK_EXT_texel_buffer_alignment, VK_QCOM_render_pass_transform, VK_EXT_device_memory_report, @@ -1450,12 +1505,16 @@ extensions = [ VK_NV_device_diagnostics_config, VK_QCOM_render_pass_store_ops, VK_NV_fragment_shading_rate_enums, + VK_EXT_ycbcr_2plane_444_formats, VK_EXT_fragment_density_map2, VK_QCOM_rotated_copy_commands, VK_EXT_image_robustness, VK_EXT_4444_formats, VK_NV_acquire_winrt_display, VK_VALVE_mutable_descriptor_type, + VK_EXT_vertex_input_dynamic_state, + VK_EXT_extended_dynamic_state2, + VK_EXT_color_write_enable, VK_KHR_acceleration_structure, VK_KHR_ray_tracing_pipeline, VK_KHR_ray_query, @@ -1484,7 +1543,13 @@ extensions = [ VK_GGP_stream_descriptor_surface, VK_GGP_frame_token, VK_QNX_screen_surface, + VK_KHR_video_queue, + VK_KHR_video_decode_queue, VK_KHR_portability_subset, + VK_KHR_video_encode_queue, + VK_EXT_video_encode_h264, + VK_EXT_video_decode_h264, + VK_EXT_video_decode_h265, ] # end of generated code @@ -1530,16 +1595,17 @@ def generate_wrapper_header(guard): if not any(ext.name.startswith(s) for s in wrapped_exts): continue - if ext.guard: - lines.append("#ifdef %s" % ext.guard) + if ext.commands: + if ext.guard: + lines.append("#ifdef %s" % ext.guard) - lines.append("// %s" % ext.name) - for cmd in ext.commands: - lines.append("extern PFN_%s %s;" % (cmd.name, cmd.name)) + lines.append("// %s" % ext.name) + for cmd in ext.commands: + lines.append("extern PFN_%s %s;" % (cmd.name, cmd.name)) - if ext.guard: - lines.append("#endif") - lines.append("") + if ext.guard: + lines.append("#endif") + lines.append("") lines.append("") lines.append("") @@ -1591,15 +1657,16 @@ def generate_wrapper_source(header): if not any(ext.name.startswith(s) for s in wrapped_exts): continue - if ext.guard: - lines.append("") - lines.append("#ifdef %s" % ext.guard) + if ext.commands: + if ext.guard: + lines.append("") + lines.append("#ifdef %s" % ext.guard) - for cmd in ext.commands: - lines.append(" %s = reinterpret_cast<PFN_%s>(dlsym(libvulkan, \"%s\"));" % (cmd.name, cmd.name, cmd.name)) + for cmd in ext.commands: + lines.append(" %s = reinterpret_cast<PFN_%s>(dlsym(libvulkan, \"%s\"));" % (cmd.name, cmd.name, cmd.name)) - if ext.guard: - lines.append("#endif") + if ext.guard: + lines.append("#endif") lines.append(" return 1;") lines.append("}") @@ -1607,15 +1674,16 @@ def generate_wrapper_source(header): lines.append("// No Vulkan support, do not set function addresses") for ext in extensions: - if ext.guard: - lines.append("") - lines.append("#ifdef %s" % ext.guard) + if ext.commands: + if ext.guard: + lines.append("") + lines.append("#ifdef %s" % ext.guard) - for cmd in ext.commands: - lines.append("PFN_%s %s;" % (cmd.name, cmd.name)) + for cmd in ext.commands: + lines.append("PFN_%s %s;" % (cmd.name, cmd.name)) - if ext.guard: - lines.append("#endif") + if ext.guard: + lines.append("#endif") lines.append("") lines.append("#ifdef __cplusplus") @@ -1634,7 +1702,7 @@ def parse_subheader(filename, ext_guard): for line in f: line = line.strip(); - if line.startswith("#define VK_API_VERSION"): + if line.startswith("#define VK_API_VERSION") and "VK_MAKE_API_VERSION" in line: minor_end = line.rfind(",") minor_begin = line.rfind(",", 0, minor_end) + 1 spec_version = int(line[minor_begin:minor_end]) @@ -1668,7 +1736,7 @@ def parse_vulkan_h(filename): if line.startswith("#include \"vulkan_"): # Extract the filename and parse it. Must be local to script file (no path). extensions.extend(parse_subheader(line[10:].replace('"', ''), ext_guard)) - elif line.startswith("#ifdef VK_USE_PLATFORM"): + elif line.startswith("#ifdef VK_USE_PLATFORM") or line.startswith('#ifdef VK_ENABLE_BETA_EXTENSIONS'): guard_begin = line.find(" ") + 1 ext_guard = line[guard_begin:] elif ext_guard and line.startswith("#endif") and ext_guard in line: |
