1/* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2
3/*
4 * Copyright 2020 Google LLC
5 * SPDX-License-Identifier: MIT
6 */
7
8#ifndef VN_PROTOCOL_DRIVER_INFO_H
9#define VN_PROTOCOL_DRIVER_INFO_H
10
11#include "vn_protocol_driver_defines.h"
12
13static inline uint32_t
14vn_info_wire_format_version(void)
15{
16    return 0;
17}
18
19static inline uint32_t
20vn_info_vk_xml_version(void)
21{
22    return VK_MAKE_API_VERSION(0, 1, 2, 182);
23}
24
25static inline int
26vn_info_extension_compare(const void *a, const void *b)
27{
28   return strcmp(a, *(const char **)b);
29}
30
31static inline uint32_t
32vn_info_extension_spec_version(const char *name)
33{
34    static uint32_t ext_count = 54;
35    static const char *ext_names[54] = {
36        "VK_EXT_command_serialization",
37        "VK_EXT_descriptor_indexing",
38        "VK_EXT_external_memory_dma_buf",
39        "VK_EXT_host_query_reset",
40        "VK_EXT_image_drm_format_modifier",
41        "VK_EXT_queue_family_foreign",
42        "VK_EXT_sampler_filter_minmax",
43        "VK_EXT_scalar_block_layout",
44        "VK_EXT_separate_stencil_usage",
45        "VK_EXT_shader_viewport_index_layer",
46        "VK_EXT_transform_feedback",
47        "VK_KHR_16bit_storage",
48        "VK_KHR_8bit_storage",
49        "VK_KHR_bind_memory2",
50        "VK_KHR_buffer_device_address",
51        "VK_KHR_create_renderpass2",
52        "VK_KHR_dedicated_allocation",
53        "VK_KHR_depth_stencil_resolve",
54        "VK_KHR_descriptor_update_template",
55        "VK_KHR_device_group",
56        "VK_KHR_device_group_creation",
57        "VK_KHR_draw_indirect_count",
58        "VK_KHR_driver_properties",
59        "VK_KHR_external_fence",
60        "VK_KHR_external_fence_capabilities",
61        "VK_KHR_external_memory",
62        "VK_KHR_external_memory_capabilities",
63        "VK_KHR_external_memory_fd",
64        "VK_KHR_external_semaphore",
65        "VK_KHR_external_semaphore_capabilities",
66        "VK_KHR_get_memory_requirements2",
67        "VK_KHR_get_physical_device_properties2",
68        "VK_KHR_image_format_list",
69        "VK_KHR_imageless_framebuffer",
70        "VK_KHR_maintenance1",
71        "VK_KHR_maintenance2",
72        "VK_KHR_maintenance3",
73        "VK_KHR_multiview",
74        "VK_KHR_relaxed_block_layout",
75        "VK_KHR_sampler_mirror_clamp_to_edge",
76        "VK_KHR_sampler_ycbcr_conversion",
77        "VK_KHR_separate_depth_stencil_layouts",
78        "VK_KHR_shader_atomic_int64",
79        "VK_KHR_shader_draw_parameters",
80        "VK_KHR_shader_float16_int8",
81        "VK_KHR_shader_float_controls",
82        "VK_KHR_shader_subgroup_extended_types",
83        "VK_KHR_spirv_1_4",
84        "VK_KHR_storage_buffer_storage_class",
85        "VK_KHR_timeline_semaphore",
86        "VK_KHR_uniform_buffer_standard_layout",
87        "VK_KHR_variable_pointers",
88        "VK_KHR_vulkan_memory_model",
89        "VK_MESA_venus_protocol",
90    };
91    static const uint32_t ext_versions[54] = {
92        0,
93        2,
94        1,
95        1,
96        1,
97        1,
98        2,
99        1,
100        1,
101        1,
102        1,
103        1,
104        1,
105        1,
106        1,
107        1,
108        3,
109        1,
110        1,
111        4,
112        1,
113        1,
114        1,
115        1,
116        1,
117        1,
118        1,
119        1,
120        1,
121        1,
122        1,
123        2,
124        1,
125        1,
126        2,
127        1,
128        1,
129        1,
130        1,
131        3,
132        14,
133        1,
134        1,
135        1,
136        1,
137        4,
138        1,
139        1,
140        1,
141        2,
142        1,
143        1,
144        3,
145        100000,
146    };
147    const char **found;
148
149    found = bsearch(name, ext_names, ext_count, sizeof(ext_names[0]),
150          vn_info_extension_compare);
151
152    return found ? ext_versions[found - ext_names] : 0;
153}
154
155#endif /* VN_PROTOCOL_DRIVER_INFO_H */
156