1 #ifndef _VULKAN_JSON_PARSER_HPP
2 #define _VULKAN_JSON_PARSER_HPP
3
4 /*
5 * Copyright (c) 2021 The Khronos Group Inc.
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 *//*!
20 * \file
21 * \brief Defines JSON generators for Vulkan structures
22 */
23
24 /********************************************************************************************/
25 /** This code is generated. To make changes, please modify the scripts or the relevant xml **/
26 /********************************************************************************************/
27
28 #pragma once
29 #include <iostream>
30 #include <map>
31 #include <cinttypes>
32 #include <algorithm>
33 #include <bitset>
34 #include <functional>
35 #include <sstream>
36 #include <cinttypes>
37 #include <json/json.h>
38
39 namespace vk_json_parser
40 {
41
42 template <typename T1, typename T2>
43 class GlobalMem
44 {
45 static constexpr size_t MAX_ALIGNMENT = alignof(std::max_align_t);
46
grow(T1 size=0)47 void grow(T1 size = 0)
48 {
49 //push_back new single vector of size m_tabSize onto vec
50 void *p = calloc(size > m_tabSize ? size : m_tabSize, sizeof(T2));
51 assert(p);
52 m_vec.push_back(p);
53 m_pointer = 0U;
54 }
alloc(T1 size)55 void *alloc(T1 size)
56 {
57 // Align to the next multiple of MAX_ALIGNMENT.
58 size = (size + static_cast<T1>(MAX_ALIGNMENT) - 1) & ~(static_cast<T1>(MAX_ALIGNMENT) - 1);
59
60 void *result = static_cast<uint8_t *>(m_vec.back()) + m_pointer;
61 m_pointer += size;
62 return result;
63 }
64
65 public:
GlobalMem(T1 tabSize_=32768U)66 GlobalMem(T1 tabSize_ = 32768U) : m_tabSize(tabSize_), m_pointer(0U)
67 {
68 }
69
allocate(T1 size)70 void *allocate(T1 size)
71 {
72 if (m_vec.empty() || m_pointer + size >= m_tabSize)
73 {
74 grow();
75 }
76 return alloc(size);
77 }
78
allocate(T1 count,T1 size)79 void *allocate(T1 count, T1 size)
80 {
81 T1 totalSize = count * size;
82 if (m_vec.empty() || m_pointer + totalSize >= m_tabSize)
83 {
84 grow(totalSize);
85 }
86 return alloc(totalSize);
87 }
88 // deallocates all memory. Any use of earlier allocated elements is forbidden
clear()89 void clear()
90 {
91 // remove all vectors from vec excluding the one with index 0
92 for (size_t i = 1; i < m_vec.size(); i++)
93 {
94 free(m_vec[i]);
95 }
96 if (!m_vec.empty())
97 {
98 m_vec.resize(1);
99 }
100 m_pointer = 0;
101 }
102
~GlobalMem()103 ~GlobalMem()
104 {
105 clear();
106 if (!m_vec.empty())
107 {
108 free(m_vec[0]);
109 }
110 }
111
112 private:
113 std::vector<void *> m_vec;
114 T1 m_tabSize;
115 T1 m_pointer;
116 };
117
118 static thread_local GlobalMem<uint32_t, uint8_t> s_globalMem(32768U);
119
120 // To make sure the generated data is consistent across platforms,
121 // we typecast to 32-bit.
parse_size_t(const char * s,Json::Value & obj,size_t & o)122 static void parse_size_t(const char *s, Json::Value &obj, size_t &o)
123 {
124 uint32_t _res = static_cast<uint32_t>(obj.asUInt());
125 o = _res;
126 }
127
parse_char(const char * s,Json::Value & obj,char o[])128 static void parse_char(const char *s, Json::Value &obj, char o[])
129 {
130 std::string _res = obj.asString();
131 memcpy((void *)o, _res.c_str(), static_cast<uint32_t>(_res.size()));
132 o[_res.size()] = '\0';
133 }
parse_char(const char * s,Json::Value & obj,const char * const *)134 static void parse_char(const char *s, Json::Value &obj, const char *const *)
135 {
136 }
parse_char(const char * s,Json::Value & obj,const char ** o)137 static void parse_char(const char *s, Json::Value &obj, const char **o)
138 {
139 std::string _res = obj.asString();
140 char *writePtr = (char *)s_globalMem.allocate(static_cast<uint32_t>(_res.size()) + 1);
141 memcpy((void *)writePtr, _res.c_str(), _res.size());
142 writePtr[_res.size()] = '\0';
143 *o = writePtr;
144 }
145
parse_int32_t(const char * s,Json::Value & obj,int32_t & o)146 static void parse_int32_t(const char *s, Json::Value &obj, int32_t &o)
147 {
148 o = obj.asInt();
149 }
150
parse_uint32_t(const char * s,Json::Value & obj,uint32_t & o)151 static void parse_uint32_t(const char *s, Json::Value &obj, uint32_t &o)
152 {
153 if (obj.isString())
154 if (obj.asString() == "VK_MAX_PHYSICAL_DEVICE_NAME_SIZE")
155 o = 256;
156 else if (obj.asString() == "VK_UUID_SIZE")
157 o = 16;
158 else if (obj.asString() == "VK_LUID_SIZE")
159 o = 8;
160 else if (obj.asString() == "VK_MAX_EXTENSION_NAME_SIZE")
161 o = 256;
162 else if (obj.asString() == "VK_MAX_DESCRIPTION_SIZE")
163 o = 256;
164 else if (obj.asString() == "VK_MAX_MEMORY_TYPES")
165 o = 32;
166 else if (obj.asString() == "VK_MAX_MEMORY_HEAPS")
167 o = 16;
168 else if (obj.asString() == "VK_REMAINING_MIP_LEVELS")
169 o = (~0U);
170 else if (obj.asString() == "VK_REMAINING_ARRAY_LAYERS")
171 o = (~0U);
172 else if (obj.asString() == "VK_ATTACHMENT_UNUSED")
173 o = (~0U);
174 else if (obj.asString() == "VK_TRUE")
175 o = 1;
176 else if (obj.asString() == "VK_FALSE")
177 o = 0;
178 else if (obj.asString() == "VK_QUEUE_FAMILY_IGNORED")
179 o = (~0U);
180 else if (obj.asString() == "VK_QUEUE_FAMILY_EXTERNAL")
181 o = (~1U);
182 else if (obj.asString() == "VK_QUEUE_FAMILY_FOREIGN_EXT")
183 o = (~2U);
184 else if (obj.asString() == "VK_SUBPASS_EXTERNAL")
185 o = (~0U);
186 else if (obj.asString() == "VK_MAX_DEVICE_GROUP_SIZE")
187 o = 32;
188 else if (obj.asString() == "VK_MAX_DRIVER_NAME_SIZE")
189 o = 256;
190 else if (obj.asString() == "VK_MAX_DRIVER_INFO_SIZE")
191 o = 256;
192 else if (obj.asString() == "VK_SHADER_UNUSED_KHR")
193 o = (~0U);
194 else if (obj.asString() == "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT")
195 o = 16;
196 else
197 assert(false);
198 else
199 o = obj.asUInt();
200 }
201
parse_uint8_t(const char * s,Json::Value & obj,uint8_t & o)202 static void parse_uint8_t(const char *s, Json::Value &obj, uint8_t &o)
203 {
204 o = static_cast<uint8_t>(obj.asUInt());
205 }
206
parse_uint64_t(const char * s,Json::Value & obj,uint64_t & o)207 static void parse_uint64_t(const char *s, Json::Value &obj, uint64_t &o)
208 {
209 if (obj.isString())
210 if (obj.asString() == "VK_WHOLE_SIZE")
211 o = (~0ULL);
212 else
213 assert(false);
214 else
215 o = obj.asUInt64();
216 }
217
parse_float(const char * s,Json::Value & obj,float & o)218 static void parse_float(const char *s, Json::Value &obj, float &o)
219 {
220 if (obj.isString())
221 if (obj.asString() == "VK_LOD_CLAMP_NONE")
222 o = 1000.0F;
223 else if (obj.asString() == "NaN")
224 o = std::numeric_limits<float>::quiet_NaN();
225 else
226 assert(false);
227 else
228 o = obj.asFloat();
229 }
230
parse_int(const char * s,Json::Value & obj,int & o)231 static void parse_int(const char *s, Json::Value &obj, int &o)
232 {
233 o = obj.asInt();
234 }
235
parse_double(const char * s,Json::Value & obj,double & o)236 static void parse_double(const char *s, Json::Value &obj, double &o)
237 {
238 o = obj.asDouble();
239 }
240
parse_int64_t(const char * s,Json::Value & obj,int64_t & o)241 static void parse_int64_t(const char *s, Json::Value &obj, int64_t &o)
242 {
243 o = obj.asInt64();
244 }
245
parse_uint16_t(const char * s,Json::Value & obj,uint16_t & o)246 static void parse_uint16_t(const char *s, Json::Value &obj, uint16_t &o)
247 {
248 o = static_cast<uint16_t>(obj.asUInt());
249 }
250
parse_NvSciBufAttrList(const char * s,Json::Value & obj,vk::pt::NvSciBufAttrList & o)251 static void parse_NvSciBufAttrList(const char *s, Json::Value &obj, vk::pt::NvSciBufAttrList &o)
252 {
253 o = static_cast<vk::pt::NvSciBufAttrList>(obj.asInt());
254 }
255
parse_NvSciBufObj(const char * s,Json::Value & obj,vk::pt::NvSciBufObj & o)256 static void parse_NvSciBufObj(const char *s, Json::Value &obj, vk::pt::NvSciBufObj &o)
257 {
258 o = static_cast<vk::pt::NvSciBufObj>(obj.asInt());
259 }
260
parse_NvSciSyncAttrList(const char * s,Json::Value & obj,vk::pt::NvSciSyncAttrList & o)261 static void parse_NvSciSyncAttrList(const char *s, Json::Value &obj, vk::pt::NvSciSyncAttrList &o)
262 {
263 o = static_cast<vk::pt::NvSciSyncAttrList>(obj.asInt());
264 }
265
parse_NvSciSyncObj(const char * s,Json::Value & obj,vk::pt::NvSciSyncObj & o)266 static void parse_NvSciSyncObj(const char *s, Json::Value &obj, vk::pt::NvSciSyncObj &o)
267 {
268 o = static_cast<vk::pt::NvSciSyncObj>(obj.asInt());
269 }
270
271 // base64 encoder taken from executor/xeTestResultParser.cpp
272
base64decode(const std::string encoded)273 static std::vector<uint8_t> base64decode(const std::string encoded)
274 {
275 int base64DecodeOffset = 0;
276 std::vector<uint8_t> result;
277
278 for (std::size_t inNdx = 0; inNdx < encoded.size(); inNdx++)
279 {
280 uint8_t byte = encoded[inNdx];
281 uint8_t decodedBits = 0;
282
283 if (de::inRange<uint8_t>(byte, 'A', 'Z'))
284 decodedBits = (uint8_t)(byte - 'A');
285 else if (de::inRange<uint8_t>(byte, 'a', 'z'))
286 decodedBits = (uint8_t)(('Z' - 'A' + 1) + (byte - 'a'));
287 else if (de::inRange<uint8_t>(byte, '0', '9'))
288 decodedBits = (uint8_t)(('Z' - 'A' + 1) + ('z' - 'a' + 1) + (byte - '0'));
289 else if (byte == '+')
290 decodedBits = ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 1);
291 else if (byte == '/')
292 decodedBits = ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 2);
293 else
294 continue; // Not an B64 input character.
295
296 int phase = base64DecodeOffset % 4;
297
298 if (phase == 0)
299 result.resize(result.size() + 3, 0);
300
301 // if ((int)image->data.size() < (base64DecodeOffset >> 2) * 3 + 3)
302 // throw TestResultParseError("Malformed base64 data");
303 uint8_t *outPtr = result.data() + (base64DecodeOffset >> 2) * 3;
304
305 switch (phase)
306 {
307 case 0:
308 outPtr[0] |= (uint8_t)(decodedBits << 2);
309 break;
310 case 1:
311 outPtr[0] = (uint8_t)(outPtr[0] | (uint8_t)(decodedBits >> 4));
312 outPtr[1] = (uint8_t)(outPtr[1] | (uint8_t)((decodedBits & 0xF) << 4));
313 break;
314 case 2:
315 outPtr[1] = (uint8_t)(outPtr[1] | (uint8_t)(decodedBits >> 2));
316 outPtr[2] = (uint8_t)(outPtr[2] | (uint8_t)((decodedBits & 0x3) << 6));
317 break;
318 case 3:
319 outPtr[2] |= decodedBits;
320 break;
321 default:
322 DE_ASSERT(false);
323 }
324
325 base64DecodeOffset++;
326 }
327 return result;
328 }
329
parse_void_data(const void * s,Json::Value & obj,void * o,int oSize)330 static void parse_void_data(const void *s, Json::Value &obj, void *o, int oSize)
331 {
332 std::vector<uint8_t> data;
333 if (obj.isString())
334 {
335 data = base64decode(obj.asString());
336 }
337 else
338 {
339 data.resize(oSize);
340 for (int i = 0; i < std::min(oSize, (int)obj.size()); i++)
341 {
342 parse_uint8_t("pData", obj[i], const_cast<uint8_t &>(data[i]));
343 }
344 }
345 memcpy(o, data.data(), oSize);
346 }
347
348 /*************************************** Begin prototypes ***********************************/
349 static void parse_VkSampleMask(const char *s, Json::Value &obj, VkSampleMask &o);
350 static void parse_VkBool32(const char *s, Json::Value &obj, VkBool32 &o);
351 static void parse_VkFlags(const char *s, Json::Value &obj, VkFlags &o);
352 static void parse_VkFlags64(const char *s, Json::Value &obj, VkFlags64 &o);
353 static void parse_VkDeviceSize(const char *s, Json::Value &obj, VkDeviceSize &o);
354 static void parse_VkDeviceAddress(const char *s, Json::Value &obj, VkDeviceAddress &o);
355 static void parse_VkFramebufferCreateFlags(const char *s, Json::Value &obj, VkFramebufferCreateFlags &o);
356 static void parse_VkQueryPoolCreateFlags(const char *s, Json::Value &obj, VkQueryPoolCreateFlags &o);
357 static void parse_VkRenderPassCreateFlags(const char *s, Json::Value &obj, VkRenderPassCreateFlags &o);
358 static void parse_VkSamplerCreateFlags(const char *s, Json::Value &obj, VkSamplerCreateFlags &o);
359 static void parse_VkPipelineLayoutCreateFlags(const char *s, Json::Value &obj, VkPipelineLayoutCreateFlags &o);
360 static void parse_VkPipelineCacheCreateFlags(const char *s, Json::Value &obj, VkPipelineCacheCreateFlags &o);
361 static void parse_VkPipelineDepthStencilStateCreateFlags(const char *s, Json::Value &obj,
362 VkPipelineDepthStencilStateCreateFlags &o);
363 static void parse_VkPipelineDynamicStateCreateFlags(const char *s, Json::Value &obj,
364 VkPipelineDynamicStateCreateFlags &o);
365 static void parse_VkPipelineColorBlendStateCreateFlags(const char *s, Json::Value &obj,
366 VkPipelineColorBlendStateCreateFlags &o);
367 static void parse_VkPipelineMultisampleStateCreateFlags(const char *s, Json::Value &obj,
368 VkPipelineMultisampleStateCreateFlags &o);
369 static void parse_VkPipelineRasterizationStateCreateFlags(const char *s, Json::Value &obj,
370 VkPipelineRasterizationStateCreateFlags &o);
371 static void parse_VkPipelineViewportStateCreateFlags(const char *s, Json::Value &obj,
372 VkPipelineViewportStateCreateFlags &o);
373 static void parse_VkPipelineTessellationStateCreateFlags(const char *s, Json::Value &obj,
374 VkPipelineTessellationStateCreateFlags &o);
375 static void parse_VkPipelineInputAssemblyStateCreateFlags(const char *s, Json::Value &obj,
376 VkPipelineInputAssemblyStateCreateFlags &o);
377 static void parse_VkPipelineVertexInputStateCreateFlags(const char *s, Json::Value &obj,
378 VkPipelineVertexInputStateCreateFlags &o);
379 static void parse_VkPipelineShaderStageCreateFlags(const char *s, Json::Value &obj,
380 VkPipelineShaderStageCreateFlags &o);
381 static void parse_VkDescriptorSetLayoutCreateFlags(const char *s, Json::Value &obj,
382 VkDescriptorSetLayoutCreateFlags &o);
383 static void parse_VkBufferViewCreateFlags(const char *s, Json::Value &obj, VkBufferViewCreateFlags &o);
384 static void parse_VkInstanceCreateFlags(const char *s, Json::Value &obj, VkInstanceCreateFlags &o);
385 static void parse_VkDeviceCreateFlags(const char *s, Json::Value &obj, VkDeviceCreateFlags &o);
386 static void parse_VkDeviceQueueCreateFlags(const char *s, Json::Value &obj, VkDeviceQueueCreateFlags &o);
387 static void parse_VkQueueFlags(const char *s, Json::Value &obj, VkQueueFlags &o);
388 static void parse_VkMemoryPropertyFlags(const char *s, Json::Value &obj, VkMemoryPropertyFlags &o);
389 static void parse_VkMemoryHeapFlags(const char *s, Json::Value &obj, VkMemoryHeapFlags &o);
390 static void parse_VkAccessFlags(const char *s, Json::Value &obj, VkAccessFlags &o);
391 static void parse_VkBufferUsageFlags(const char *s, Json::Value &obj, VkBufferUsageFlags &o);
392 static void parse_VkBufferCreateFlags(const char *s, Json::Value &obj, VkBufferCreateFlags &o);
393 static void parse_VkShaderStageFlags(const char *s, Json::Value &obj, VkShaderStageFlags &o);
394 static void parse_VkImageUsageFlags(const char *s, Json::Value &obj, VkImageUsageFlags &o);
395 static void parse_VkImageCreateFlags(const char *s, Json::Value &obj, VkImageCreateFlags &o);
396 static void parse_VkImageViewCreateFlags(const char *s, Json::Value &obj, VkImageViewCreateFlags &o);
397 static void parse_VkPipelineCreateFlags(const char *s, Json::Value &obj, VkPipelineCreateFlags &o);
398 static void parse_VkColorComponentFlags(const char *s, Json::Value &obj, VkColorComponentFlags &o);
399 static void parse_VkFenceCreateFlags(const char *s, Json::Value &obj, VkFenceCreateFlags &o);
400 static void parse_VkSemaphoreCreateFlags(const char *s, Json::Value &obj, VkSemaphoreCreateFlags &o);
401 static void parse_VkFormatFeatureFlags(const char *s, Json::Value &obj, VkFormatFeatureFlags &o);
402 static void parse_VkQueryControlFlags(const char *s, Json::Value &obj, VkQueryControlFlags &o);
403 static void parse_VkQueryResultFlags(const char *s, Json::Value &obj, VkQueryResultFlags &o);
404 static void parse_VkEventCreateFlags(const char *s, Json::Value &obj, VkEventCreateFlags &o);
405 static void parse_VkCommandPoolCreateFlags(const char *s, Json::Value &obj, VkCommandPoolCreateFlags &o);
406 static void parse_VkCommandPoolResetFlags(const char *s, Json::Value &obj, VkCommandPoolResetFlags &o);
407 static void parse_VkCommandBufferResetFlags(const char *s, Json::Value &obj, VkCommandBufferResetFlags &o);
408 static void parse_VkCommandBufferUsageFlags(const char *s, Json::Value &obj, VkCommandBufferUsageFlags &o);
409 static void parse_VkQueryPipelineStatisticFlags(const char *s, Json::Value &obj, VkQueryPipelineStatisticFlags &o);
410 static void parse_VkMemoryMapFlags(const char *s, Json::Value &obj, VkMemoryMapFlags &o);
411 static void parse_VkImageAspectFlags(const char *s, Json::Value &obj, VkImageAspectFlags &o);
412 static void parse_VkSubpassDescriptionFlags(const char *s, Json::Value &obj, VkSubpassDescriptionFlags &o);
413 static void parse_VkPipelineStageFlags(const char *s, Json::Value &obj, VkPipelineStageFlags &o);
414 static void parse_VkSampleCountFlags(const char *s, Json::Value &obj, VkSampleCountFlags &o);
415 static void parse_VkAttachmentDescriptionFlags(const char *s, Json::Value &obj, VkAttachmentDescriptionFlags &o);
416 static void parse_VkStencilFaceFlags(const char *s, Json::Value &obj, VkStencilFaceFlags &o);
417 static void parse_VkCullModeFlags(const char *s, Json::Value &obj, VkCullModeFlags &o);
418 static void parse_VkDescriptorPoolCreateFlags(const char *s, Json::Value &obj, VkDescriptorPoolCreateFlags &o);
419 static void parse_VkDescriptorPoolResetFlags(const char *s, Json::Value &obj, VkDescriptorPoolResetFlags &o);
420 static void parse_VkDependencyFlags(const char *s, Json::Value &obj, VkDependencyFlags &o);
421 static void parse_VkSubgroupFeatureFlags(const char *s, Json::Value &obj, VkSubgroupFeatureFlags &o);
422 static void parse_VkPerformanceCounterDescriptionFlagsKHR(const char *s, Json::Value &obj,
423 VkPerformanceCounterDescriptionFlagsKHR &o);
424 static void parse_VkAcquireProfilingLockFlagsKHR(const char *s, Json::Value &obj, VkAcquireProfilingLockFlagsKHR &o);
425 static void parse_VkSemaphoreWaitFlags(const char *s, Json::Value &obj, VkSemaphoreWaitFlags &o);
426 static void parse_VkRefreshObjectFlagsKHR(const char *s, Json::Value &obj, VkRefreshObjectFlagsKHR &o);
427 static void parse_VkAccessFlags2KHR(const char *s, Json::Value &obj, VkAccessFlags2KHR &o);
428 static void parse_VkPipelineStageFlags2KHR(const char *s, Json::Value &obj, VkPipelineStageFlags2KHR &o);
429 static void parse_VkCompositeAlphaFlagsKHR(const char *s, Json::Value &obj, VkCompositeAlphaFlagsKHR &o);
430 static void parse_VkDisplayPlaneAlphaFlagsKHR(const char *s, Json::Value &obj, VkDisplayPlaneAlphaFlagsKHR &o);
431 static void parse_VkSurfaceTransformFlagsKHR(const char *s, Json::Value &obj, VkSurfaceTransformFlagsKHR &o);
432 static void parse_VkSwapchainCreateFlagsKHR(const char *s, Json::Value &obj, VkSwapchainCreateFlagsKHR &o);
433 static void parse_VkDisplayModeCreateFlagsKHR(const char *s, Json::Value &obj, VkDisplayModeCreateFlagsKHR &o);
434 static void parse_VkDisplaySurfaceCreateFlagsKHR(const char *s, Json::Value &obj, VkDisplaySurfaceCreateFlagsKHR &o);
435 static void parse_VkHeadlessSurfaceCreateFlagsEXT(const char *s, Json::Value &obj, VkHeadlessSurfaceCreateFlagsEXT &o);
436 static void parse_VkPeerMemoryFeatureFlags(const char *s, Json::Value &obj, VkPeerMemoryFeatureFlags &o);
437 static void parse_VkMemoryAllocateFlags(const char *s, Json::Value &obj, VkMemoryAllocateFlags &o);
438 static void parse_VkDeviceGroupPresentModeFlagsKHR(const char *s, Json::Value &obj,
439 VkDeviceGroupPresentModeFlagsKHR &o);
440 static void parse_VkExternalMemoryHandleTypeFlags(const char *s, Json::Value &obj, VkExternalMemoryHandleTypeFlags &o);
441 static void parse_VkExternalMemoryFeatureFlags(const char *s, Json::Value &obj, VkExternalMemoryFeatureFlags &o);
442 static void parse_VkExternalSemaphoreHandleTypeFlags(const char *s, Json::Value &obj,
443 VkExternalSemaphoreHandleTypeFlags &o);
444 static void parse_VkExternalSemaphoreFeatureFlags(const char *s, Json::Value &obj, VkExternalSemaphoreFeatureFlags &o);
445 static void parse_VkSemaphoreImportFlags(const char *s, Json::Value &obj, VkSemaphoreImportFlags &o);
446 static void parse_VkExternalFenceHandleTypeFlags(const char *s, Json::Value &obj, VkExternalFenceHandleTypeFlags &o);
447 static void parse_VkExternalFenceFeatureFlags(const char *s, Json::Value &obj, VkExternalFenceFeatureFlags &o);
448 static void parse_VkFenceImportFlags(const char *s, Json::Value &obj, VkFenceImportFlags &o);
449 static void parse_VkSurfaceCounterFlagsEXT(const char *s, Json::Value &obj, VkSurfaceCounterFlagsEXT &o);
450 static void parse_VkPipelineDiscardRectangleStateCreateFlagsEXT(const char *s, Json::Value &obj,
451 VkPipelineDiscardRectangleStateCreateFlagsEXT &o);
452 static void parse_VkDebugUtilsMessageSeverityFlagsEXT(const char *s, Json::Value &obj,
453 VkDebugUtilsMessageSeverityFlagsEXT &o);
454 static void parse_VkDebugUtilsMessageTypeFlagsEXT(const char *s, Json::Value &obj, VkDebugUtilsMessageTypeFlagsEXT &o);
455 static void parse_VkDebugUtilsMessengerCreateFlagsEXT(const char *s, Json::Value &obj,
456 VkDebugUtilsMessengerCreateFlagsEXT &o);
457 static void parse_VkDebugUtilsMessengerCallbackDataFlagsEXT(const char *s, Json::Value &obj,
458 VkDebugUtilsMessengerCallbackDataFlagsEXT &o);
459 static void parse_VkPipelineRasterizationConservativeStateCreateFlagsEXT(
460 const char *s, Json::Value &obj, VkPipelineRasterizationConservativeStateCreateFlagsEXT &o);
461 static void parse_VkDescriptorBindingFlags(const char *s, Json::Value &obj, VkDescriptorBindingFlags &o);
462 static void parse_VkResolveModeFlags(const char *s, Json::Value &obj, VkResolveModeFlags &o);
463 static void parse_VkPipelineRasterizationDepthClipStateCreateFlagsEXT(
464 const char *s, Json::Value &obj, VkPipelineRasterizationDepthClipStateCreateFlagsEXT &o);
465 static void parse_VkSubmitFlagsKHR(const char *s, Json::Value &obj, VkSubmitFlagsKHR &o);
466 static void parse_VkInstance(const char *s, Json::Value &obj, VkInstance &o);
467 static void parse_VkPhysicalDevice(const char *s, Json::Value &obj, VkPhysicalDevice &o);
468 static void parse_VkDevice(const char *s, Json::Value &obj, VkDevice &o);
469 static void parse_VkQueue(const char *s, Json::Value &obj, VkQueue &o);
470 static void parse_VkCommandBuffer(const char *s, Json::Value &obj, VkCommandBuffer &o);
471 static void parse_VkDeviceMemory(const char *s, Json::Value &obj, VkDeviceMemory &o);
472 static void parse_VkCommandPool(const char *s, Json::Value &obj, VkCommandPool &o);
473 static void parse_VkBuffer(const char *s, Json::Value &obj, VkBuffer &o);
474 static void parse_VkBufferView(const char *s, Json::Value &obj, VkBufferView &o);
475 static void parse_VkImage(const char *s, Json::Value &obj, VkImage &o);
476 static void parse_VkImageView(const char *s, Json::Value &obj, VkImageView &o);
477 static void parse_VkShaderModule(const char *s, Json::Value &obj, VkShaderModule &o);
478 static void parse_VkPipeline(const char *s, Json::Value &obj, VkPipeline &o);
479 static void parse_VkPipelineLayout(const char *s, Json::Value &obj, VkPipelineLayout &o);
480 static void parse_VkSampler(const char *s, Json::Value &obj, VkSampler &o);
481 static void parse_VkDescriptorSet(const char *s, Json::Value &obj, VkDescriptorSet &o);
482 static void parse_VkDescriptorSetLayout(const char *s, Json::Value &obj, VkDescriptorSetLayout &o);
483 static void parse_VkDescriptorPool(const char *s, Json::Value &obj, VkDescriptorPool &o);
484 static void parse_VkFence(const char *s, Json::Value &obj, VkFence &o);
485 static void parse_VkSemaphore(const char *s, Json::Value &obj, VkSemaphore &o);
486 static void parse_VkEvent(const char *s, Json::Value &obj, VkEvent &o);
487 static void parse_VkQueryPool(const char *s, Json::Value &obj, VkQueryPool &o);
488 static void parse_VkFramebuffer(const char *s, Json::Value &obj, VkFramebuffer &o);
489 static void parse_VkRenderPass(const char *s, Json::Value &obj, VkRenderPass &o);
490 static void parse_VkPipelineCache(const char *s, Json::Value &obj, VkPipelineCache &o);
491 static void parse_VkSamplerYcbcrConversion(const char *s, Json::Value &obj, VkSamplerYcbcrConversion &o);
492 static void parse_VkDisplayKHR(const char *s, Json::Value &obj, VkDisplayKHR &o);
493 static void parse_VkDisplayModeKHR(const char *s, Json::Value &obj, VkDisplayModeKHR &o);
494 static void parse_VkSurfaceKHR(const char *s, Json::Value &obj, VkSurfaceKHR &o);
495 static void parse_VkSwapchainKHR(const char *s, Json::Value &obj, VkSwapchainKHR &o);
496 static void parse_VkDebugUtilsMessengerEXT(const char *s, Json::Value &obj, VkDebugUtilsMessengerEXT &o);
497 static void parse_VkSemaphoreSciSyncPoolNV(const char *s, Json::Value &obj, VkSemaphoreSciSyncPoolNV &o);
498 static void parse_VkAttachmentLoadOp(const char *s, Json::Value &obj, VkAttachmentLoadOp &o);
499 static void parse_VkAttachmentStoreOp(const char *s, Json::Value &obj, VkAttachmentStoreOp &o);
500 static void parse_VkBlendFactor(const char *s, Json::Value &obj, VkBlendFactor &o);
501 static void parse_VkBlendOp(const char *s, Json::Value &obj, VkBlendOp &o);
502 static void parse_VkBorderColor(const char *s, Json::Value &obj, VkBorderColor &o);
503 static void parse_VkFramebufferCreateFlagBits(const char *s, Json::Value &obj, VkFramebufferCreateFlagBits &o);
504 static void parse_VkRenderPassCreateFlagBits(const char *s, Json::Value &obj, VkRenderPassCreateFlagBits &o);
505 static void parse_VkSamplerCreateFlagBits(const char *s, Json::Value &obj, VkSamplerCreateFlagBits &o);
506 static void parse_VkPipelineCacheHeaderVersion(const char *s, Json::Value &obj, VkPipelineCacheHeaderVersion &o);
507 static void parse_VkPipelineCacheCreateFlagBits(const char *s, Json::Value &obj, VkPipelineCacheCreateFlagBits &o);
508 static void parse_VkPipelineShaderStageCreateFlagBits(const char *s, Json::Value &obj,
509 VkPipelineShaderStageCreateFlagBits &o);
510 static void parse_VkDescriptorSetLayoutCreateFlagBits(const char *s, Json::Value &obj,
511 VkDescriptorSetLayoutCreateFlagBits &o);
512 static void parse_VkDeviceQueueCreateFlagBits(const char *s, Json::Value &obj, VkDeviceQueueCreateFlagBits &o);
513 static void parse_VkBufferCreateFlagBits(const char *s, Json::Value &obj, VkBufferCreateFlagBits &o);
514 static void parse_VkBufferUsageFlagBits(const char *s, Json::Value &obj, VkBufferUsageFlagBits &o);
515 static void parse_VkColorComponentFlagBits(const char *s, Json::Value &obj, VkColorComponentFlagBits &o);
516 static void parse_VkComponentSwizzle(const char *s, Json::Value &obj, VkComponentSwizzle &o);
517 static void parse_VkCommandPoolCreateFlagBits(const char *s, Json::Value &obj, VkCommandPoolCreateFlagBits &o);
518 static void parse_VkCommandPoolResetFlagBits(const char *s, Json::Value &obj, VkCommandPoolResetFlagBits &o);
519 static void parse_VkCommandBufferResetFlagBits(const char *s, Json::Value &obj, VkCommandBufferResetFlagBits &o);
520 static void parse_VkCommandBufferLevel(const char *s, Json::Value &obj, VkCommandBufferLevel &o);
521 static void parse_VkCommandBufferUsageFlagBits(const char *s, Json::Value &obj, VkCommandBufferUsageFlagBits &o);
522 static void parse_VkCompareOp(const char *s, Json::Value &obj, VkCompareOp &o);
523 static void parse_VkCullModeFlagBits(const char *s, Json::Value &obj, VkCullModeFlagBits &o);
524 static void parse_VkDescriptorType(const char *s, Json::Value &obj, VkDescriptorType &o);
525 static void parse_VkDynamicState(const char *s, Json::Value &obj, VkDynamicState &o);
526 static void parse_VkFenceCreateFlagBits(const char *s, Json::Value &obj, VkFenceCreateFlagBits &o);
527 static void parse_VkPolygonMode(const char *s, Json::Value &obj, VkPolygonMode &o);
528 static void parse_VkFormat(const char *s, Json::Value &obj, VkFormat &o);
529 static void parse_VkFormatFeatureFlagBits(const char *s, Json::Value &obj, VkFormatFeatureFlagBits &o);
530 static void parse_VkFrontFace(const char *s, Json::Value &obj, VkFrontFace &o);
531 static void parse_VkImageAspectFlagBits(const char *s, Json::Value &obj, VkImageAspectFlagBits &o);
532 static void parse_VkImageCreateFlagBits(const char *s, Json::Value &obj, VkImageCreateFlagBits &o);
533 static void parse_VkImageLayout(const char *s, Json::Value &obj, VkImageLayout &o);
534 static void parse_VkImageTiling(const char *s, Json::Value &obj, VkImageTiling &o);
535 static void parse_VkImageType(const char *s, Json::Value &obj, VkImageType &o);
536 static void parse_VkImageUsageFlagBits(const char *s, Json::Value &obj, VkImageUsageFlagBits &o);
537 static void parse_VkImageViewCreateFlagBits(const char *s, Json::Value &obj, VkImageViewCreateFlagBits &o);
538 static void parse_VkImageViewType(const char *s, Json::Value &obj, VkImageViewType &o);
539 static void parse_VkSharingMode(const char *s, Json::Value &obj, VkSharingMode &o);
540 static void parse_VkIndexType(const char *s, Json::Value &obj, VkIndexType &o);
541 static void parse_VkLogicOp(const char *s, Json::Value &obj, VkLogicOp &o);
542 static void parse_VkMemoryHeapFlagBits(const char *s, Json::Value &obj, VkMemoryHeapFlagBits &o);
543 static void parse_VkAccessFlagBits(const char *s, Json::Value &obj, VkAccessFlagBits &o);
544 static void parse_VkMemoryPropertyFlagBits(const char *s, Json::Value &obj, VkMemoryPropertyFlagBits &o);
545 static void parse_VkPhysicalDeviceType(const char *s, Json::Value &obj, VkPhysicalDeviceType &o);
546 static void parse_VkPipelineBindPoint(const char *s, Json::Value &obj, VkPipelineBindPoint &o);
547 static void parse_VkPipelineCreateFlagBits(const char *s, Json::Value &obj, VkPipelineCreateFlagBits &o);
548 static void parse_VkPrimitiveTopology(const char *s, Json::Value &obj, VkPrimitiveTopology &o);
549 static void parse_VkQueryControlFlagBits(const char *s, Json::Value &obj, VkQueryControlFlagBits &o);
550 static void parse_VkQueryPipelineStatisticFlagBits(const char *s, Json::Value &obj,
551 VkQueryPipelineStatisticFlagBits &o);
552 static void parse_VkQueryResultFlagBits(const char *s, Json::Value &obj, VkQueryResultFlagBits &o);
553 static void parse_VkQueryType(const char *s, Json::Value &obj, VkQueryType &o);
554 static void parse_VkQueueFlagBits(const char *s, Json::Value &obj, VkQueueFlagBits &o);
555 static void parse_VkSubpassContents(const char *s, Json::Value &obj, VkSubpassContents &o);
556 static void parse_VkResult(const char *s, Json::Value &obj, VkResult &o);
557 static void parse_VkShaderStageFlagBits(const char *s, Json::Value &obj, VkShaderStageFlagBits &o);
558 static void parse_VkStencilFaceFlagBits(const char *s, Json::Value &obj, VkStencilFaceFlagBits &o);
559 static void parse_VkStencilOp(const char *s, Json::Value &obj, VkStencilOp &o);
560 static void parse_VkStructureType(const char *s, Json::Value &obj, VkStructureType &o);
561 static void parse_VkSystemAllocationScope(const char *s, Json::Value &obj, VkSystemAllocationScope &o);
562 static void parse_VkInternalAllocationType(const char *s, Json::Value &obj, VkInternalAllocationType &o);
563 static void parse_VkSamplerAddressMode(const char *s, Json::Value &obj, VkSamplerAddressMode &o);
564 static void parse_VkFilter(const char *s, Json::Value &obj, VkFilter &o);
565 static void parse_VkSamplerMipmapMode(const char *s, Json::Value &obj, VkSamplerMipmapMode &o);
566 static void parse_VkVertexInputRate(const char *s, Json::Value &obj, VkVertexInputRate &o);
567 static void parse_VkPipelineStageFlagBits(const char *s, Json::Value &obj, VkPipelineStageFlagBits &o);
568 static void parse_VkSampleCountFlagBits(const char *s, Json::Value &obj, VkSampleCountFlagBits &o);
569 static void parse_VkAttachmentDescriptionFlagBits(const char *s, Json::Value &obj, VkAttachmentDescriptionFlagBits &o);
570 static void parse_VkDescriptorPoolCreateFlagBits(const char *s, Json::Value &obj, VkDescriptorPoolCreateFlagBits &o);
571 static void parse_VkDependencyFlagBits(const char *s, Json::Value &obj, VkDependencyFlagBits &o);
572 static void parse_VkObjectType(const char *s, Json::Value &obj, VkObjectType &o);
573 static void parse_VkEventCreateFlagBits(const char *s, Json::Value &obj, VkEventCreateFlagBits &o);
574 static void parse_VkDiscardRectangleModeEXT(const char *s, Json::Value &obj, VkDiscardRectangleModeEXT &o);
575 static void parse_VkSubpassDescriptionFlagBits(const char *s, Json::Value &obj, VkSubpassDescriptionFlagBits &o);
576 static void parse_VkPointClippingBehavior(const char *s, Json::Value &obj, VkPointClippingBehavior &o);
577 static void parse_VkQueueGlobalPriorityEXT(const char *s, Json::Value &obj, VkQueueGlobalPriorityEXT &o);
578 static void parse_VkTimeDomainEXT(const char *s, Json::Value &obj, VkTimeDomainEXT &o);
579 static void parse_VkConservativeRasterizationModeEXT(const char *s, Json::Value &obj,
580 VkConservativeRasterizationModeEXT &o);
581 static void parse_VkResolveModeFlagBits(const char *s, Json::Value &obj, VkResolveModeFlagBits &o);
582 static void parse_VkDescriptorBindingFlagBits(const char *s, Json::Value &obj, VkDescriptorBindingFlagBits &o);
583 static void parse_VkSemaphoreType(const char *s, Json::Value &obj, VkSemaphoreType &o);
584 static void parse_VkPerformanceCounterScopeKHR(const char *s, Json::Value &obj, VkPerformanceCounterScopeKHR &o);
585 static void parse_VkPerformanceCounterUnitKHR(const char *s, Json::Value &obj, VkPerformanceCounterUnitKHR &o);
586 static void parse_VkPerformanceCounterStorageKHR(const char *s, Json::Value &obj, VkPerformanceCounterStorageKHR &o);
587 static void parse_VkPerformanceCounterDescriptionFlagBitsKHR(const char *s, Json::Value &obj,
588 VkPerformanceCounterDescriptionFlagBitsKHR &o);
589 static void parse_VkAcquireProfilingLockFlagBitsKHR(const char *s, Json::Value &obj,
590 VkAcquireProfilingLockFlagBitsKHR &o);
591 static void parse_VkSemaphoreWaitFlagBits(const char *s, Json::Value &obj, VkSemaphoreWaitFlagBits &o);
592 static void parse_VkLineRasterizationModeEXT(const char *s, Json::Value &obj, VkLineRasterizationModeEXT &o);
593 static void parse_VkRefreshObjectFlagBitsKHR(const char *s, Json::Value &obj, VkRefreshObjectFlagBitsKHR &o);
594 static void parse_VkFaultLevel(const char *s, Json::Value &obj, VkFaultLevel &o);
595 static void parse_VkFaultType(const char *s, Json::Value &obj, VkFaultType &o);
596 static void parse_VkFaultQueryBehavior(const char *s, Json::Value &obj, VkFaultQueryBehavior &o);
597 static void parse_VkPipelineMatchControl(const char *s, Json::Value &obj, VkPipelineMatchControl &o);
598 static void parse_VkAccessFlagBits2KHR(const char *s, Json::Value &obj, VkAccessFlagBits2KHR &o);
599 static void parse_VkPipelineStageFlagBits2KHR(const char *s, Json::Value &obj, VkPipelineStageFlagBits2KHR &o);
600 static void parse_VkSciSyncClientTypeNV(const char *s, Json::Value &obj, VkSciSyncClientTypeNV &o);
601 static void parse_VkSciSyncPrimitiveTypeNV(const char *s, Json::Value &obj, VkSciSyncPrimitiveTypeNV &o);
602 static void parse_VkPipelineCacheValidationVersion(const char *s, Json::Value &obj,
603 VkPipelineCacheValidationVersion &o);
604 static void parse_VkColorSpaceKHR(const char *s, Json::Value &obj, VkColorSpaceKHR &o);
605 static void parse_VkCompositeAlphaFlagBitsKHR(const char *s, Json::Value &obj, VkCompositeAlphaFlagBitsKHR &o);
606 static void parse_VkDisplayPlaneAlphaFlagBitsKHR(const char *s, Json::Value &obj, VkDisplayPlaneAlphaFlagBitsKHR &o);
607 static void parse_VkPresentModeKHR(const char *s, Json::Value &obj, VkPresentModeKHR &o);
608 static void parse_VkSurfaceTransformFlagBitsKHR(const char *s, Json::Value &obj, VkSurfaceTransformFlagBitsKHR &o);
609 static void parse_VkValidationFeatureEnableEXT(const char *s, Json::Value &obj, VkValidationFeatureEnableEXT &o);
610 static void parse_VkValidationFeatureDisableEXT(const char *s, Json::Value &obj, VkValidationFeatureDisableEXT &o);
611 static void parse_VkExternalMemoryHandleTypeFlagBits(const char *s, Json::Value &obj,
612 VkExternalMemoryHandleTypeFlagBits &o);
613 static void parse_VkExternalMemoryFeatureFlagBits(const char *s, Json::Value &obj, VkExternalMemoryFeatureFlagBits &o);
614 static void parse_VkExternalSemaphoreHandleTypeFlagBits(const char *s, Json::Value &obj,
615 VkExternalSemaphoreHandleTypeFlagBits &o);
616 static void parse_VkExternalSemaphoreFeatureFlagBits(const char *s, Json::Value &obj,
617 VkExternalSemaphoreFeatureFlagBits &o);
618 static void parse_VkSemaphoreImportFlagBits(const char *s, Json::Value &obj, VkSemaphoreImportFlagBits &o);
619 static void parse_VkExternalFenceHandleTypeFlagBits(const char *s, Json::Value &obj,
620 VkExternalFenceHandleTypeFlagBits &o);
621 static void parse_VkExternalFenceFeatureFlagBits(const char *s, Json::Value &obj, VkExternalFenceFeatureFlagBits &o);
622 static void parse_VkFenceImportFlagBits(const char *s, Json::Value &obj, VkFenceImportFlagBits &o);
623 static void parse_VkSurfaceCounterFlagBitsEXT(const char *s, Json::Value &obj, VkSurfaceCounterFlagBitsEXT &o);
624 static void parse_VkDisplayPowerStateEXT(const char *s, Json::Value &obj, VkDisplayPowerStateEXT &o);
625 static void parse_VkDeviceEventTypeEXT(const char *s, Json::Value &obj, VkDeviceEventTypeEXT &o);
626 static void parse_VkDisplayEventTypeEXT(const char *s, Json::Value &obj, VkDisplayEventTypeEXT &o);
627 static void parse_VkPeerMemoryFeatureFlagBits(const char *s, Json::Value &obj, VkPeerMemoryFeatureFlagBits &o);
628 static void parse_VkMemoryAllocateFlagBits(const char *s, Json::Value &obj, VkMemoryAllocateFlagBits &o);
629 static void parse_VkDeviceGroupPresentModeFlagBitsKHR(const char *s, Json::Value &obj,
630 VkDeviceGroupPresentModeFlagBitsKHR &o);
631 static void parse_VkSwapchainCreateFlagBitsKHR(const char *s, Json::Value &obj, VkSwapchainCreateFlagBitsKHR &o);
632 static void parse_VkSubgroupFeatureFlagBits(const char *s, Json::Value &obj, VkSubgroupFeatureFlagBits &o);
633 static void parse_VkTessellationDomainOrigin(const char *s, Json::Value &obj, VkTessellationDomainOrigin &o);
634 static void parse_VkSamplerYcbcrModelConversion(const char *s, Json::Value &obj, VkSamplerYcbcrModelConversion &o);
635 static void parse_VkSamplerYcbcrRange(const char *s, Json::Value &obj, VkSamplerYcbcrRange &o);
636 static void parse_VkChromaLocation(const char *s, Json::Value &obj, VkChromaLocation &o);
637 static void parse_VkSamplerReductionMode(const char *s, Json::Value &obj, VkSamplerReductionMode &o);
638 static void parse_VkBlendOverlapEXT(const char *s, Json::Value &obj, VkBlendOverlapEXT &o);
639 static void parse_VkDebugUtilsMessageSeverityFlagBitsEXT(const char *s, Json::Value &obj,
640 VkDebugUtilsMessageSeverityFlagBitsEXT &o);
641 static void parse_VkDebugUtilsMessageTypeFlagBitsEXT(const char *s, Json::Value &obj,
642 VkDebugUtilsMessageTypeFlagBitsEXT &o);
643 static void parse_VkShaderFloatControlsIndependence(const char *s, Json::Value &obj,
644 VkShaderFloatControlsIndependence &o);
645 static void parse_VkFragmentShadingRateCombinerOpKHR(const char *s, Json::Value &obj,
646 VkFragmentShadingRateCombinerOpKHR &o);
647 static void parse_VkSubmitFlagBitsKHR(const char *s, Json::Value &obj, VkSubmitFlagBitsKHR &o);
648 static void parse_VkVendorId(const char *s, Json::Value &obj, VkVendorId &o);
649 static void parse_VkDriverId(const char *s, Json::Value &obj, VkDriverId &o);
650 static void parse_VkBaseOutStructure(const char *s, Json::Value &obj, VkBaseOutStructure &o);
651 static void parse_VkBaseInStructure(const char *s, Json::Value &obj, VkBaseInStructure &o);
652 static void parse_VkOffset2D(const char *s, Json::Value &obj, VkOffset2D &o);
653 static void parse_VkOffset3D(const char *s, Json::Value &obj, VkOffset3D &o);
654 static void parse_VkExtent2D(const char *s, Json::Value &obj, VkExtent2D &o);
655 static void parse_VkExtent3D(const char *s, Json::Value &obj, VkExtent3D &o);
656 static void parse_VkViewport(const char *s, Json::Value &obj, VkViewport &o);
657 static void parse_VkRect2D(const char *s, Json::Value &obj, VkRect2D &o);
658 static void parse_VkClearRect(const char *s, Json::Value &obj, VkClearRect &o);
659 static void parse_VkComponentMapping(const char *s, Json::Value &obj, VkComponentMapping &o);
660 static void parse_VkPhysicalDeviceProperties(const char *s, Json::Value &obj, VkPhysicalDeviceProperties &o);
661 static void parse_VkExtensionProperties(const char *s, Json::Value &obj, VkExtensionProperties &o);
662 static void parse_VkLayerProperties(const char *s, Json::Value &obj, VkLayerProperties &o);
663 static void parse_VkApplicationInfo(const char *s, Json::Value &obj, VkApplicationInfo &o);
664 static void parse_VkAllocationCallbacks(const char *s, Json::Value &obj, VkAllocationCallbacks &o);
665 static void parse_VkDeviceQueueCreateInfo(const char *s, Json::Value &obj, VkDeviceQueueCreateInfo &o);
666 static void parse_VkDeviceCreateInfo(const char *s, Json::Value &obj, VkDeviceCreateInfo &o);
667 static void parse_VkInstanceCreateInfo(const char *s, Json::Value &obj, VkInstanceCreateInfo &o);
668 static void parse_VkQueueFamilyProperties(const char *s, Json::Value &obj, VkQueueFamilyProperties &o);
669 static void parse_VkPhysicalDeviceMemoryProperties(const char *s, Json::Value &obj,
670 VkPhysicalDeviceMemoryProperties &o);
671 static void parse_VkMemoryAllocateInfo(const char *s, Json::Value &obj, VkMemoryAllocateInfo &o);
672 static void parse_VkMemoryRequirements(const char *s, Json::Value &obj, VkMemoryRequirements &o);
673 static void parse_VkMemoryType(const char *s, Json::Value &obj, VkMemoryType &o);
674 static void parse_VkMemoryHeap(const char *s, Json::Value &obj, VkMemoryHeap &o);
675 static void parse_VkMappedMemoryRange(const char *s, Json::Value &obj, VkMappedMemoryRange &o);
676 static void parse_VkFormatProperties(const char *s, Json::Value &obj, VkFormatProperties &o);
677 static void parse_VkImageFormatProperties(const char *s, Json::Value &obj, VkImageFormatProperties &o);
678 static void parse_VkDescriptorBufferInfo(const char *s, Json::Value &obj, VkDescriptorBufferInfo &o);
679 static void parse_VkDescriptorImageInfo(const char *s, Json::Value &obj, VkDescriptorImageInfo &o);
680 static void parse_VkWriteDescriptorSet(const char *s, Json::Value &obj, VkWriteDescriptorSet &o);
681 static void parse_VkCopyDescriptorSet(const char *s, Json::Value &obj, VkCopyDescriptorSet &o);
682 static void parse_VkBufferCreateInfo(const char *s, Json::Value &obj, VkBufferCreateInfo &o);
683 static void parse_VkBufferViewCreateInfo(const char *s, Json::Value &obj, VkBufferViewCreateInfo &o);
684 static void parse_VkImageSubresource(const char *s, Json::Value &obj, VkImageSubresource &o);
685 static void parse_VkImageSubresourceLayers(const char *s, Json::Value &obj, VkImageSubresourceLayers &o);
686 static void parse_VkImageSubresourceRange(const char *s, Json::Value &obj, VkImageSubresourceRange &o);
687 static void parse_VkMemoryBarrier(const char *s, Json::Value &obj, VkMemoryBarrier &o);
688 static void parse_VkBufferMemoryBarrier(const char *s, Json::Value &obj, VkBufferMemoryBarrier &o);
689 static void parse_VkImageMemoryBarrier(const char *s, Json::Value &obj, VkImageMemoryBarrier &o);
690 static void parse_VkImageCreateInfo(const char *s, Json::Value &obj, VkImageCreateInfo &o);
691 static void parse_VkSubresourceLayout(const char *s, Json::Value &obj, VkSubresourceLayout &o);
692 static void parse_VkImageViewCreateInfo(const char *s, Json::Value &obj, VkImageViewCreateInfo &o);
693 static void parse_VkBufferCopy(const char *s, Json::Value &obj, VkBufferCopy &o);
694 static void parse_VkImageCopy(const char *s, Json::Value &obj, VkImageCopy &o);
695 static void parse_VkImageBlit(const char *s, Json::Value &obj, VkImageBlit &o);
696 static void parse_VkBufferImageCopy(const char *s, Json::Value &obj, VkBufferImageCopy &o);
697 static void parse_VkImageResolve(const char *s, Json::Value &obj, VkImageResolve &o);
698 static void parse_VkDescriptorSetLayoutBinding(const char *s, Json::Value &obj, VkDescriptorSetLayoutBinding &o);
699 static void parse_VkDescriptorSetLayoutCreateInfo(const char *s, Json::Value &obj, VkDescriptorSetLayoutCreateInfo &o);
700 static void parse_VkDescriptorPoolSize(const char *s, Json::Value &obj, VkDescriptorPoolSize &o);
701 static void parse_VkDescriptorPoolCreateInfo(const char *s, Json::Value &obj, VkDescriptorPoolCreateInfo &o);
702 static void parse_VkDescriptorSetAllocateInfo(const char *s, Json::Value &obj, VkDescriptorSetAllocateInfo &o);
703 static void parse_VkSpecializationMapEntry(const char *s, Json::Value &obj, VkSpecializationMapEntry &o);
704 static void parse_VkSpecializationInfo(const char *s, Json::Value &obj, VkSpecializationInfo &o);
705 static void parse_VkPipelineShaderStageCreateInfo(const char *s, Json::Value &obj, VkPipelineShaderStageCreateInfo &o);
706 static void parse_VkComputePipelineCreateInfo(const char *s, Json::Value &obj, VkComputePipelineCreateInfo &o);
707 static void parse_VkVertexInputBindingDescription(const char *s, Json::Value &obj, VkVertexInputBindingDescription &o);
708 static void parse_VkVertexInputAttributeDescription(const char *s, Json::Value &obj,
709 VkVertexInputAttributeDescription &o);
710 static void parse_VkPipelineVertexInputStateCreateInfo(const char *s, Json::Value &obj,
711 VkPipelineVertexInputStateCreateInfo &o);
712 static void parse_VkPipelineInputAssemblyStateCreateInfo(const char *s, Json::Value &obj,
713 VkPipelineInputAssemblyStateCreateInfo &o);
714 static void parse_VkPipelineTessellationStateCreateInfo(const char *s, Json::Value &obj,
715 VkPipelineTessellationStateCreateInfo &o);
716 static void parse_VkPipelineViewportStateCreateInfo(const char *s, Json::Value &obj,
717 VkPipelineViewportStateCreateInfo &o);
718 static void parse_VkPipelineRasterizationStateCreateInfo(const char *s, Json::Value &obj,
719 VkPipelineRasterizationStateCreateInfo &o);
720 static void parse_VkPipelineMultisampleStateCreateInfo(const char *s, Json::Value &obj,
721 VkPipelineMultisampleStateCreateInfo &o);
722 static void parse_VkPipelineColorBlendAttachmentState(const char *s, Json::Value &obj,
723 VkPipelineColorBlendAttachmentState &o);
724 static void parse_VkPipelineColorBlendStateCreateInfo(const char *s, Json::Value &obj,
725 VkPipelineColorBlendStateCreateInfo &o);
726 static void parse_VkPipelineDynamicStateCreateInfo(const char *s, Json::Value &obj,
727 VkPipelineDynamicStateCreateInfo &o);
728 static void parse_VkStencilOpState(const char *s, Json::Value &obj, VkStencilOpState &o);
729 static void parse_VkPipelineDepthStencilStateCreateInfo(const char *s, Json::Value &obj,
730 VkPipelineDepthStencilStateCreateInfo &o);
731 static void parse_VkGraphicsPipelineCreateInfo(const char *s, Json::Value &obj, VkGraphicsPipelineCreateInfo &o);
732 static void parse_VkPipelineCacheCreateInfo(const char *s, Json::Value &obj, VkPipelineCacheCreateInfo &o);
733 static void parse_VkPipelineCacheHeaderVersionOne(const char *s, Json::Value &obj, VkPipelineCacheHeaderVersionOne &o);
734 static void parse_VkPipelineCacheStageValidationIndexEntry(const char *s, Json::Value &obj,
735 VkPipelineCacheStageValidationIndexEntry &o);
736 static void parse_VkPipelineCacheSafetyCriticalIndexEntry(const char *s, Json::Value &obj,
737 VkPipelineCacheSafetyCriticalIndexEntry &o);
738 static void parse_VkPipelineCacheHeaderVersionSafetyCriticalOne(const char *s, Json::Value &obj,
739 VkPipelineCacheHeaderVersionSafetyCriticalOne &o);
740 static void parse_VkPushConstantRange(const char *s, Json::Value &obj, VkPushConstantRange &o);
741 static void parse_VkPipelineLayoutCreateInfo(const char *s, Json::Value &obj, VkPipelineLayoutCreateInfo &o);
742 static void parse_VkSamplerCreateInfo(const char *s, Json::Value &obj, VkSamplerCreateInfo &o);
743 static void parse_VkCommandPoolCreateInfo(const char *s, Json::Value &obj, VkCommandPoolCreateInfo &o);
744 static void parse_VkCommandBufferAllocateInfo(const char *s, Json::Value &obj, VkCommandBufferAllocateInfo &o);
745 static void parse_VkCommandBufferInheritanceInfo(const char *s, Json::Value &obj, VkCommandBufferInheritanceInfo &o);
746 static void parse_VkCommandBufferBeginInfo(const char *s, Json::Value &obj, VkCommandBufferBeginInfo &o);
747 static void parse_VkRenderPassBeginInfo(const char *s, Json::Value &obj, VkRenderPassBeginInfo &o);
748 static void parse_VkClearDepthStencilValue(const char *s, Json::Value &obj, VkClearDepthStencilValue &o);
749 static void parse_VkClearAttachment(const char *s, Json::Value &obj, VkClearAttachment &o);
750 static void parse_VkAttachmentDescription(const char *s, Json::Value &obj, VkAttachmentDescription &o);
751 static void parse_VkAttachmentReference(const char *s, Json::Value &obj, VkAttachmentReference &o);
752 static void parse_VkSubpassDescription(const char *s, Json::Value &obj, VkSubpassDescription &o);
753 static void parse_VkSubpassDependency(const char *s, Json::Value &obj, VkSubpassDependency &o);
754 static void parse_VkRenderPassCreateInfo(const char *s, Json::Value &obj, VkRenderPassCreateInfo &o);
755 static void parse_VkEventCreateInfo(const char *s, Json::Value &obj, VkEventCreateInfo &o);
756 static void parse_VkFenceCreateInfo(const char *s, Json::Value &obj, VkFenceCreateInfo &o);
757 static void parse_VkPhysicalDeviceFeatures(const char *s, Json::Value &obj, VkPhysicalDeviceFeatures &o);
758 static void parse_VkPhysicalDeviceSparseProperties(const char *s, Json::Value &obj,
759 VkPhysicalDeviceSparseProperties &o);
760 static void parse_VkPhysicalDeviceLimits(const char *s, Json::Value &obj, VkPhysicalDeviceLimits &o);
761 static void parse_VkSemaphoreCreateInfo(const char *s, Json::Value &obj, VkSemaphoreCreateInfo &o);
762 static void parse_VkQueryPoolCreateInfo(const char *s, Json::Value &obj, VkQueryPoolCreateInfo &o);
763 static void parse_VkFramebufferCreateInfo(const char *s, Json::Value &obj, VkFramebufferCreateInfo &o);
764 static void parse_VkDrawIndirectCommand(const char *s, Json::Value &obj, VkDrawIndirectCommand &o);
765 static void parse_VkDrawIndexedIndirectCommand(const char *s, Json::Value &obj, VkDrawIndexedIndirectCommand &o);
766 static void parse_VkDispatchIndirectCommand(const char *s, Json::Value &obj, VkDispatchIndirectCommand &o);
767 static void parse_VkSubmitInfo(const char *s, Json::Value &obj, VkSubmitInfo &o);
768 static void parse_VkDisplayPropertiesKHR(const char *s, Json::Value &obj, VkDisplayPropertiesKHR &o);
769 static void parse_VkDisplayPlanePropertiesKHR(const char *s, Json::Value &obj, VkDisplayPlanePropertiesKHR &o);
770 static void parse_VkDisplayModeParametersKHR(const char *s, Json::Value &obj, VkDisplayModeParametersKHR &o);
771 static void parse_VkDisplayModePropertiesKHR(const char *s, Json::Value &obj, VkDisplayModePropertiesKHR &o);
772 static void parse_VkDisplayModeCreateInfoKHR(const char *s, Json::Value &obj, VkDisplayModeCreateInfoKHR &o);
773 static void parse_VkDisplayPlaneCapabilitiesKHR(const char *s, Json::Value &obj, VkDisplayPlaneCapabilitiesKHR &o);
774 static void parse_VkDisplaySurfaceCreateInfoKHR(const char *s, Json::Value &obj, VkDisplaySurfaceCreateInfoKHR &o);
775 static void parse_VkDisplayPresentInfoKHR(const char *s, Json::Value &obj, VkDisplayPresentInfoKHR &o);
776 static void parse_VkSurfaceCapabilitiesKHR(const char *s, Json::Value &obj, VkSurfaceCapabilitiesKHR &o);
777 static void parse_VkSurfaceFormatKHR(const char *s, Json::Value &obj, VkSurfaceFormatKHR &o);
778 static void parse_VkSwapchainCreateInfoKHR(const char *s, Json::Value &obj, VkSwapchainCreateInfoKHR &o);
779 static void parse_VkPresentInfoKHR(const char *s, Json::Value &obj, VkPresentInfoKHR &o);
780 static void parse_VkValidationFeaturesEXT(const char *s, Json::Value &obj, VkValidationFeaturesEXT &o);
781 static void parse_VkApplicationParametersEXT(const char *s, Json::Value &obj, VkApplicationParametersEXT &o);
782 static void parse_VkExportMemorySciBufInfoNV(const char *s, Json::Value &obj, VkExportMemorySciBufInfoNV &o);
783 static void parse_VkImportMemorySciBufInfoNV(const char *s, Json::Value &obj, VkImportMemorySciBufInfoNV &o);
784 static void parse_VkMemoryGetSciBufInfoNV(const char *s, Json::Value &obj, VkMemoryGetSciBufInfoNV &o);
785 static void parse_VkMemorySciBufPropertiesNV(const char *s, Json::Value &obj, VkMemorySciBufPropertiesNV &o);
786 static void parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV(const char *s, Json::Value &obj,
787 VkPhysicalDeviceExternalMemorySciBufFeaturesNV &o);
788 static void parse_VkPhysicalDeviceExternalSciBufFeaturesNV(const char *s, Json::Value &obj,
789 VkPhysicalDeviceExternalSciBufFeaturesNV &o);
790 static void parse_VkPhysicalDeviceFeatures2(const char *s, Json::Value &obj, VkPhysicalDeviceFeatures2 &o);
791 static void parse_VkPhysicalDeviceProperties2(const char *s, Json::Value &obj, VkPhysicalDeviceProperties2 &o);
792 static void parse_VkFormatProperties2(const char *s, Json::Value &obj, VkFormatProperties2 &o);
793 static void parse_VkImageFormatProperties2(const char *s, Json::Value &obj, VkImageFormatProperties2 &o);
794 static void parse_VkPhysicalDeviceImageFormatInfo2(const char *s, Json::Value &obj,
795 VkPhysicalDeviceImageFormatInfo2 &o);
796 static void parse_VkQueueFamilyProperties2(const char *s, Json::Value &obj, VkQueueFamilyProperties2 &o);
797 static void parse_VkPhysicalDeviceMemoryProperties2(const char *s, Json::Value &obj,
798 VkPhysicalDeviceMemoryProperties2 &o);
799 static void parse_VkConformanceVersion(const char *s, Json::Value &obj, VkConformanceVersion &o);
800 static void parse_VkPhysicalDeviceDriverProperties(const char *s, Json::Value &obj,
801 VkPhysicalDeviceDriverProperties &o);
802 static void parse_VkPresentRegionsKHR(const char *s, Json::Value &obj, VkPresentRegionsKHR &o);
803 static void parse_VkPresentRegionKHR(const char *s, Json::Value &obj, VkPresentRegionKHR &o);
804 static void parse_VkRectLayerKHR(const char *s, Json::Value &obj, VkRectLayerKHR &o);
805 static void parse_VkPhysicalDeviceVariablePointersFeatures(const char *s, Json::Value &obj,
806 VkPhysicalDeviceVariablePointersFeatures &o);
807 static void parse_VkPhysicalDeviceVariablePointerFeatures(const char *s, Json::Value &obj,
808 VkPhysicalDeviceVariablePointerFeatures &o);
809 static void parse_VkExternalMemoryProperties(const char *s, Json::Value &obj, VkExternalMemoryProperties &o);
810 static void parse_VkPhysicalDeviceExternalImageFormatInfo(const char *s, Json::Value &obj,
811 VkPhysicalDeviceExternalImageFormatInfo &o);
812 static void parse_VkExternalImageFormatProperties(const char *s, Json::Value &obj, VkExternalImageFormatProperties &o);
813 static void parse_VkPhysicalDeviceExternalBufferInfo(const char *s, Json::Value &obj,
814 VkPhysicalDeviceExternalBufferInfo &o);
815 static void parse_VkExternalBufferProperties(const char *s, Json::Value &obj, VkExternalBufferProperties &o);
816 static void parse_VkPhysicalDeviceIDProperties(const char *s, Json::Value &obj, VkPhysicalDeviceIDProperties &o);
817 static void parse_VkExternalMemoryImageCreateInfo(const char *s, Json::Value &obj, VkExternalMemoryImageCreateInfo &o);
818 static void parse_VkExternalMemoryBufferCreateInfo(const char *s, Json::Value &obj,
819 VkExternalMemoryBufferCreateInfo &o);
820 static void parse_VkExportMemoryAllocateInfo(const char *s, Json::Value &obj, VkExportMemoryAllocateInfo &o);
821 static void parse_VkImportMemoryFdInfoKHR(const char *s, Json::Value &obj, VkImportMemoryFdInfoKHR &o);
822 static void parse_VkMemoryFdPropertiesKHR(const char *s, Json::Value &obj, VkMemoryFdPropertiesKHR &o);
823 static void parse_VkMemoryGetFdInfoKHR(const char *s, Json::Value &obj, VkMemoryGetFdInfoKHR &o);
824 static void parse_VkPhysicalDeviceExternalSemaphoreInfo(const char *s, Json::Value &obj,
825 VkPhysicalDeviceExternalSemaphoreInfo &o);
826 static void parse_VkExternalSemaphoreProperties(const char *s, Json::Value &obj, VkExternalSemaphoreProperties &o);
827 static void parse_VkExportSemaphoreCreateInfo(const char *s, Json::Value &obj, VkExportSemaphoreCreateInfo &o);
828 static void parse_VkImportSemaphoreFdInfoKHR(const char *s, Json::Value &obj, VkImportSemaphoreFdInfoKHR &o);
829 static void parse_VkSemaphoreGetFdInfoKHR(const char *s, Json::Value &obj, VkSemaphoreGetFdInfoKHR &o);
830 static void parse_VkPhysicalDeviceExternalFenceInfo(const char *s, Json::Value &obj,
831 VkPhysicalDeviceExternalFenceInfo &o);
832 static void parse_VkExternalFenceProperties(const char *s, Json::Value &obj, VkExternalFenceProperties &o);
833 static void parse_VkExportFenceCreateInfo(const char *s, Json::Value &obj, VkExportFenceCreateInfo &o);
834 static void parse_VkImportFenceFdInfoKHR(const char *s, Json::Value &obj, VkImportFenceFdInfoKHR &o);
835 static void parse_VkFenceGetFdInfoKHR(const char *s, Json::Value &obj, VkFenceGetFdInfoKHR &o);
836 static void parse_VkExportFenceSciSyncInfoNV(const char *s, Json::Value &obj, VkExportFenceSciSyncInfoNV &o);
837 static void parse_VkImportFenceSciSyncInfoNV(const char *s, Json::Value &obj, VkImportFenceSciSyncInfoNV &o);
838 static void parse_VkFenceGetSciSyncInfoNV(const char *s, Json::Value &obj, VkFenceGetSciSyncInfoNV &o);
839 static void parse_VkExportSemaphoreSciSyncInfoNV(const char *s, Json::Value &obj, VkExportSemaphoreSciSyncInfoNV &o);
840 static void parse_VkImportSemaphoreSciSyncInfoNV(const char *s, Json::Value &obj, VkImportSemaphoreSciSyncInfoNV &o);
841 static void parse_VkSemaphoreGetSciSyncInfoNV(const char *s, Json::Value &obj, VkSemaphoreGetSciSyncInfoNV &o);
842 static void parse_VkSciSyncAttributesInfoNV(const char *s, Json::Value &obj, VkSciSyncAttributesInfoNV &o);
843 static void parse_VkPhysicalDeviceExternalSciSyncFeaturesNV(const char *s, Json::Value &obj,
844 VkPhysicalDeviceExternalSciSyncFeaturesNV &o);
845 static void parse_VkPhysicalDeviceExternalSciSync2FeaturesNV(const char *s, Json::Value &obj,
846 VkPhysicalDeviceExternalSciSync2FeaturesNV &o);
847 static void parse_VkSemaphoreSciSyncPoolCreateInfoNV(const char *s, Json::Value &obj,
848 VkSemaphoreSciSyncPoolCreateInfoNV &o);
849 static void parse_VkSemaphoreSciSyncCreateInfoNV(const char *s, Json::Value &obj, VkSemaphoreSciSyncCreateInfoNV &o);
850 static void parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV(
851 const char *s, Json::Value &obj, VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV &o);
852 static void parse_VkPhysicalDeviceMultiviewFeatures(const char *s, Json::Value &obj,
853 VkPhysicalDeviceMultiviewFeatures &o);
854 static void parse_VkPhysicalDeviceMultiviewProperties(const char *s, Json::Value &obj,
855 VkPhysicalDeviceMultiviewProperties &o);
856 static void parse_VkRenderPassMultiviewCreateInfo(const char *s, Json::Value &obj, VkRenderPassMultiviewCreateInfo &o);
857 static void parse_VkSurfaceCapabilities2EXT(const char *s, Json::Value &obj, VkSurfaceCapabilities2EXT &o);
858 static void parse_VkDisplayPowerInfoEXT(const char *s, Json::Value &obj, VkDisplayPowerInfoEXT &o);
859 static void parse_VkDeviceEventInfoEXT(const char *s, Json::Value &obj, VkDeviceEventInfoEXT &o);
860 static void parse_VkDisplayEventInfoEXT(const char *s, Json::Value &obj, VkDisplayEventInfoEXT &o);
861 static void parse_VkSwapchainCounterCreateInfoEXT(const char *s, Json::Value &obj, VkSwapchainCounterCreateInfoEXT &o);
862 static void parse_VkPhysicalDeviceGroupProperties(const char *s, Json::Value &obj, VkPhysicalDeviceGroupProperties &o);
863 static void parse_VkMemoryAllocateFlagsInfo(const char *s, Json::Value &obj, VkMemoryAllocateFlagsInfo &o);
864 static void parse_VkBindBufferMemoryInfo(const char *s, Json::Value &obj, VkBindBufferMemoryInfo &o);
865 static void parse_VkBindBufferMemoryDeviceGroupInfo(const char *s, Json::Value &obj,
866 VkBindBufferMemoryDeviceGroupInfo &o);
867 static void parse_VkBindImageMemoryInfo(const char *s, Json::Value &obj, VkBindImageMemoryInfo &o);
868 static void parse_VkBindImageMemoryDeviceGroupInfo(const char *s, Json::Value &obj,
869 VkBindImageMemoryDeviceGroupInfo &o);
870 static void parse_VkDeviceGroupRenderPassBeginInfo(const char *s, Json::Value &obj,
871 VkDeviceGroupRenderPassBeginInfo &o);
872 static void parse_VkDeviceGroupCommandBufferBeginInfo(const char *s, Json::Value &obj,
873 VkDeviceGroupCommandBufferBeginInfo &o);
874 static void parse_VkDeviceGroupSubmitInfo(const char *s, Json::Value &obj, VkDeviceGroupSubmitInfo &o);
875 static void parse_VkDeviceGroupPresentCapabilitiesKHR(const char *s, Json::Value &obj,
876 VkDeviceGroupPresentCapabilitiesKHR &o);
877 static void parse_VkImageSwapchainCreateInfoKHR(const char *s, Json::Value &obj, VkImageSwapchainCreateInfoKHR &o);
878 static void parse_VkBindImageMemorySwapchainInfoKHR(const char *s, Json::Value &obj,
879 VkBindImageMemorySwapchainInfoKHR &o);
880 static void parse_VkAcquireNextImageInfoKHR(const char *s, Json::Value &obj, VkAcquireNextImageInfoKHR &o);
881 static void parse_VkDeviceGroupPresentInfoKHR(const char *s, Json::Value &obj, VkDeviceGroupPresentInfoKHR &o);
882 static void parse_VkDeviceGroupDeviceCreateInfo(const char *s, Json::Value &obj, VkDeviceGroupDeviceCreateInfo &o);
883 static void parse_VkDeviceGroupSwapchainCreateInfoKHR(const char *s, Json::Value &obj,
884 VkDeviceGroupSwapchainCreateInfoKHR &o);
885 static void parse_VkXYColorEXT(const char *s, Json::Value &obj, VkXYColorEXT &o);
886 static void parse_VkHdrMetadataEXT(const char *s, Json::Value &obj, VkHdrMetadataEXT &o);
887 static void parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT(const char *s, Json::Value &obj,
888 VkPhysicalDeviceDiscardRectanglePropertiesEXT &o);
889 static void parse_VkPipelineDiscardRectangleStateCreateInfoEXT(const char *s, Json::Value &obj,
890 VkPipelineDiscardRectangleStateCreateInfoEXT &o);
891 static void parse_VkInputAttachmentAspectReference(const char *s, Json::Value &obj,
892 VkInputAttachmentAspectReference &o);
893 static void parse_VkRenderPassInputAttachmentAspectCreateInfo(const char *s, Json::Value &obj,
894 VkRenderPassInputAttachmentAspectCreateInfo &o);
895 static void parse_VkPhysicalDeviceSurfaceInfo2KHR(const char *s, Json::Value &obj, VkPhysicalDeviceSurfaceInfo2KHR &o);
896 static void parse_VkSurfaceCapabilities2KHR(const char *s, Json::Value &obj, VkSurfaceCapabilities2KHR &o);
897 static void parse_VkSurfaceFormat2KHR(const char *s, Json::Value &obj, VkSurfaceFormat2KHR &o);
898 static void parse_VkDisplayProperties2KHR(const char *s, Json::Value &obj, VkDisplayProperties2KHR &o);
899 static void parse_VkDisplayPlaneProperties2KHR(const char *s, Json::Value &obj, VkDisplayPlaneProperties2KHR &o);
900 static void parse_VkDisplayModeProperties2KHR(const char *s, Json::Value &obj, VkDisplayModeProperties2KHR &o);
901 static void parse_VkDisplayPlaneInfo2KHR(const char *s, Json::Value &obj, VkDisplayPlaneInfo2KHR &o);
902 static void parse_VkDisplayPlaneCapabilities2KHR(const char *s, Json::Value &obj, VkDisplayPlaneCapabilities2KHR &o);
903 static void parse_VkSharedPresentSurfaceCapabilitiesKHR(const char *s, Json::Value &obj,
904 VkSharedPresentSurfaceCapabilitiesKHR &o);
905 static void parse_VkPhysicalDevice16BitStorageFeatures(const char *s, Json::Value &obj,
906 VkPhysicalDevice16BitStorageFeatures &o);
907 static void parse_VkPhysicalDeviceSubgroupProperties(const char *s, Json::Value &obj,
908 VkPhysicalDeviceSubgroupProperties &o);
909 static void parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
910 const char *s, Json::Value &obj, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &o);
911 static void parse_VkBufferMemoryRequirementsInfo2(const char *s, Json::Value &obj, VkBufferMemoryRequirementsInfo2 &o);
912 static void parse_VkImageMemoryRequirementsInfo2(const char *s, Json::Value &obj, VkImageMemoryRequirementsInfo2 &o);
913 static void parse_VkMemoryRequirements2(const char *s, Json::Value &obj, VkMemoryRequirements2 &o);
914 static void parse_VkPhysicalDevicePointClippingProperties(const char *s, Json::Value &obj,
915 VkPhysicalDevicePointClippingProperties &o);
916 static void parse_VkMemoryDedicatedRequirements(const char *s, Json::Value &obj, VkMemoryDedicatedRequirements &o);
917 static void parse_VkMemoryDedicatedAllocateInfo(const char *s, Json::Value &obj, VkMemoryDedicatedAllocateInfo &o);
918 static void parse_VkImageViewUsageCreateInfo(const char *s, Json::Value &obj, VkImageViewUsageCreateInfo &o);
919 static void parse_VkPipelineTessellationDomainOriginStateCreateInfo(
920 const char *s, Json::Value &obj, VkPipelineTessellationDomainOriginStateCreateInfo &o);
921 static void parse_VkSamplerYcbcrConversionInfo(const char *s, Json::Value &obj, VkSamplerYcbcrConversionInfo &o);
922 static void parse_VkSamplerYcbcrConversionCreateInfo(const char *s, Json::Value &obj,
923 VkSamplerYcbcrConversionCreateInfo &o);
924 static void parse_VkBindImagePlaneMemoryInfo(const char *s, Json::Value &obj, VkBindImagePlaneMemoryInfo &o);
925 static void parse_VkImagePlaneMemoryRequirementsInfo(const char *s, Json::Value &obj,
926 VkImagePlaneMemoryRequirementsInfo &o);
927 static void parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const char *s, Json::Value &obj,
928 VkPhysicalDeviceSamplerYcbcrConversionFeatures &o);
929 static void parse_VkSamplerYcbcrConversionImageFormatProperties(const char *s, Json::Value &obj,
930 VkSamplerYcbcrConversionImageFormatProperties &o);
931 static void parse_VkProtectedSubmitInfo(const char *s, Json::Value &obj, VkProtectedSubmitInfo &o);
932 static void parse_VkPhysicalDeviceProtectedMemoryFeatures(const char *s, Json::Value &obj,
933 VkPhysicalDeviceProtectedMemoryFeatures &o);
934 static void parse_VkPhysicalDeviceProtectedMemoryProperties(const char *s, Json::Value &obj,
935 VkPhysicalDeviceProtectedMemoryProperties &o);
936 static void parse_VkDeviceQueueInfo2(const char *s, Json::Value &obj, VkDeviceQueueInfo2 &o);
937 static void parse_VkPhysicalDeviceSamplerFilterMinmaxProperties(const char *s, Json::Value &obj,
938 VkPhysicalDeviceSamplerFilterMinmaxProperties &o);
939 static void parse_VkSampleLocationEXT(const char *s, Json::Value &obj, VkSampleLocationEXT &o);
940 static void parse_VkSampleLocationsInfoEXT(const char *s, Json::Value &obj, VkSampleLocationsInfoEXT &o);
941 static void parse_VkAttachmentSampleLocationsEXT(const char *s, Json::Value &obj, VkAttachmentSampleLocationsEXT &o);
942 static void parse_VkSubpassSampleLocationsEXT(const char *s, Json::Value &obj, VkSubpassSampleLocationsEXT &o);
943 static void parse_VkRenderPassSampleLocationsBeginInfoEXT(const char *s, Json::Value &obj,
944 VkRenderPassSampleLocationsBeginInfoEXT &o);
945 static void parse_VkPipelineSampleLocationsStateCreateInfoEXT(const char *s, Json::Value &obj,
946 VkPipelineSampleLocationsStateCreateInfoEXT &o);
947 static void parse_VkPhysicalDeviceSampleLocationsPropertiesEXT(const char *s, Json::Value &obj,
948 VkPhysicalDeviceSampleLocationsPropertiesEXT &o);
949 static void parse_VkMultisamplePropertiesEXT(const char *s, Json::Value &obj, VkMultisamplePropertiesEXT &o);
950 static void parse_VkSamplerReductionModeCreateInfo(const char *s, Json::Value &obj,
951 VkSamplerReductionModeCreateInfo &o);
952 static void parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
953 const char *s, Json::Value &obj, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &o);
954 static void parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
955 const char *s, Json::Value &obj, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &o);
956 static void parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT(const char *s, Json::Value &obj,
957 VkPipelineColorBlendAdvancedStateCreateInfoEXT &o);
958 static void parse_VkImageFormatListCreateInfo(const char *s, Json::Value &obj, VkImageFormatListCreateInfo &o);
959 static void parse_VkPhysicalDeviceMaintenance3Properties(const char *s, Json::Value &obj,
960 VkPhysicalDeviceMaintenance3Properties &o);
961 static void parse_VkDescriptorSetLayoutSupport(const char *s, Json::Value &obj, VkDescriptorSetLayoutSupport &o);
962 static void parse_VkPhysicalDeviceShaderDrawParametersFeatures(const char *s, Json::Value &obj,
963 VkPhysicalDeviceShaderDrawParametersFeatures &o);
964 static void parse_VkPhysicalDeviceShaderDrawParameterFeatures(const char *s, Json::Value &obj,
965 VkPhysicalDeviceShaderDrawParameterFeatures &o);
966 static void parse_VkPhysicalDeviceShaderFloat16Int8Features(const char *s, Json::Value &obj,
967 VkPhysicalDeviceShaderFloat16Int8Features &o);
968 static void parse_VkPhysicalDeviceFloatControlsProperties(const char *s, Json::Value &obj,
969 VkPhysicalDeviceFloatControlsProperties &o);
970 static void parse_VkPhysicalDeviceHostQueryResetFeatures(const char *s, Json::Value &obj,
971 VkPhysicalDeviceHostQueryResetFeatures &o);
972 static void parse_VkDeviceQueueGlobalPriorityCreateInfoEXT(const char *s, Json::Value &obj,
973 VkDeviceQueueGlobalPriorityCreateInfoEXT &o);
974 static void parse_VkDebugUtilsObjectNameInfoEXT(const char *s, Json::Value &obj, VkDebugUtilsObjectNameInfoEXT &o);
975 static void parse_VkDebugUtilsObjectTagInfoEXT(const char *s, Json::Value &obj, VkDebugUtilsObjectTagInfoEXT &o);
976 static void parse_VkDebugUtilsLabelEXT(const char *s, Json::Value &obj, VkDebugUtilsLabelEXT &o);
977 static void parse_VkDebugUtilsMessengerCreateInfoEXT(const char *s, Json::Value &obj,
978 VkDebugUtilsMessengerCreateInfoEXT &o);
979 static void parse_VkDebugUtilsMessengerCallbackDataEXT(const char *s, Json::Value &obj,
980 VkDebugUtilsMessengerCallbackDataEXT &o);
981 static void parse_VkImportMemoryHostPointerInfoEXT(const char *s, Json::Value &obj,
982 VkImportMemoryHostPointerInfoEXT &o);
983 static void parse_VkMemoryHostPointerPropertiesEXT(const char *s, Json::Value &obj,
984 VkMemoryHostPointerPropertiesEXT &o);
985 static void parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(const char *s, Json::Value &obj,
986 VkPhysicalDeviceExternalMemoryHostPropertiesEXT &o);
987 static void parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
988 const char *s, Json::Value &obj, VkPhysicalDeviceConservativeRasterizationPropertiesEXT &o);
989 static void parse_VkCalibratedTimestampInfoEXT(const char *s, Json::Value &obj, VkCalibratedTimestampInfoEXT &o);
990 static void parse_VkPipelineRasterizationConservativeStateCreateInfoEXT(
991 const char *s, Json::Value &obj, VkPipelineRasterizationConservativeStateCreateInfoEXT &o);
992 static void parse_VkPhysicalDeviceDescriptorIndexingFeatures(const char *s, Json::Value &obj,
993 VkPhysicalDeviceDescriptorIndexingFeatures &o);
994 static void parse_VkPhysicalDeviceDescriptorIndexingProperties(const char *s, Json::Value &obj,
995 VkPhysicalDeviceDescriptorIndexingProperties &o);
996 static void parse_VkDescriptorSetLayoutBindingFlagsCreateInfo(const char *s, Json::Value &obj,
997 VkDescriptorSetLayoutBindingFlagsCreateInfo &o);
998 static void parse_VkDescriptorSetVariableDescriptorCountAllocateInfo(
999 const char *s, Json::Value &obj, VkDescriptorSetVariableDescriptorCountAllocateInfo &o);
1000 static void parse_VkDescriptorSetVariableDescriptorCountLayoutSupport(
1001 const char *s, Json::Value &obj, VkDescriptorSetVariableDescriptorCountLayoutSupport &o);
1002 static void parse_VkAttachmentDescription2(const char *s, Json::Value &obj, VkAttachmentDescription2 &o);
1003 static void parse_VkAttachmentReference2(const char *s, Json::Value &obj, VkAttachmentReference2 &o);
1004 static void parse_VkSubpassDescription2(const char *s, Json::Value &obj, VkSubpassDescription2 &o);
1005 static void parse_VkSubpassDependency2(const char *s, Json::Value &obj, VkSubpassDependency2 &o);
1006 static void parse_VkRenderPassCreateInfo2(const char *s, Json::Value &obj, VkRenderPassCreateInfo2 &o);
1007 static void parse_VkSubpassBeginInfo(const char *s, Json::Value &obj, VkSubpassBeginInfo &o);
1008 static void parse_VkSubpassEndInfo(const char *s, Json::Value &obj, VkSubpassEndInfo &o);
1009 static void parse_VkPhysicalDeviceTimelineSemaphoreFeatures(const char *s, Json::Value &obj,
1010 VkPhysicalDeviceTimelineSemaphoreFeatures &o);
1011 static void parse_VkPhysicalDeviceTimelineSemaphoreProperties(const char *s, Json::Value &obj,
1012 VkPhysicalDeviceTimelineSemaphoreProperties &o);
1013 static void parse_VkSemaphoreTypeCreateInfo(const char *s, Json::Value &obj, VkSemaphoreTypeCreateInfo &o);
1014 static void parse_VkTimelineSemaphoreSubmitInfo(const char *s, Json::Value &obj, VkTimelineSemaphoreSubmitInfo &o);
1015 static void parse_VkSemaphoreWaitInfo(const char *s, Json::Value &obj, VkSemaphoreWaitInfo &o);
1016 static void parse_VkSemaphoreSignalInfo(const char *s, Json::Value &obj, VkSemaphoreSignalInfo &o);
1017 static void parse_VkVertexInputBindingDivisorDescriptionEXT(const char *s, Json::Value &obj,
1018 VkVertexInputBindingDivisorDescriptionEXT &o);
1019 static void parse_VkPipelineVertexInputDivisorStateCreateInfoEXT(const char *s, Json::Value &obj,
1020 VkPipelineVertexInputDivisorStateCreateInfoEXT &o);
1021 static void parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
1022 const char *s, Json::Value &obj, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &o);
1023 static void parse_VkPhysicalDevicePCIBusInfoPropertiesEXT(const char *s, Json::Value &obj,
1024 VkPhysicalDevicePCIBusInfoPropertiesEXT &o);
1025 static void parse_VkPhysicalDevice8BitStorageFeatures(const char *s, Json::Value &obj,
1026 VkPhysicalDevice8BitStorageFeatures &o);
1027 static void parse_VkPhysicalDeviceVulkanMemoryModelFeatures(const char *s, Json::Value &obj,
1028 VkPhysicalDeviceVulkanMemoryModelFeatures &o);
1029 static void parse_VkPhysicalDeviceShaderAtomicInt64Features(const char *s, Json::Value &obj,
1030 VkPhysicalDeviceShaderAtomicInt64Features &o);
1031 static void parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(const char *s, Json::Value &obj,
1032 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &o);
1033 static void parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
1034 const char *s, Json::Value &obj, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &o);
1035 static void parse_VkPhysicalDeviceDepthStencilResolveProperties(const char *s, Json::Value &obj,
1036 VkPhysicalDeviceDepthStencilResolveProperties &o);
1037 static void parse_VkSubpassDescriptionDepthStencilResolve(const char *s, Json::Value &obj,
1038 VkSubpassDescriptionDepthStencilResolve &o);
1039 static void parse_VkImageViewASTCDecodeModeEXT(const char *s, Json::Value &obj, VkImageViewASTCDecodeModeEXT &o);
1040 static void parse_VkPhysicalDeviceASTCDecodeFeaturesEXT(const char *s, Json::Value &obj,
1041 VkPhysicalDeviceASTCDecodeFeaturesEXT &o);
1042 static void parse_VkDrmFormatModifierPropertiesListEXT(const char *s, Json::Value &obj,
1043 VkDrmFormatModifierPropertiesListEXT &o);
1044 static void parse_VkDrmFormatModifierPropertiesEXT(const char *s, Json::Value &obj,
1045 VkDrmFormatModifierPropertiesEXT &o);
1046 static void parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const char *s, Json::Value &obj,
1047 VkPhysicalDeviceImageDrmFormatModifierInfoEXT &o);
1048 static void parse_VkImageDrmFormatModifierListCreateInfoEXT(const char *s, Json::Value &obj,
1049 VkImageDrmFormatModifierListCreateInfoEXT &o);
1050 static void parse_VkImageDrmFormatModifierExplicitCreateInfoEXT(const char *s, Json::Value &obj,
1051 VkImageDrmFormatModifierExplicitCreateInfoEXT &o);
1052 static void parse_VkImageDrmFormatModifierPropertiesEXT(const char *s, Json::Value &obj,
1053 VkImageDrmFormatModifierPropertiesEXT &o);
1054 static void parse_VkImageStencilUsageCreateInfo(const char *s, Json::Value &obj, VkImageStencilUsageCreateInfo &o);
1055 static void parse_VkPhysicalDeviceScalarBlockLayoutFeatures(const char *s, Json::Value &obj,
1056 VkPhysicalDeviceScalarBlockLayoutFeatures &o);
1057 static void parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
1058 const char *s, Json::Value &obj, VkPhysicalDeviceUniformBufferStandardLayoutFeatures &o);
1059 static void parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const char *s, Json::Value &obj,
1060 VkPhysicalDeviceDepthClipEnableFeaturesEXT &o);
1061 static void parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
1062 const char *s, Json::Value &obj, VkPipelineRasterizationDepthClipStateCreateInfoEXT &o);
1063 static void parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT(const char *s, Json::Value &obj,
1064 VkPhysicalDeviceMemoryBudgetPropertiesEXT &o);
1065 static void parse_VkPhysicalDeviceBufferDeviceAddressFeatures(const char *s, Json::Value &obj,
1066 VkPhysicalDeviceBufferDeviceAddressFeatures &o);
1067 static void parse_VkBufferDeviceAddressInfo(const char *s, Json::Value &obj, VkBufferDeviceAddressInfo &o);
1068 static void parse_VkBufferOpaqueCaptureAddressCreateInfo(const char *s, Json::Value &obj,
1069 VkBufferOpaqueCaptureAddressCreateInfo &o);
1070 static void parse_VkPhysicalDeviceImageViewImageFormatInfoEXT(const char *s, Json::Value &obj,
1071 VkPhysicalDeviceImageViewImageFormatInfoEXT &o);
1072 static void parse_VkFilterCubicImageViewImageFormatPropertiesEXT(const char *s, Json::Value &obj,
1073 VkFilterCubicImageViewImageFormatPropertiesEXT &o);
1074 static void parse_VkPhysicalDeviceImagelessFramebufferFeatures(const char *s, Json::Value &obj,
1075 VkPhysicalDeviceImagelessFramebufferFeatures &o);
1076 static void parse_VkFramebufferAttachmentsCreateInfo(const char *s, Json::Value &obj,
1077 VkFramebufferAttachmentsCreateInfo &o);
1078 static void parse_VkFramebufferAttachmentImageInfo(const char *s, Json::Value &obj,
1079 VkFramebufferAttachmentImageInfo &o);
1080 static void parse_VkRenderPassAttachmentBeginInfo(const char *s, Json::Value &obj, VkRenderPassAttachmentBeginInfo &o);
1081 static void parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
1082 const char *s, Json::Value &obj, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &o);
1083 static void parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(const char *s, Json::Value &obj,
1084 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &o);
1085 static void parse_VkPhysicalDevicePerformanceQueryFeaturesKHR(const char *s, Json::Value &obj,
1086 VkPhysicalDevicePerformanceQueryFeaturesKHR &o);
1087 static void parse_VkPhysicalDevicePerformanceQueryPropertiesKHR(const char *s, Json::Value &obj,
1088 VkPhysicalDevicePerformanceQueryPropertiesKHR &o);
1089 static void parse_VkPerformanceCounterKHR(const char *s, Json::Value &obj, VkPerformanceCounterKHR &o);
1090 static void parse_VkPerformanceCounterDescriptionKHR(const char *s, Json::Value &obj,
1091 VkPerformanceCounterDescriptionKHR &o);
1092 static void parse_VkQueryPoolPerformanceCreateInfoKHR(const char *s, Json::Value &obj,
1093 VkQueryPoolPerformanceCreateInfoKHR &o);
1094 static void parse_VkAcquireProfilingLockInfoKHR(const char *s, Json::Value &obj, VkAcquireProfilingLockInfoKHR &o);
1095 static void parse_VkPerformanceQuerySubmitInfoKHR(const char *s, Json::Value &obj, VkPerformanceQuerySubmitInfoKHR &o);
1096 static void parse_VkPerformanceQueryReservationInfoKHR(const char *s, Json::Value &obj,
1097 VkPerformanceQueryReservationInfoKHR &o);
1098 static void parse_VkHeadlessSurfaceCreateInfoEXT(const char *s, Json::Value &obj, VkHeadlessSurfaceCreateInfoEXT &o);
1099 static void parse_VkPhysicalDeviceShaderClockFeaturesKHR(const char *s, Json::Value &obj,
1100 VkPhysicalDeviceShaderClockFeaturesKHR &o);
1101 static void parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const char *s, Json::Value &obj,
1102 VkPhysicalDeviceIndexTypeUint8FeaturesEXT &o);
1103 static void parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
1104 const char *s, Json::Value &obj, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &o);
1105 static void parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
1106 const char *s, Json::Value &obj, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &o);
1107 static void parse_VkAttachmentReferenceStencilLayout(const char *s, Json::Value &obj,
1108 VkAttachmentReferenceStencilLayout &o);
1109 static void parse_VkAttachmentDescriptionStencilLayout(const char *s, Json::Value &obj,
1110 VkAttachmentDescriptionStencilLayout &o);
1111 static void parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
1112 const char *s, Json::Value &obj, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &o);
1113 static void parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const char *s, Json::Value &obj,
1114 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &o);
1115 static void parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
1116 const char *s, Json::Value &obj, VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &o);
1117 static void parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(const char *s, Json::Value &obj,
1118 VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &o);
1119 static void parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(const char *s, Json::Value &obj,
1120 VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &o);
1121 static void parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
1122 const char *s, Json::Value &obj, VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &o);
1123 static void parse_VkMemoryOpaqueCaptureAddressAllocateInfo(const char *s, Json::Value &obj,
1124 VkMemoryOpaqueCaptureAddressAllocateInfo &o);
1125 static void parse_VkDeviceMemoryOpaqueCaptureAddressInfo(const char *s, Json::Value &obj,
1126 VkDeviceMemoryOpaqueCaptureAddressInfo &o);
1127 static void parse_VkPhysicalDeviceLineRasterizationFeaturesEXT(const char *s, Json::Value &obj,
1128 VkPhysicalDeviceLineRasterizationFeaturesEXT &o);
1129 static void parse_VkPhysicalDeviceLineRasterizationPropertiesEXT(const char *s, Json::Value &obj,
1130 VkPhysicalDeviceLineRasterizationPropertiesEXT &o);
1131 static void parse_VkPipelineRasterizationLineStateCreateInfoEXT(const char *s, Json::Value &obj,
1132 VkPipelineRasterizationLineStateCreateInfoEXT &o);
1133 static void parse_VkPhysicalDeviceVulkan11Features(const char *s, Json::Value &obj,
1134 VkPhysicalDeviceVulkan11Features &o);
1135 static void parse_VkPhysicalDeviceVulkan11Properties(const char *s, Json::Value &obj,
1136 VkPhysicalDeviceVulkan11Properties &o);
1137 static void parse_VkPhysicalDeviceVulkan12Features(const char *s, Json::Value &obj,
1138 VkPhysicalDeviceVulkan12Features &o);
1139 static void parse_VkPhysicalDeviceVulkan12Properties(const char *s, Json::Value &obj,
1140 VkPhysicalDeviceVulkan12Properties &o);
1141 static void parse_VkFaultData(const char *s, Json::Value &obj, VkFaultData &o);
1142 static void parse_VkFaultCallbackInfo(const char *s, Json::Value &obj, VkFaultCallbackInfo &o);
1143 static void parse_VkSamplerCustomBorderColorCreateInfoEXT(const char *s, Json::Value &obj,
1144 VkSamplerCustomBorderColorCreateInfoEXT &o);
1145 static void parse_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const char *s, Json::Value &obj,
1146 VkPhysicalDeviceCustomBorderColorPropertiesEXT &o);
1147 static void parse_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const char *s, Json::Value &obj,
1148 VkPhysicalDeviceCustomBorderColorFeaturesEXT &o);
1149 static void parse_VkRefreshObjectKHR(const char *s, Json::Value &obj, VkRefreshObjectKHR &o);
1150 static void parse_VkRefreshObjectListKHR(const char *s, Json::Value &obj, VkRefreshObjectListKHR &o);
1151 static void parse_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const char *s, Json::Value &obj,
1152 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &o);
1153 static void parse_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const char *s, Json::Value &obj,
1154 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &o);
1155 static void parse_VkPipelineOfflineCreateInfo(const char *s, Json::Value &obj, VkPipelineOfflineCreateInfo &o);
1156 static void parse_VkPhysicalDeviceRobustness2FeaturesEXT(const char *s, Json::Value &obj,
1157 VkPhysicalDeviceRobustness2FeaturesEXT &o);
1158 static void parse_VkPhysicalDeviceRobustness2PropertiesEXT(const char *s, Json::Value &obj,
1159 VkPhysicalDeviceRobustness2PropertiesEXT &o);
1160 static void parse_VkPhysicalDeviceImageRobustnessFeaturesEXT(const char *s, Json::Value &obj,
1161 VkPhysicalDeviceImageRobustnessFeaturesEXT &o);
1162 static void parse_VkPhysicalDevice4444FormatsFeaturesEXT(const char *s, Json::Value &obj,
1163 VkPhysicalDevice4444FormatsFeaturesEXT &o);
1164 static void parse_VkBufferCopy2KHR(const char *s, Json::Value &obj, VkBufferCopy2KHR &o);
1165 static void parse_VkImageCopy2KHR(const char *s, Json::Value &obj, VkImageCopy2KHR &o);
1166 static void parse_VkImageBlit2KHR(const char *s, Json::Value &obj, VkImageBlit2KHR &o);
1167 static void parse_VkBufferImageCopy2KHR(const char *s, Json::Value &obj, VkBufferImageCopy2KHR &o);
1168 static void parse_VkImageResolve2KHR(const char *s, Json::Value &obj, VkImageResolve2KHR &o);
1169 static void parse_VkCopyBufferInfo2KHR(const char *s, Json::Value &obj, VkCopyBufferInfo2KHR &o);
1170 static void parse_VkCopyImageInfo2KHR(const char *s, Json::Value &obj, VkCopyImageInfo2KHR &o);
1171 static void parse_VkBlitImageInfo2KHR(const char *s, Json::Value &obj, VkBlitImageInfo2KHR &o);
1172 static void parse_VkCopyBufferToImageInfo2KHR(const char *s, Json::Value &obj, VkCopyBufferToImageInfo2KHR &o);
1173 static void parse_VkCopyImageToBufferInfo2KHR(const char *s, Json::Value &obj, VkCopyImageToBufferInfo2KHR &o);
1174 static void parse_VkResolveImageInfo2KHR(const char *s, Json::Value &obj, VkResolveImageInfo2KHR &o);
1175 static void parse_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
1176 const char *s, Json::Value &obj, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &o);
1177 static void parse_VkFragmentShadingRateAttachmentInfoKHR(const char *s, Json::Value &obj,
1178 VkFragmentShadingRateAttachmentInfoKHR &o);
1179 static void parse_VkPipelineFragmentShadingRateStateCreateInfoKHR(const char *s, Json::Value &obj,
1180 VkPipelineFragmentShadingRateStateCreateInfoKHR &o);
1181 static void parse_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(const char *s, Json::Value &obj,
1182 VkPhysicalDeviceFragmentShadingRateFeaturesKHR &o);
1183 static void parse_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(const char *s, Json::Value &obj,
1184 VkPhysicalDeviceFragmentShadingRatePropertiesKHR &o);
1185 static void parse_VkPhysicalDeviceFragmentShadingRateKHR(const char *s, Json::Value &obj,
1186 VkPhysicalDeviceFragmentShadingRateKHR &o);
1187 static void parse_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
1188 const char *s, Json::Value &obj, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &o);
1189 static void parse_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
1190 const char *s, Json::Value &obj, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &o);
1191 static void parse_VkVertexInputBindingDescription2EXT(const char *s, Json::Value &obj,
1192 VkVertexInputBindingDescription2EXT &o);
1193 static void parse_VkVertexInputAttributeDescription2EXT(const char *s, Json::Value &obj,
1194 VkVertexInputAttributeDescription2EXT &o);
1195 static void parse_VkPhysicalDeviceColorWriteEnableFeaturesEXT(const char *s, Json::Value &obj,
1196 VkPhysicalDeviceColorWriteEnableFeaturesEXT &o);
1197 static void parse_VkPipelineColorWriteCreateInfoEXT(const char *s, Json::Value &obj,
1198 VkPipelineColorWriteCreateInfoEXT &o);
1199 static void parse_VkMemoryBarrier2KHR(const char *s, Json::Value &obj, VkMemoryBarrier2KHR &o);
1200 static void parse_VkImageMemoryBarrier2KHR(const char *s, Json::Value &obj, VkImageMemoryBarrier2KHR &o);
1201 static void parse_VkBufferMemoryBarrier2KHR(const char *s, Json::Value &obj, VkBufferMemoryBarrier2KHR &o);
1202 static void parse_VkDependencyInfoKHR(const char *s, Json::Value &obj, VkDependencyInfoKHR &o);
1203 static void parse_VkSemaphoreSubmitInfoKHR(const char *s, Json::Value &obj, VkSemaphoreSubmitInfoKHR &o);
1204 static void parse_VkCommandBufferSubmitInfoKHR(const char *s, Json::Value &obj, VkCommandBufferSubmitInfoKHR &o);
1205 static void parse_VkSubmitInfo2KHR(const char *s, Json::Value &obj, VkSubmitInfo2KHR &o);
1206 static void parse_VkQueueFamilyCheckpointProperties2NV(const char *s, Json::Value &obj,
1207 VkQueueFamilyCheckpointProperties2NV &o);
1208 static void parse_VkCheckpointData2NV(const char *s, Json::Value &obj, VkCheckpointData2NV &o);
1209 static void parse_VkPhysicalDeviceSynchronization2FeaturesKHR(const char *s, Json::Value &obj,
1210 VkPhysicalDeviceSynchronization2FeaturesKHR &o);
1211 static void parse_VkPhysicalDeviceVulkanSC10Properties(const char *s, Json::Value &obj,
1212 VkPhysicalDeviceVulkanSC10Properties &o);
1213 static void parse_VkPipelinePoolSize(const char *s, Json::Value &obj, VkPipelinePoolSize &o);
1214 static void parse_VkDeviceObjectReservationCreateInfo(const char *s, Json::Value &obj,
1215 VkDeviceObjectReservationCreateInfo &o);
1216 static void parse_VkCommandPoolMemoryReservationCreateInfo(const char *s, Json::Value &obj,
1217 VkCommandPoolMemoryReservationCreateInfo &o);
1218 static void parse_VkCommandPoolMemoryConsumption(const char *s, Json::Value &obj, VkCommandPoolMemoryConsumption &o);
1219 static void parse_VkPhysicalDeviceVulkanSC10Features(const char *s, Json::Value &obj,
1220 VkPhysicalDeviceVulkanSC10Features &o);
1221 static void parse_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const char *s, Json::Value &obj,
1222 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &o);
1223 static void parse_VkDrmFormatModifierPropertiesList2EXT(const char *s, Json::Value &obj,
1224 VkDrmFormatModifierPropertiesList2EXT &o);
1225 static void parse_VkDrmFormatModifierProperties2EXT(const char *s, Json::Value &obj,
1226 VkDrmFormatModifierProperties2EXT &o);
1227 /*************************************** End prototypes ***********************************/
1228
parsePNextChain(Json::Value & obj)1229 static void *parsePNextChain(Json::Value &obj)
1230 {
1231 VkBaseInStructure o;
1232 Json::Value &pNextObj = obj["pNext"];
1233 if (pNextObj.empty() || (pNextObj.isString() && pNextObj.asString() == "NULL"))
1234 return nullptr;
1235
1236 parse_VkStructureType("sType", pNextObj["sType"], (o.sType));
1237 void *p = nullptr;
1238 switch (o.sType)
1239 {
1240 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
1241 {
1242 p = s_globalMem.allocate(sizeof(VkDisplayPresentInfoKHR));
1243 parse_VkDisplayPresentInfoKHR("", pNextObj, *((VkDisplayPresentInfoKHR *)p));
1244 }
1245 break;
1246 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
1247 {
1248 p = s_globalMem.allocate(sizeof(VkValidationFeaturesEXT));
1249 parse_VkValidationFeaturesEXT("", pNextObj, *((VkValidationFeaturesEXT *)p));
1250 }
1251 break;
1252 case VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT:
1253 {
1254 p = s_globalMem.allocate(sizeof(VkApplicationParametersEXT));
1255 parse_VkApplicationParametersEXT("", pNextObj, *((VkApplicationParametersEXT *)p));
1256 }
1257 break;
1258 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV:
1259 {
1260 p = s_globalMem.allocate(sizeof(VkExportMemorySciBufInfoNV));
1261 parse_VkExportMemorySciBufInfoNV("", pNextObj, *((VkExportMemorySciBufInfoNV *)p));
1262 }
1263 break;
1264 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV:
1265 {
1266 p = s_globalMem.allocate(sizeof(VkImportMemorySciBufInfoNV));
1267 parse_VkImportMemorySciBufInfoNV("", pNextObj, *((VkImportMemorySciBufInfoNV *)p));
1268 }
1269 break;
1270 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV:
1271 {
1272 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalMemorySciBufFeaturesNV));
1273 parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV("", pNextObj,
1274 *((VkPhysicalDeviceExternalMemorySciBufFeaturesNV *)p));
1275 }
1276 break;
1277 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
1278 {
1279 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFeatures2));
1280 parse_VkPhysicalDeviceFeatures2("", pNextObj, *((VkPhysicalDeviceFeatures2 *)p));
1281 }
1282 break;
1283 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
1284 {
1285 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDriverProperties));
1286 parse_VkPhysicalDeviceDriverProperties("", pNextObj, *((VkPhysicalDeviceDriverProperties *)p));
1287 }
1288 break;
1289 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
1290 {
1291 p = s_globalMem.allocate(sizeof(VkPresentRegionsKHR));
1292 parse_VkPresentRegionsKHR("", pNextObj, *((VkPresentRegionsKHR *)p));
1293 }
1294 break;
1295 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
1296 {
1297 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVariablePointersFeatures));
1298 parse_VkPhysicalDeviceVariablePointersFeatures("", pNextObj, *((VkPhysicalDeviceVariablePointersFeatures *)p));
1299 }
1300 break;
1301 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
1302 {
1303 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalImageFormatInfo));
1304 parse_VkPhysicalDeviceExternalImageFormatInfo("", pNextObj, *((VkPhysicalDeviceExternalImageFormatInfo *)p));
1305 }
1306 break;
1307 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
1308 {
1309 p = s_globalMem.allocate(sizeof(VkExternalImageFormatProperties));
1310 parse_VkExternalImageFormatProperties("", pNextObj, *((VkExternalImageFormatProperties *)p));
1311 }
1312 break;
1313 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
1314 {
1315 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceIDProperties));
1316 parse_VkPhysicalDeviceIDProperties("", pNextObj, *((VkPhysicalDeviceIDProperties *)p));
1317 }
1318 break;
1319 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
1320 {
1321 p = s_globalMem.allocate(sizeof(VkExternalMemoryImageCreateInfo));
1322 parse_VkExternalMemoryImageCreateInfo("", pNextObj, *((VkExternalMemoryImageCreateInfo *)p));
1323 }
1324 break;
1325 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
1326 {
1327 p = s_globalMem.allocate(sizeof(VkExternalMemoryBufferCreateInfo));
1328 parse_VkExternalMemoryBufferCreateInfo("", pNextObj, *((VkExternalMemoryBufferCreateInfo *)p));
1329 }
1330 break;
1331 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
1332 {
1333 p = s_globalMem.allocate(sizeof(VkExportMemoryAllocateInfo));
1334 parse_VkExportMemoryAllocateInfo("", pNextObj, *((VkExportMemoryAllocateInfo *)p));
1335 }
1336 break;
1337 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
1338 {
1339 p = s_globalMem.allocate(sizeof(VkImportMemoryFdInfoKHR));
1340 parse_VkImportMemoryFdInfoKHR("", pNextObj, *((VkImportMemoryFdInfoKHR *)p));
1341 }
1342 break;
1343 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
1344 {
1345 p = s_globalMem.allocate(sizeof(VkExportSemaphoreCreateInfo));
1346 parse_VkExportSemaphoreCreateInfo("", pNextObj, *((VkExportSemaphoreCreateInfo *)p));
1347 }
1348 break;
1349 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
1350 {
1351 p = s_globalMem.allocate(sizeof(VkExportFenceCreateInfo));
1352 parse_VkExportFenceCreateInfo("", pNextObj, *((VkExportFenceCreateInfo *)p));
1353 }
1354 break;
1355 case VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV:
1356 {
1357 p = s_globalMem.allocate(sizeof(VkExportFenceSciSyncInfoNV));
1358 parse_VkExportFenceSciSyncInfoNV("", pNextObj, *((VkExportFenceSciSyncInfoNV *)p));
1359 }
1360 break;
1361 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV:
1362 {
1363 p = s_globalMem.allocate(sizeof(VkExportSemaphoreSciSyncInfoNV));
1364 parse_VkExportSemaphoreSciSyncInfoNV("", pNextObj, *((VkExportSemaphoreSciSyncInfoNV *)p));
1365 }
1366 break;
1367 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV:
1368 {
1369 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalSciSyncFeaturesNV));
1370 parse_VkPhysicalDeviceExternalSciSyncFeaturesNV("", pNextObj,
1371 *((VkPhysicalDeviceExternalSciSyncFeaturesNV *)p));
1372 }
1373 break;
1374 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV:
1375 {
1376 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalSciSync2FeaturesNV));
1377 parse_VkPhysicalDeviceExternalSciSync2FeaturesNV("", pNextObj,
1378 *((VkPhysicalDeviceExternalSciSync2FeaturesNV *)p));
1379 }
1380 break;
1381 case VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV:
1382 {
1383 p = s_globalMem.allocate(sizeof(VkSemaphoreSciSyncCreateInfoNV));
1384 parse_VkSemaphoreSciSyncCreateInfoNV("", pNextObj, *((VkSemaphoreSciSyncCreateInfoNV *)p));
1385 }
1386 break;
1387 case VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV:
1388 {
1389 p = s_globalMem.allocate(sizeof(VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV));
1390 parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV(
1391 "", pNextObj, *((VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV *)p));
1392 }
1393 break;
1394 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
1395 {
1396 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMultiviewFeatures));
1397 parse_VkPhysicalDeviceMultiviewFeatures("", pNextObj, *((VkPhysicalDeviceMultiviewFeatures *)p));
1398 }
1399 break;
1400 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
1401 {
1402 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMultiviewProperties));
1403 parse_VkPhysicalDeviceMultiviewProperties("", pNextObj, *((VkPhysicalDeviceMultiviewProperties *)p));
1404 }
1405 break;
1406 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
1407 {
1408 p = s_globalMem.allocate(sizeof(VkRenderPassMultiviewCreateInfo));
1409 parse_VkRenderPassMultiviewCreateInfo("", pNextObj, *((VkRenderPassMultiviewCreateInfo *)p));
1410 }
1411 break;
1412 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
1413 {
1414 p = s_globalMem.allocate(sizeof(VkSwapchainCounterCreateInfoEXT));
1415 parse_VkSwapchainCounterCreateInfoEXT("", pNextObj, *((VkSwapchainCounterCreateInfoEXT *)p));
1416 }
1417 break;
1418 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
1419 {
1420 p = s_globalMem.allocate(sizeof(VkMemoryAllocateFlagsInfo));
1421 parse_VkMemoryAllocateFlagsInfo("", pNextObj, *((VkMemoryAllocateFlagsInfo *)p));
1422 }
1423 break;
1424 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
1425 {
1426 p = s_globalMem.allocate(sizeof(VkBindBufferMemoryDeviceGroupInfo));
1427 parse_VkBindBufferMemoryDeviceGroupInfo("", pNextObj, *((VkBindBufferMemoryDeviceGroupInfo *)p));
1428 }
1429 break;
1430 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
1431 {
1432 p = s_globalMem.allocate(sizeof(VkBindImageMemoryDeviceGroupInfo));
1433 parse_VkBindImageMemoryDeviceGroupInfo("", pNextObj, *((VkBindImageMemoryDeviceGroupInfo *)p));
1434 }
1435 break;
1436 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
1437 {
1438 p = s_globalMem.allocate(sizeof(VkDeviceGroupRenderPassBeginInfo));
1439 parse_VkDeviceGroupRenderPassBeginInfo("", pNextObj, *((VkDeviceGroupRenderPassBeginInfo *)p));
1440 }
1441 break;
1442 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
1443 {
1444 p = s_globalMem.allocate(sizeof(VkDeviceGroupCommandBufferBeginInfo));
1445 parse_VkDeviceGroupCommandBufferBeginInfo("", pNextObj, *((VkDeviceGroupCommandBufferBeginInfo *)p));
1446 }
1447 break;
1448 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
1449 {
1450 p = s_globalMem.allocate(sizeof(VkDeviceGroupSubmitInfo));
1451 parse_VkDeviceGroupSubmitInfo("", pNextObj, *((VkDeviceGroupSubmitInfo *)p));
1452 }
1453 break;
1454 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
1455 {
1456 p = s_globalMem.allocate(sizeof(VkImageSwapchainCreateInfoKHR));
1457 parse_VkImageSwapchainCreateInfoKHR("", pNextObj, *((VkImageSwapchainCreateInfoKHR *)p));
1458 }
1459 break;
1460 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
1461 {
1462 p = s_globalMem.allocate(sizeof(VkBindImageMemorySwapchainInfoKHR));
1463 parse_VkBindImageMemorySwapchainInfoKHR("", pNextObj, *((VkBindImageMemorySwapchainInfoKHR *)p));
1464 }
1465 break;
1466 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
1467 {
1468 p = s_globalMem.allocate(sizeof(VkDeviceGroupPresentInfoKHR));
1469 parse_VkDeviceGroupPresentInfoKHR("", pNextObj, *((VkDeviceGroupPresentInfoKHR *)p));
1470 }
1471 break;
1472 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
1473 {
1474 p = s_globalMem.allocate(sizeof(VkDeviceGroupDeviceCreateInfo));
1475 parse_VkDeviceGroupDeviceCreateInfo("", pNextObj, *((VkDeviceGroupDeviceCreateInfo *)p));
1476 }
1477 break;
1478 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
1479 {
1480 p = s_globalMem.allocate(sizeof(VkDeviceGroupSwapchainCreateInfoKHR));
1481 parse_VkDeviceGroupSwapchainCreateInfoKHR("", pNextObj, *((VkDeviceGroupSwapchainCreateInfoKHR *)p));
1482 }
1483 break;
1484 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
1485 {
1486 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT));
1487 parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT("", pNextObj,
1488 *((VkPhysicalDeviceDiscardRectanglePropertiesEXT *)p));
1489 }
1490 break;
1491 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
1492 {
1493 p = s_globalMem.allocate(sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT));
1494 parse_VkPipelineDiscardRectangleStateCreateInfoEXT("", pNextObj,
1495 *((VkPipelineDiscardRectangleStateCreateInfoEXT *)p));
1496 }
1497 break;
1498 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
1499 {
1500 p = s_globalMem.allocate(sizeof(VkRenderPassInputAttachmentAspectCreateInfo));
1501 parse_VkRenderPassInputAttachmentAspectCreateInfo("", pNextObj,
1502 *((VkRenderPassInputAttachmentAspectCreateInfo *)p));
1503 }
1504 break;
1505 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
1506 {
1507 p = s_globalMem.allocate(sizeof(VkSharedPresentSurfaceCapabilitiesKHR));
1508 parse_VkSharedPresentSurfaceCapabilitiesKHR("", pNextObj, *((VkSharedPresentSurfaceCapabilitiesKHR *)p));
1509 }
1510 break;
1511 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
1512 {
1513 p = s_globalMem.allocate(sizeof(VkPhysicalDevice16BitStorageFeatures));
1514 parse_VkPhysicalDevice16BitStorageFeatures("", pNextObj, *((VkPhysicalDevice16BitStorageFeatures *)p));
1515 }
1516 break;
1517 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
1518 {
1519 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupProperties));
1520 parse_VkPhysicalDeviceSubgroupProperties("", pNextObj, *((VkPhysicalDeviceSubgroupProperties *)p));
1521 }
1522 break;
1523 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
1524 {
1525 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
1526 parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
1527 "", pNextObj, *((VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)p));
1528 }
1529 break;
1530 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
1531 {
1532 p = s_globalMem.allocate(sizeof(VkPhysicalDevicePointClippingProperties));
1533 parse_VkPhysicalDevicePointClippingProperties("", pNextObj, *((VkPhysicalDevicePointClippingProperties *)p));
1534 }
1535 break;
1536 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
1537 {
1538 p = s_globalMem.allocate(sizeof(VkMemoryDedicatedRequirements));
1539 parse_VkMemoryDedicatedRequirements("", pNextObj, *((VkMemoryDedicatedRequirements *)p));
1540 }
1541 break;
1542 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
1543 {
1544 p = s_globalMem.allocate(sizeof(VkMemoryDedicatedAllocateInfo));
1545 parse_VkMemoryDedicatedAllocateInfo("", pNextObj, *((VkMemoryDedicatedAllocateInfo *)p));
1546 }
1547 break;
1548 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
1549 {
1550 p = s_globalMem.allocate(sizeof(VkImageViewUsageCreateInfo));
1551 parse_VkImageViewUsageCreateInfo("", pNextObj, *((VkImageViewUsageCreateInfo *)p));
1552 }
1553 break;
1554 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
1555 {
1556 p = s_globalMem.allocate(sizeof(VkPipelineTessellationDomainOriginStateCreateInfo));
1557 parse_VkPipelineTessellationDomainOriginStateCreateInfo(
1558 "", pNextObj, *((VkPipelineTessellationDomainOriginStateCreateInfo *)p));
1559 }
1560 break;
1561 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
1562 {
1563 p = s_globalMem.allocate(sizeof(VkSamplerYcbcrConversionInfo));
1564 parse_VkSamplerYcbcrConversionInfo("", pNextObj, *((VkSamplerYcbcrConversionInfo *)p));
1565 }
1566 break;
1567 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
1568 {
1569 p = s_globalMem.allocate(sizeof(VkBindImagePlaneMemoryInfo));
1570 parse_VkBindImagePlaneMemoryInfo("", pNextObj, *((VkBindImagePlaneMemoryInfo *)p));
1571 }
1572 break;
1573 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
1574 {
1575 p = s_globalMem.allocate(sizeof(VkImagePlaneMemoryRequirementsInfo));
1576 parse_VkImagePlaneMemoryRequirementsInfo("", pNextObj, *((VkImagePlaneMemoryRequirementsInfo *)p));
1577 }
1578 break;
1579 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
1580 {
1581 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
1582 parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures("", pNextObj,
1583 *((VkPhysicalDeviceSamplerYcbcrConversionFeatures *)p));
1584 }
1585 break;
1586 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
1587 {
1588 p = s_globalMem.allocate(sizeof(VkSamplerYcbcrConversionImageFormatProperties));
1589 parse_VkSamplerYcbcrConversionImageFormatProperties("", pNextObj,
1590 *((VkSamplerYcbcrConversionImageFormatProperties *)p));
1591 }
1592 break;
1593 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
1594 {
1595 p = s_globalMem.allocate(sizeof(VkProtectedSubmitInfo));
1596 parse_VkProtectedSubmitInfo("", pNextObj, *((VkProtectedSubmitInfo *)p));
1597 }
1598 break;
1599 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
1600 {
1601 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
1602 parse_VkPhysicalDeviceProtectedMemoryFeatures("", pNextObj, *((VkPhysicalDeviceProtectedMemoryFeatures *)p));
1603 }
1604 break;
1605 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
1606 {
1607 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceProtectedMemoryProperties));
1608 parse_VkPhysicalDeviceProtectedMemoryProperties("", pNextObj,
1609 *((VkPhysicalDeviceProtectedMemoryProperties *)p));
1610 }
1611 break;
1612 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
1613 {
1614 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties));
1615 parse_VkPhysicalDeviceSamplerFilterMinmaxProperties("", pNextObj,
1616 *((VkPhysicalDeviceSamplerFilterMinmaxProperties *)p));
1617 }
1618 break;
1619 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
1620 {
1621 p = s_globalMem.allocate(sizeof(VkSampleLocationsInfoEXT));
1622 parse_VkSampleLocationsInfoEXT("", pNextObj, *((VkSampleLocationsInfoEXT *)p));
1623 }
1624 break;
1625 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
1626 {
1627 p = s_globalMem.allocate(sizeof(VkRenderPassSampleLocationsBeginInfoEXT));
1628 parse_VkRenderPassSampleLocationsBeginInfoEXT("", pNextObj, *((VkRenderPassSampleLocationsBeginInfoEXT *)p));
1629 }
1630 break;
1631 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
1632 {
1633 p = s_globalMem.allocate(sizeof(VkPipelineSampleLocationsStateCreateInfoEXT));
1634 parse_VkPipelineSampleLocationsStateCreateInfoEXT("", pNextObj,
1635 *((VkPipelineSampleLocationsStateCreateInfoEXT *)p));
1636 }
1637 break;
1638 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
1639 {
1640 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT));
1641 parse_VkPhysicalDeviceSampleLocationsPropertiesEXT("", pNextObj,
1642 *((VkPhysicalDeviceSampleLocationsPropertiesEXT *)p));
1643 }
1644 break;
1645 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
1646 {
1647 p = s_globalMem.allocate(sizeof(VkSamplerReductionModeCreateInfo));
1648 parse_VkSamplerReductionModeCreateInfo("", pNextObj, *((VkSamplerReductionModeCreateInfo *)p));
1649 }
1650 break;
1651 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
1652 {
1653 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
1654 parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
1655 "", pNextObj, *((VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *)p));
1656 }
1657 break;
1658 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
1659 {
1660 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT));
1661 parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
1662 "", pNextObj, *((VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *)p));
1663 }
1664 break;
1665 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
1666 {
1667 p = s_globalMem.allocate(sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT));
1668 parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT("", pNextObj,
1669 *((VkPipelineColorBlendAdvancedStateCreateInfoEXT *)p));
1670 }
1671 break;
1672 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
1673 {
1674 p = s_globalMem.allocate(sizeof(VkImageFormatListCreateInfo));
1675 parse_VkImageFormatListCreateInfo("", pNextObj, *((VkImageFormatListCreateInfo *)p));
1676 }
1677 break;
1678 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
1679 {
1680 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMaintenance3Properties));
1681 parse_VkPhysicalDeviceMaintenance3Properties("", pNextObj, *((VkPhysicalDeviceMaintenance3Properties *)p));
1682 }
1683 break;
1684 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
1685 {
1686 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
1687 parse_VkPhysicalDeviceShaderDrawParametersFeatures("", pNextObj,
1688 *((VkPhysicalDeviceShaderDrawParametersFeatures *)p));
1689 }
1690 break;
1691 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
1692 {
1693 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
1694 parse_VkPhysicalDeviceShaderFloat16Int8Features("", pNextObj,
1695 *((VkPhysicalDeviceShaderFloat16Int8Features *)p));
1696 }
1697 break;
1698 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
1699 {
1700 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFloatControlsProperties));
1701 parse_VkPhysicalDeviceFloatControlsProperties("", pNextObj, *((VkPhysicalDeviceFloatControlsProperties *)p));
1702 }
1703 break;
1704 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
1705 {
1706 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceHostQueryResetFeatures));
1707 parse_VkPhysicalDeviceHostQueryResetFeatures("", pNextObj, *((VkPhysicalDeviceHostQueryResetFeatures *)p));
1708 }
1709 break;
1710 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
1711 {
1712 p = s_globalMem.allocate(sizeof(VkDeviceQueueGlobalPriorityCreateInfoEXT));
1713 parse_VkDeviceQueueGlobalPriorityCreateInfoEXT("", pNextObj, *((VkDeviceQueueGlobalPriorityCreateInfoEXT *)p));
1714 }
1715 break;
1716 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
1717 {
1718 p = s_globalMem.allocate(sizeof(VkDebugUtilsMessengerCreateInfoEXT));
1719 parse_VkDebugUtilsMessengerCreateInfoEXT("", pNextObj, *((VkDebugUtilsMessengerCreateInfoEXT *)p));
1720 }
1721 break;
1722 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
1723 {
1724 p = s_globalMem.allocate(sizeof(VkImportMemoryHostPointerInfoEXT));
1725 parse_VkImportMemoryHostPointerInfoEXT("", pNextObj, *((VkImportMemoryHostPointerInfoEXT *)p));
1726 }
1727 break;
1728 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
1729 {
1730 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT));
1731 parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT("", pNextObj,
1732 *((VkPhysicalDeviceExternalMemoryHostPropertiesEXT *)p));
1733 }
1734 break;
1735 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
1736 {
1737 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT));
1738 parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
1739 "", pNextObj, *((VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)p));
1740 }
1741 break;
1742 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
1743 {
1744 p = s_globalMem.allocate(sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT));
1745 parse_VkPipelineRasterizationConservativeStateCreateInfoEXT(
1746 "", pNextObj, *((VkPipelineRasterizationConservativeStateCreateInfoEXT *)p));
1747 }
1748 break;
1749 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
1750 {
1751 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
1752 parse_VkPhysicalDeviceDescriptorIndexingFeatures("", pNextObj,
1753 *((VkPhysicalDeviceDescriptorIndexingFeatures *)p));
1754 }
1755 break;
1756 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
1757 {
1758 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDescriptorIndexingProperties));
1759 parse_VkPhysicalDeviceDescriptorIndexingProperties("", pNextObj,
1760 *((VkPhysicalDeviceDescriptorIndexingProperties *)p));
1761 }
1762 break;
1763 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
1764 {
1765 p = s_globalMem.allocate(sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo));
1766 parse_VkDescriptorSetLayoutBindingFlagsCreateInfo("", pNextObj,
1767 *((VkDescriptorSetLayoutBindingFlagsCreateInfo *)p));
1768 }
1769 break;
1770 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
1771 {
1772 p = s_globalMem.allocate(sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo));
1773 parse_VkDescriptorSetVariableDescriptorCountAllocateInfo(
1774 "", pNextObj, *((VkDescriptorSetVariableDescriptorCountAllocateInfo *)p));
1775 }
1776 break;
1777 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
1778 {
1779 p = s_globalMem.allocate(sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport));
1780 parse_VkDescriptorSetVariableDescriptorCountLayoutSupport(
1781 "", pNextObj, *((VkDescriptorSetVariableDescriptorCountLayoutSupport *)p));
1782 }
1783 break;
1784 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
1785 {
1786 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
1787 parse_VkPhysicalDeviceTimelineSemaphoreFeatures("", pNextObj,
1788 *((VkPhysicalDeviceTimelineSemaphoreFeatures *)p));
1789 }
1790 break;
1791 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
1792 {
1793 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTimelineSemaphoreProperties));
1794 parse_VkPhysicalDeviceTimelineSemaphoreProperties("", pNextObj,
1795 *((VkPhysicalDeviceTimelineSemaphoreProperties *)p));
1796 }
1797 break;
1798 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
1799 {
1800 p = s_globalMem.allocate(sizeof(VkSemaphoreTypeCreateInfo));
1801 parse_VkSemaphoreTypeCreateInfo("", pNextObj, *((VkSemaphoreTypeCreateInfo *)p));
1802 }
1803 break;
1804 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
1805 {
1806 p = s_globalMem.allocate(sizeof(VkTimelineSemaphoreSubmitInfo));
1807 parse_VkTimelineSemaphoreSubmitInfo("", pNextObj, *((VkTimelineSemaphoreSubmitInfo *)p));
1808 }
1809 break;
1810 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
1811 {
1812 p = s_globalMem.allocate(sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT));
1813 parse_VkPipelineVertexInputDivisorStateCreateInfoEXT("", pNextObj,
1814 *((VkPipelineVertexInputDivisorStateCreateInfoEXT *)p));
1815 }
1816 break;
1817 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
1818 {
1819 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT));
1820 parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
1821 "", pNextObj, *((VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)p));
1822 }
1823 break;
1824 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
1825 {
1826 p = s_globalMem.allocate(sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT));
1827 parse_VkPhysicalDevicePCIBusInfoPropertiesEXT("", pNextObj, *((VkPhysicalDevicePCIBusInfoPropertiesEXT *)p));
1828 }
1829 break;
1830 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
1831 {
1832 p = s_globalMem.allocate(sizeof(VkPhysicalDevice8BitStorageFeatures));
1833 parse_VkPhysicalDevice8BitStorageFeatures("", pNextObj, *((VkPhysicalDevice8BitStorageFeatures *)p));
1834 }
1835 break;
1836 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
1837 {
1838 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
1839 parse_VkPhysicalDeviceVulkanMemoryModelFeatures("", pNextObj,
1840 *((VkPhysicalDeviceVulkanMemoryModelFeatures *)p));
1841 }
1842 break;
1843 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
1844 {
1845 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
1846 parse_VkPhysicalDeviceShaderAtomicInt64Features("", pNextObj,
1847 *((VkPhysicalDeviceShaderAtomicInt64Features *)p));
1848 }
1849 break;
1850 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
1851 {
1852 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
1853 parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT("", pNextObj,
1854 *((VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *)p));
1855 }
1856 break;
1857 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
1858 {
1859 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
1860 parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
1861 "", pNextObj, *((VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)p));
1862 }
1863 break;
1864 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
1865 {
1866 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDepthStencilResolveProperties));
1867 parse_VkPhysicalDeviceDepthStencilResolveProperties("", pNextObj,
1868 *((VkPhysicalDeviceDepthStencilResolveProperties *)p));
1869 }
1870 break;
1871 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
1872 {
1873 p = s_globalMem.allocate(sizeof(VkSubpassDescriptionDepthStencilResolve));
1874 parse_VkSubpassDescriptionDepthStencilResolve("", pNextObj, *((VkSubpassDescriptionDepthStencilResolve *)p));
1875 }
1876 break;
1877 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
1878 {
1879 p = s_globalMem.allocate(sizeof(VkImageViewASTCDecodeModeEXT));
1880 parse_VkImageViewASTCDecodeModeEXT("", pNextObj, *((VkImageViewASTCDecodeModeEXT *)p));
1881 }
1882 break;
1883 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
1884 {
1885 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
1886 parse_VkPhysicalDeviceASTCDecodeFeaturesEXT("", pNextObj, *((VkPhysicalDeviceASTCDecodeFeaturesEXT *)p));
1887 }
1888 break;
1889 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
1890 {
1891 p = s_globalMem.allocate(sizeof(VkDrmFormatModifierPropertiesListEXT));
1892 parse_VkDrmFormatModifierPropertiesListEXT("", pNextObj, *((VkDrmFormatModifierPropertiesListEXT *)p));
1893 }
1894 break;
1895 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
1896 {
1897 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT));
1898 parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT("", pNextObj,
1899 *((VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)p));
1900 }
1901 break;
1902 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
1903 {
1904 p = s_globalMem.allocate(sizeof(VkImageDrmFormatModifierListCreateInfoEXT));
1905 parse_VkImageDrmFormatModifierListCreateInfoEXT("", pNextObj,
1906 *((VkImageDrmFormatModifierListCreateInfoEXT *)p));
1907 }
1908 break;
1909 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
1910 {
1911 p = s_globalMem.allocate(sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT));
1912 parse_VkImageDrmFormatModifierExplicitCreateInfoEXT("", pNextObj,
1913 *((VkImageDrmFormatModifierExplicitCreateInfoEXT *)p));
1914 }
1915 break;
1916 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
1917 {
1918 p = s_globalMem.allocate(sizeof(VkImageStencilUsageCreateInfo));
1919 parse_VkImageStencilUsageCreateInfo("", pNextObj, *((VkImageStencilUsageCreateInfo *)p));
1920 }
1921 break;
1922 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
1923 {
1924 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
1925 parse_VkPhysicalDeviceScalarBlockLayoutFeatures("", pNextObj,
1926 *((VkPhysicalDeviceScalarBlockLayoutFeatures *)p));
1927 }
1928 break;
1929 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
1930 {
1931 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
1932 parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
1933 "", pNextObj, *((VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)p));
1934 }
1935 break;
1936 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
1937 {
1938 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
1939 parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT("", pNextObj,
1940 *((VkPhysicalDeviceDepthClipEnableFeaturesEXT *)p));
1941 }
1942 break;
1943 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
1944 {
1945 p = s_globalMem.allocate(sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT));
1946 parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
1947 "", pNextObj, *((VkPipelineRasterizationDepthClipStateCreateInfoEXT *)p));
1948 }
1949 break;
1950 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
1951 {
1952 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT));
1953 parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT("", pNextObj,
1954 *((VkPhysicalDeviceMemoryBudgetPropertiesEXT *)p));
1955 }
1956 break;
1957 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
1958 {
1959 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
1960 parse_VkPhysicalDeviceBufferDeviceAddressFeatures("", pNextObj,
1961 *((VkPhysicalDeviceBufferDeviceAddressFeatures *)p));
1962 }
1963 break;
1964 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
1965 {
1966 p = s_globalMem.allocate(sizeof(VkBufferOpaqueCaptureAddressCreateInfo));
1967 parse_VkBufferOpaqueCaptureAddressCreateInfo("", pNextObj, *((VkBufferOpaqueCaptureAddressCreateInfo *)p));
1968 }
1969 break;
1970 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
1971 {
1972 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT));
1973 parse_VkPhysicalDeviceImageViewImageFormatInfoEXT("", pNextObj,
1974 *((VkPhysicalDeviceImageViewImageFormatInfoEXT *)p));
1975 }
1976 break;
1977 case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
1978 {
1979 p = s_globalMem.allocate(sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT));
1980 parse_VkFilterCubicImageViewImageFormatPropertiesEXT("", pNextObj,
1981 *((VkFilterCubicImageViewImageFormatPropertiesEXT *)p));
1982 }
1983 break;
1984 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
1985 {
1986 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
1987 parse_VkPhysicalDeviceImagelessFramebufferFeatures("", pNextObj,
1988 *((VkPhysicalDeviceImagelessFramebufferFeatures *)p));
1989 }
1990 break;
1991 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
1992 {
1993 p = s_globalMem.allocate(sizeof(VkFramebufferAttachmentsCreateInfo));
1994 parse_VkFramebufferAttachmentsCreateInfo("", pNextObj, *((VkFramebufferAttachmentsCreateInfo *)p));
1995 }
1996 break;
1997 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
1998 {
1999 p = s_globalMem.allocate(sizeof(VkRenderPassAttachmentBeginInfo));
2000 parse_VkRenderPassAttachmentBeginInfo("", pNextObj, *((VkRenderPassAttachmentBeginInfo *)p));
2001 }
2002 break;
2003 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
2004 {
2005 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT));
2006 parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
2007 "", pNextObj, *((VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT *)p));
2008 }
2009 break;
2010 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
2011 {
2012 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
2013 parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT("", pNextObj,
2014 *((VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)p));
2015 }
2016 break;
2017 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
2018 {
2019 p = s_globalMem.allocate(sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
2020 parse_VkPhysicalDevicePerformanceQueryFeaturesKHR("", pNextObj,
2021 *((VkPhysicalDevicePerformanceQueryFeaturesKHR *)p));
2022 }
2023 break;
2024 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
2025 {
2026 p = s_globalMem.allocate(sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR));
2027 parse_VkPhysicalDevicePerformanceQueryPropertiesKHR("", pNextObj,
2028 *((VkPhysicalDevicePerformanceQueryPropertiesKHR *)p));
2029 }
2030 break;
2031 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
2032 {
2033 p = s_globalMem.allocate(sizeof(VkQueryPoolPerformanceCreateInfoKHR));
2034 parse_VkQueryPoolPerformanceCreateInfoKHR("", pNextObj, *((VkQueryPoolPerformanceCreateInfoKHR *)p));
2035 }
2036 break;
2037 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
2038 {
2039 p = s_globalMem.allocate(sizeof(VkPerformanceQuerySubmitInfoKHR));
2040 parse_VkPerformanceQuerySubmitInfoKHR("", pNextObj, *((VkPerformanceQuerySubmitInfoKHR *)p));
2041 }
2042 break;
2043 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR:
2044 {
2045 p = s_globalMem.allocate(sizeof(VkPerformanceQueryReservationInfoKHR));
2046 parse_VkPerformanceQueryReservationInfoKHR("", pNextObj, *((VkPerformanceQueryReservationInfoKHR *)p));
2047 }
2048 break;
2049 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
2050 {
2051 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
2052 parse_VkPhysicalDeviceShaderClockFeaturesKHR("", pNextObj, *((VkPhysicalDeviceShaderClockFeaturesKHR *)p));
2053 }
2054 break;
2055 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
2056 {
2057 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
2058 parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT("", pNextObj,
2059 *((VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)p));
2060 }
2061 break;
2062 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
2063 {
2064 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
2065 parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
2066 "", pNextObj, *((VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *)p));
2067 }
2068 break;
2069 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
2070 {
2071 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
2072 parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
2073 "", pNextObj, *((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)p));
2074 }
2075 break;
2076 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
2077 {
2078 p = s_globalMem.allocate(sizeof(VkAttachmentReferenceStencilLayout));
2079 parse_VkAttachmentReferenceStencilLayout("", pNextObj, *((VkAttachmentReferenceStencilLayout *)p));
2080 }
2081 break;
2082 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
2083 {
2084 p = s_globalMem.allocate(sizeof(VkAttachmentDescriptionStencilLayout));
2085 parse_VkAttachmentDescriptionStencilLayout("", pNextObj, *((VkAttachmentDescriptionStencilLayout *)p));
2086 }
2087 break;
2088 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
2089 {
2090 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT));
2091 parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
2092 "", pNextObj, *((VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT *)p));
2093 }
2094 break;
2095 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
2096 {
2097 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
2098 parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT("", pNextObj,
2099 *((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)p));
2100 }
2101 break;
2102 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
2103 {
2104 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT));
2105 parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
2106 "", pNextObj, *((VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *)p));
2107 }
2108 break;
2109 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
2110 {
2111 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT));
2112 parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT("", pNextObj,
2113 *((VkPhysicalDeviceSubgroupSizeControlFeaturesEXT *)p));
2114 }
2115 break;
2116 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
2117 {
2118 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupSizeControlPropertiesEXT));
2119 parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
2120 "", pNextObj, *((VkPhysicalDeviceSubgroupSizeControlPropertiesEXT *)p));
2121 }
2122 break;
2123 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
2124 {
2125 p = s_globalMem.allocate(sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT));
2126 parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
2127 "", pNextObj, *((VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT *)p));
2128 }
2129 break;
2130 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
2131 {
2132 p = s_globalMem.allocate(sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo));
2133 parse_VkMemoryOpaqueCaptureAddressAllocateInfo("", pNextObj, *((VkMemoryOpaqueCaptureAddressAllocateInfo *)p));
2134 }
2135 break;
2136 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
2137 {
2138 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
2139 parse_VkPhysicalDeviceLineRasterizationFeaturesEXT("", pNextObj,
2140 *((VkPhysicalDeviceLineRasterizationFeaturesEXT *)p));
2141 }
2142 break;
2143 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
2144 {
2145 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT));
2146 parse_VkPhysicalDeviceLineRasterizationPropertiesEXT("", pNextObj,
2147 *((VkPhysicalDeviceLineRasterizationPropertiesEXT *)p));
2148 }
2149 break;
2150 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
2151 {
2152 p = s_globalMem.allocate(sizeof(VkPipelineRasterizationLineStateCreateInfoEXT));
2153 parse_VkPipelineRasterizationLineStateCreateInfoEXT("", pNextObj,
2154 *((VkPipelineRasterizationLineStateCreateInfoEXT *)p));
2155 }
2156 break;
2157 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
2158 {
2159 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkan11Features));
2160 parse_VkPhysicalDeviceVulkan11Features("", pNextObj, *((VkPhysicalDeviceVulkan11Features *)p));
2161 }
2162 break;
2163 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
2164 {
2165 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkan11Properties));
2166 parse_VkPhysicalDeviceVulkan11Properties("", pNextObj, *((VkPhysicalDeviceVulkan11Properties *)p));
2167 }
2168 break;
2169 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
2170 {
2171 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkan12Features));
2172 parse_VkPhysicalDeviceVulkan12Features("", pNextObj, *((VkPhysicalDeviceVulkan12Features *)p));
2173 }
2174 break;
2175 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
2176 {
2177 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkan12Properties));
2178 parse_VkPhysicalDeviceVulkan12Properties("", pNextObj, *((VkPhysicalDeviceVulkan12Properties *)p));
2179 }
2180 break;
2181 case VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO:
2182 {
2183 p = s_globalMem.allocate(sizeof(VkFaultCallbackInfo));
2184 parse_VkFaultCallbackInfo("", pNextObj, *((VkFaultCallbackInfo *)p));
2185 }
2186 break;
2187 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
2188 {
2189 p = s_globalMem.allocate(sizeof(VkSamplerCustomBorderColorCreateInfoEXT));
2190 parse_VkSamplerCustomBorderColorCreateInfoEXT("", pNextObj, *((VkSamplerCustomBorderColorCreateInfoEXT *)p));
2191 }
2192 break;
2193 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
2194 {
2195 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT));
2196 parse_VkPhysicalDeviceCustomBorderColorPropertiesEXT("", pNextObj,
2197 *((VkPhysicalDeviceCustomBorderColorPropertiesEXT *)p));
2198 }
2199 break;
2200 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
2201 {
2202 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
2203 parse_VkPhysicalDeviceCustomBorderColorFeaturesEXT("", pNextObj,
2204 *((VkPhysicalDeviceCustomBorderColorFeaturesEXT *)p));
2205 }
2206 break;
2207 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
2208 {
2209 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
2210 parse_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT("", pNextObj,
2211 *((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)p));
2212 }
2213 break;
2214 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
2215 {
2216 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
2217 parse_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
2218 "", pNextObj, *((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)p));
2219 }
2220 break;
2221 case VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO:
2222 {
2223 p = s_globalMem.allocate(sizeof(VkPipelineOfflineCreateInfo));
2224 parse_VkPipelineOfflineCreateInfo("", pNextObj, *((VkPipelineOfflineCreateInfo *)p));
2225 }
2226 break;
2227 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
2228 {
2229 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
2230 parse_VkPhysicalDeviceRobustness2FeaturesEXT("", pNextObj, *((VkPhysicalDeviceRobustness2FeaturesEXT *)p));
2231 }
2232 break;
2233 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
2234 {
2235 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceRobustness2PropertiesEXT));
2236 parse_VkPhysicalDeviceRobustness2PropertiesEXT("", pNextObj, *((VkPhysicalDeviceRobustness2PropertiesEXT *)p));
2237 }
2238 break;
2239 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
2240 {
2241 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImageRobustnessFeaturesEXT));
2242 parse_VkPhysicalDeviceImageRobustnessFeaturesEXT("", pNextObj,
2243 *((VkPhysicalDeviceImageRobustnessFeaturesEXT *)p));
2244 }
2245 break;
2246 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
2247 {
2248 p = s_globalMem.allocate(sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
2249 parse_VkPhysicalDevice4444FormatsFeaturesEXT("", pNextObj, *((VkPhysicalDevice4444FormatsFeaturesEXT *)p));
2250 }
2251 break;
2252 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
2253 {
2254 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT));
2255 parse_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
2256 "", pNextObj, *((VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *)p));
2257 }
2258 break;
2259 case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
2260 {
2261 p = s_globalMem.allocate(sizeof(VkFragmentShadingRateAttachmentInfoKHR));
2262 parse_VkFragmentShadingRateAttachmentInfoKHR("", pNextObj, *((VkFragmentShadingRateAttachmentInfoKHR *)p));
2263 }
2264 break;
2265 case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
2266 {
2267 p = s_globalMem.allocate(sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR));
2268 parse_VkPipelineFragmentShadingRateStateCreateInfoKHR("", pNextObj,
2269 *((VkPipelineFragmentShadingRateStateCreateInfoKHR *)p));
2270 }
2271 break;
2272 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
2273 {
2274 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR));
2275 parse_VkPhysicalDeviceFragmentShadingRateFeaturesKHR("", pNextObj,
2276 *((VkPhysicalDeviceFragmentShadingRateFeaturesKHR *)p));
2277 }
2278 break;
2279 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
2280 {
2281 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR));
2282 parse_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
2283 "", pNextObj, *((VkPhysicalDeviceFragmentShadingRatePropertiesKHR *)p));
2284 }
2285 break;
2286 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
2287 {
2288 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR));
2289 parse_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
2290 "", pNextObj, *((VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR *)p));
2291 }
2292 break;
2293 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
2294 {
2295 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT));
2296 parse_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
2297 "", pNextObj, *((VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *)p));
2298 }
2299 break;
2300 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
2301 {
2302 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT));
2303 parse_VkPhysicalDeviceColorWriteEnableFeaturesEXT("", pNextObj,
2304 *((VkPhysicalDeviceColorWriteEnableFeaturesEXT *)p));
2305 }
2306 break;
2307 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
2308 {
2309 p = s_globalMem.allocate(sizeof(VkPipelineColorWriteCreateInfoEXT));
2310 parse_VkPipelineColorWriteCreateInfoEXT("", pNextObj, *((VkPipelineColorWriteCreateInfoEXT *)p));
2311 }
2312 break;
2313 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
2314 {
2315 p = s_globalMem.allocate(sizeof(VkMemoryBarrier2KHR));
2316 parse_VkMemoryBarrier2KHR("", pNextObj, *((VkMemoryBarrier2KHR *)p));
2317 }
2318 break;
2319 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
2320 {
2321 p = s_globalMem.allocate(sizeof(VkQueueFamilyCheckpointProperties2NV));
2322 parse_VkQueueFamilyCheckpointProperties2NV("", pNextObj, *((VkQueueFamilyCheckpointProperties2NV *)p));
2323 }
2324 break;
2325 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
2326 {
2327 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSynchronization2FeaturesKHR));
2328 parse_VkPhysicalDeviceSynchronization2FeaturesKHR("", pNextObj,
2329 *((VkPhysicalDeviceSynchronization2FeaturesKHR *)p));
2330 }
2331 break;
2332 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES:
2333 {
2334 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkanSC10Properties));
2335 parse_VkPhysicalDeviceVulkanSC10Properties("", pNextObj, *((VkPhysicalDeviceVulkanSC10Properties *)p));
2336 }
2337 break;
2338 case VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO:
2339 {
2340 p = s_globalMem.allocate(sizeof(VkDeviceObjectReservationCreateInfo));
2341 parse_VkDeviceObjectReservationCreateInfo("", pNextObj, *((VkDeviceObjectReservationCreateInfo *)p));
2342 }
2343 break;
2344 case VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO:
2345 {
2346 p = s_globalMem.allocate(sizeof(VkCommandPoolMemoryReservationCreateInfo));
2347 parse_VkCommandPoolMemoryReservationCreateInfo("", pNextObj, *((VkCommandPoolMemoryReservationCreateInfo *)p));
2348 }
2349 break;
2350 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES:
2351 {
2352 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkanSC10Features));
2353 parse_VkPhysicalDeviceVulkanSC10Features("", pNextObj, *((VkPhysicalDeviceVulkanSC10Features *)p));
2354 }
2355 break;
2356 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
2357 {
2358 p = s_globalMem.allocate(sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
2359 parse_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
2360 "", pNextObj, *((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)p));
2361 }
2362 break;
2363 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
2364 {
2365 p = s_globalMem.allocate(sizeof(VkDrmFormatModifierPropertiesList2EXT));
2366 parse_VkDrmFormatModifierPropertiesList2EXT("", pNextObj, *((VkDrmFormatModifierPropertiesList2EXT *)p));
2367 }
2368 break;
2369 default:
2370 { /** **/
2371 }
2372 }
2373 return p;
2374 }
2375
parse_VkBool32(const char * s,Json::Value & obj,VkBool32 & o)2376 static void parse_VkBool32(const char *s, Json::Value &obj, VkBool32 &o)
2377 {
2378 std::string _res = obj.asString();
2379 //VkBool is represented as VK_TRUE and VK_FALSE in the json
2380 o = (_res == "VK_TRUE") ? (1) : (0);
2381 }
2382
parse_VkDeviceAddress(const char * s,Json::Value & obj,VkDeviceAddress & o)2383 static void parse_VkDeviceAddress(const char *s, Json::Value &obj, VkDeviceAddress &o)
2384 {
2385 std::string _res = obj.asString();
2386 sscanf(_res.c_str(), "%" SCNu64, &o);
2387 }
2388
parse_VkDeviceSize(const char * s,Json::Value & obj,VkDeviceSize & o)2389 static void parse_VkDeviceSize(const char *s, Json::Value &obj, VkDeviceSize &o)
2390 {
2391 std::string _res = obj.asString();
2392 if (_res == "VK_WHOLE_SIZE")
2393 o = (~0ULL);
2394 else
2395 sscanf(_res.c_str(), "%" SCNu64, &o);
2396 }
2397
parse_VkFlags(const char * s,Json::Value & obj,VkFlags & o)2398 static void parse_VkFlags(const char *s, Json::Value &obj, VkFlags &o)
2399 {
2400 std::string _res = obj.asString();
2401 sscanf(_res.c_str(), "%u", &o);
2402 }
2403
parse_VkSampleMask(const char * s,Json::Value & obj,VkSampleMask & o)2404 static void parse_VkSampleMask(const char *s, Json::Value &obj, VkSampleMask &o)
2405 {
2406 std::string _res = obj.asString();
2407 sscanf(_res.c_str(), "%u", &o);
2408 }
2409
parse_VkBuffer(const char * s,Json::Value & obj,VkBuffer & o)2410 static void parse_VkBuffer(const char *s, Json::Value &obj, VkBuffer &o)
2411 {
2412 // std::string _res = obj.asString();
2413 }
2414
parse_VkImage(const char * s,Json::Value & obj,VkImage & o)2415 static void parse_VkImage(const char *s, Json::Value &obj, VkImage &o)
2416 {
2417 // std::string _res = obj.asString();
2418 }
2419
parse_VkInstance(const char * s,Json::Value & obj,VkInstance & o)2420 static void parse_VkInstance(const char *s, Json::Value &obj, VkInstance &o)
2421 {
2422 // std::string _res = obj.asString();
2423 }
2424
parse_VkPhysicalDevice(const char * s,Json::Value & obj,VkPhysicalDevice & o)2425 static void parse_VkPhysicalDevice(const char *s, Json::Value &obj, VkPhysicalDevice &o)
2426 {
2427 // std::string _res = obj.asString();
2428 }
2429
parse_VkDevice(const char * s,Json::Value & obj,VkDevice & o)2430 static void parse_VkDevice(const char *s, Json::Value &obj, VkDevice &o)
2431 {
2432 // std::string _res = obj.asString();
2433 }
2434
parse_VkQueue(const char * s,Json::Value & obj,VkQueue & o)2435 static void parse_VkQueue(const char *s, Json::Value &obj, VkQueue &o)
2436 {
2437 // std::string _res = obj.asString();
2438 }
2439
parse_VkSemaphore(const char * s,Json::Value & obj,VkSemaphore & o)2440 static void parse_VkSemaphore(const char *s, Json::Value &obj, VkSemaphore &o)
2441 {
2442 // std::string _res = obj.asString();
2443 }
2444
parse_VkCommandBuffer(const char * s,Json::Value & obj,VkCommandBuffer & o)2445 static void parse_VkCommandBuffer(const char *s, Json::Value &obj, VkCommandBuffer &o)
2446 {
2447 // std::string _res = obj.asString();
2448 }
2449
parse_VkFence(const char * s,Json::Value & obj,VkFence & o)2450 static void parse_VkFence(const char *s, Json::Value &obj, VkFence &o)
2451 {
2452 // std::string _res = obj.asString();
2453 }
2454
parse_VkDeviceMemory(const char * s,Json::Value & obj,VkDeviceMemory & o)2455 static void parse_VkDeviceMemory(const char *s, Json::Value &obj, VkDeviceMemory &o)
2456 {
2457 // std::string _res = obj.asString();
2458 }
2459
parse_VkEvent(const char * s,Json::Value & obj,VkEvent & o)2460 static void parse_VkEvent(const char *s, Json::Value &obj, VkEvent &o)
2461 {
2462 // std::string _res = obj.asString();
2463 }
2464
parse_VkQueryPool(const char * s,Json::Value & obj,VkQueryPool & o)2465 static void parse_VkQueryPool(const char *s, Json::Value &obj, VkQueryPool &o)
2466 {
2467 // std::string _res = obj.asString();
2468 }
2469
parse_VkBufferView(const char * s,Json::Value & obj,VkBufferView & o)2470 static void parse_VkBufferView(const char *s, Json::Value &obj, VkBufferView &o)
2471 {
2472 // std::string _res = obj.asString();
2473 }
2474
parse_VkImageView(const char * s,Json::Value & obj,VkImageView & o)2475 static void parse_VkImageView(const char *s, Json::Value &obj, VkImageView &o)
2476 {
2477 // std::string _res = obj.asString();
2478 }
2479
parse_VkShaderModule(const char * s,Json::Value & obj,VkShaderModule & o)2480 static void parse_VkShaderModule(const char *s, Json::Value &obj, VkShaderModule &o)
2481 {
2482 // std::string _res = obj.asString();
2483 }
2484
parse_VkPipelineCache(const char * s,Json::Value & obj,VkPipelineCache & o)2485 static void parse_VkPipelineCache(const char *s, Json::Value &obj, VkPipelineCache &o)
2486 {
2487 // std::string _res = obj.asString();
2488 }
2489
parse_VkPipelineLayout(const char * s,Json::Value & obj,VkPipelineLayout & o)2490 static void parse_VkPipelineLayout(const char *s, Json::Value &obj, VkPipelineLayout &o)
2491 {
2492 // std::string _res = obj.asString();
2493 }
2494
parse_VkPipeline(const char * s,Json::Value & obj,VkPipeline & o)2495 static void parse_VkPipeline(const char *s, Json::Value &obj, VkPipeline &o)
2496 {
2497 // std::string _res = obj.asString();
2498 }
2499
parse_VkRenderPass(const char * s,Json::Value & obj,VkRenderPass & o)2500 static void parse_VkRenderPass(const char *s, Json::Value &obj, VkRenderPass &o)
2501 {
2502 // std::string _res = obj.asString();
2503 }
2504
parse_VkDescriptorSetLayout(const char * s,Json::Value & obj,VkDescriptorSetLayout & o)2505 static void parse_VkDescriptorSetLayout(const char *s, Json::Value &obj, VkDescriptorSetLayout &o)
2506 {
2507 // std::string _res = obj.asString();
2508 }
2509
parse_VkSampler(const char * s,Json::Value & obj,VkSampler & o)2510 static void parse_VkSampler(const char *s, Json::Value &obj, VkSampler &o)
2511 {
2512 // std::string _res = obj.asString();
2513 }
2514
parse_VkDescriptorSet(const char * s,Json::Value & obj,VkDescriptorSet & o)2515 static void parse_VkDescriptorSet(const char *s, Json::Value &obj, VkDescriptorSet &o)
2516 {
2517 // std::string _res = obj.asString();
2518 }
2519
parse_VkDescriptorPool(const char * s,Json::Value & obj,VkDescriptorPool & o)2520 static void parse_VkDescriptorPool(const char *s, Json::Value &obj, VkDescriptorPool &o)
2521 {
2522 // std::string _res = obj.asString();
2523 }
2524
parse_VkFramebuffer(const char * s,Json::Value & obj,VkFramebuffer & o)2525 static void parse_VkFramebuffer(const char *s, Json::Value &obj, VkFramebuffer &o)
2526 {
2527 // std::string _res = obj.asString();
2528 }
2529
parse_VkCommandPool(const char * s,Json::Value & obj,VkCommandPool & o)2530 static void parse_VkCommandPool(const char *s, Json::Value &obj, VkCommandPool &o)
2531 {
2532 // std::string _res = obj.asString();
2533 }
2534
2535 static std::map<std::string, int> VkResult_map = {
2536 std::make_pair("VK_SUCCESS", 0),
2537 std::make_pair("VK_NOT_READY", 1),
2538 std::make_pair("VK_TIMEOUT", 2),
2539 std::make_pair("VK_EVENT_SET", 3),
2540 std::make_pair("VK_EVENT_RESET", 4),
2541 std::make_pair("VK_INCOMPLETE", 5),
2542 std::make_pair("VK_ERROR_OUT_OF_HOST_MEMORY", -1),
2543 std::make_pair("VK_ERROR_OUT_OF_DEVICE_MEMORY", -2),
2544 std::make_pair("VK_ERROR_INITIALIZATION_FAILED", -3),
2545 std::make_pair("VK_ERROR_DEVICE_LOST", -4),
2546 std::make_pair("VK_ERROR_MEMORY_MAP_FAILED", -5),
2547 std::make_pair("VK_ERROR_LAYER_NOT_PRESENT", -6),
2548 std::make_pair("VK_ERROR_EXTENSION_NOT_PRESENT", -7),
2549 std::make_pair("VK_ERROR_FEATURE_NOT_PRESENT", -8),
2550 std::make_pair("VK_ERROR_INCOMPATIBLE_DRIVER", -9),
2551 std::make_pair("VK_ERROR_TOO_MANY_OBJECTS", -10),
2552 std::make_pair("VK_ERROR_FORMAT_NOT_SUPPORTED", -11),
2553 std::make_pair("VK_ERROR_FRAGMENTED_POOL", -12),
2554 std::make_pair("VK_ERROR_UNKNOWN", -13),
2555 std::make_pair("VK_ERROR_OUT_OF_POOL_MEMORY", 1000069000),
2556 std::make_pair("VK_ERROR_INVALID_EXTERNAL_HANDLE", 1000072003),
2557 std::make_pair("VK_ERROR_FRAGMENTATION", 1000161000),
2558 std::make_pair("VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS", 1000257000),
2559 std::make_pair("VK_ERROR_VALIDATION_FAILED", 1000011001),
2560 std::make_pair("VK_ERROR_INVALID_PIPELINE_CACHE_DATA", 1000298000),
2561 std::make_pair("VK_ERROR_NO_PIPELINE_MATCH", 1000298001),
2562 std::make_pair("VK_ERROR_SURFACE_LOST_KHR", 1000000000),
2563 std::make_pair("VK_ERROR_NATIVE_WINDOW_IN_USE_KHR", 1000000001),
2564 std::make_pair("VK_SUBOPTIMAL_KHR", 1000001003),
2565 std::make_pair("VK_ERROR_OUT_OF_DATE_KHR", 1000001004),
2566 std::make_pair("VK_ERROR_INCOMPATIBLE_DISPLAY_KHR", 1000003001),
2567 std::make_pair("VK_ERROR_INVALID_SHADER_NV", 1000012000),
2568 std::make_pair("VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT", 1000158000),
2569 std::make_pair("VK_ERROR_NOT_PERMITTED_EXT", 1000174001),
2570 std::make_pair("VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT", 1000255000),
2571 std::make_pair("VK_THREAD_IDLE_KHR", 1000268000),
2572 std::make_pair("VK_THREAD_DONE_KHR", 1000268001),
2573 std::make_pair("VK_OPERATION_DEFERRED_KHR", 1000268002),
2574 std::make_pair("VK_OPERATION_NOT_DEFERRED_KHR", 1000268003),
2575 std::make_pair("VK_PIPELINE_COMPILE_REQUIRED_EXT", 1000297000),
2576 };
parse_VkResult(const char * s,Json::Value & obj,VkResult & o)2577 static void parse_VkResult(const char *s, Json::Value &obj, VkResult &o)
2578 {
2579 std::string _res = obj.asString();
2580 o = (VkResult)VkResult_map[std::string(_res)];
2581 }
2582
2583 static std::map<std::string, int> VkStructureType_map = {
2584 std::make_pair("VK_STRUCTURE_TYPE_APPLICATION_INFO", 0),
2585 std::make_pair("VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO", 1),
2586 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO", 2),
2587 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", 3),
2588 std::make_pair("VK_STRUCTURE_TYPE_SUBMIT_INFO", 4),
2589 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO", 5),
2590 std::make_pair("VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE", 6),
2591 std::make_pair("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO", 8),
2592 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO", 9),
2593 std::make_pair("VK_STRUCTURE_TYPE_EVENT_CREATE_INFO", 10),
2594 std::make_pair("VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO", 11),
2595 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO", 12),
2596 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO", 13),
2597 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO", 14),
2598 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO", 15),
2599 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO", 17),
2600 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO", 18),
2601 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO", 19),
2602 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", 20),
2603 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO", 21),
2604 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO", 22),
2605 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO", 23),
2606 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO", 24),
2607 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO", 25),
2608 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO", 26),
2609 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO", 27),
2610 std::make_pair("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", 28),
2611 std::make_pair("VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO", 29),
2612 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO", 30),
2613 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO", 31),
2614 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO", 32),
2615 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO", 33),
2616 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO", 34),
2617 std::make_pair("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET", 35),
2618 std::make_pair("VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET", 36),
2619 std::make_pair("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO", 37),
2620 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO", 38),
2621 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO", 39),
2622 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO", 40),
2623 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO", 41),
2624 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO", 42),
2625 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO", 43),
2626 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER", 44),
2627 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER", 45),
2628 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_BARRIER", 46),
2629 std::make_pair("VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO", 47),
2630 std::make_pair("VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO", 48),
2631 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES", 1000094000),
2632 std::make_pair("VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO", 1000157000),
2633 std::make_pair("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO", 1000157001),
2634 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES", 1000083000),
2635 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS", 1000127000),
2636 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO", 1000127001),
2637 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO", 1000060000),
2638 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO", 1000060003),
2639 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO", 1000060004),
2640 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO", 1000060005),
2641 std::make_pair("VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO", 1000060013),
2642 std::make_pair("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO", 1000060014),
2643 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES", 1000070000),
2644 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO", 1000070001),
2645 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2", 1000146000),
2646 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2", 1000146001),
2647 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2", 1000146003),
2648 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2", 1000059000),
2649 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", 1000059001),
2650 std::make_pair("VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2", 1000059002),
2651 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2", 1000059003),
2652 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2", 1000059004),
2653 std::make_pair("VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2", 1000059005),
2654 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2", 1000059006),
2655 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES", 1000117000),
2656 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO", 1000117001),
2657 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO", 1000117002),
2658 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO", 1000117003),
2659 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO", 1000053000),
2660 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES", 1000053001),
2661 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES", 1000053002),
2662 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES", 1000120000),
2663 std::make_pair("VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO", 1000145000),
2664 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES", 1000145001),
2665 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES", 1000145002),
2666 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2", 1000145003),
2667 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO", 1000156000),
2668 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO", 1000156001),
2669 std::make_pair("VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO", 1000156002),
2670 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO", 1000156003),
2671 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES", 1000156004),
2672 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES", 1000156005),
2673 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO", 1000071000),
2674 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES", 1000071001),
2675 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO", 1000071002),
2676 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES", 1000071003),
2677 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES", 1000071004),
2678 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO", 1000072000),
2679 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO", 1000072001),
2680 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO", 1000072002),
2681 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO", 1000112000),
2682 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES", 1000112001),
2683 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO", 1000113000),
2684 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO", 1000077000),
2685 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO", 1000076000),
2686 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES", 1000076001),
2687 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES", 1000168000),
2688 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT", 1000168001),
2689 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES", 1000063000),
2690 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES", 49),
2691 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES", 50),
2692 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES", 51),
2693 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES", 52),
2694 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO", 1000147000),
2695 std::make_pair("VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2", 1000109000),
2696 std::make_pair("VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2", 1000109001),
2697 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2", 1000109002),
2698 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2", 1000109003),
2699 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2", 1000109004),
2700 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO", 1000109005),
2701 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_END_INFO", 1000109006),
2702 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES", 1000177000),
2703 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES", 1000196000),
2704 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES", 1000180000),
2705 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES", 1000082000),
2706 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES", 1000197000),
2707 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO", 1000161000),
2708 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES", 1000161001),
2709 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES", 1000161002),
2710 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO", 1000161003),
2711 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT", 1000161004),
2712 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES", 1000199000),
2713 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE", 1000199001),
2714 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES", 1000221000),
2715 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO", 1000246000),
2716 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES", 1000130000),
2717 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO", 1000130001),
2718 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES", 1000211000),
2719 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES", 1000108000),
2720 std::make_pair("VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO", 1000108001),
2721 std::make_pair("VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO", 1000108002),
2722 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO", 1000108003),
2723 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES", 1000253000),
2724 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES", 1000175000),
2725 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES", 1000241000),
2726 std::make_pair("VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT", 1000241001),
2727 std::make_pair("VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT", 1000241002),
2728 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES", 1000261000),
2729 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES", 1000207000),
2730 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES", 1000207001),
2731 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO", 1000207002),
2732 std::make_pair("VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO", 1000207003),
2733 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO", 1000207004),
2734 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO", 1000207005),
2735 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES", 1000257000),
2736 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO", 1000244001),
2737 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO", 1000257002),
2738 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO", 1000257003),
2739 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO", 1000257004),
2740 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES", 1000298000),
2741 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES", 1000298001),
2742 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO", 1000298002),
2743 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO", 1000298003),
2744 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION", 1000298004),
2745 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE", 1000298005),
2746 std::make_pair("VK_STRUCTURE_TYPE_FAULT_DATA", 1000298007),
2747 std::make_pair("VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO", 1000298008),
2748 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO", 1000298010),
2749 std::make_pair("VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR", 1000001000),
2750 std::make_pair("VK_STRUCTURE_TYPE_PRESENT_INFO_KHR", 1000001001),
2751 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR", 1000060007),
2752 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR", 1000060008),
2753 std::make_pair("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR", 1000060009),
2754 std::make_pair("VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR", 1000060010),
2755 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR", 1000060011),
2756 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR", 1000060012),
2757 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR", 1000002000),
2758 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR", 1000002001),
2759 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR", 1000003000),
2760 std::make_pair("VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR", 1000004000),
2761 std::make_pair("VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR", 1000005000),
2762 std::make_pair("VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR", 1000006000),
2763 std::make_pair("VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR", 1000008000),
2764 std::make_pair("VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR", 1000009000),
2765 std::make_pair("VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID", 1000010000),
2766 std::make_pair("VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID", 1000010001),
2767 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID", 1000010002),
2768 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT", 1000011000),
2769 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD", 1000018000),
2770 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT", 1000022000),
2771 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT", 1000022001),
2772 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT", 1000022002),
2773 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR", 1000023000),
2774 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR", 1000023001),
2775 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR", 1000023002),
2776 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR", 1000023003),
2777 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR", 1000023004),
2778 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR", 1000023005),
2779 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR", 1000023006),
2780 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR", 1000023007),
2781 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR", 1000023008),
2782 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR", 1000023009),
2783 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR", 1000023010),
2784 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR", 1000023011),
2785 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR", 1000023012),
2786 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR", 1000023013),
2787 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR", 1000023014),
2788 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR", 1000023015),
2789 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR", 1000024000),
2790 std::make_pair("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV", 1000026000),
2791 std::make_pair("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV", 1000026001),
2792 std::make_pair("VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV", 1000026002),
2793 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT", 1000028000),
2794 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT", 1000028001),
2795 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT", 1000028002),
2796 std::make_pair("VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX", 1000029000),
2797 std::make_pair("VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX", 1000029001),
2798 std::make_pair("VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX", 1000029002),
2799 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX", 1000030000),
2800 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX", 1000030001),
2801 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT", 1000038000),
2802 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT", 1000038001),
2803 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT", 1000038002),
2804 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT", 1000038003),
2805 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT", 1000038004),
2806 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT", 1000038005),
2807 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT", 1000038006),
2808 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT", 1000038007),
2809 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT", 1000038008),
2810 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT", 1000038009),
2811 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT", 1000038010),
2812 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT", 1000039000),
2813 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT", 1000039001),
2814 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT", 1000039002),
2815 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT", 1000039003),
2816 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT", 1000039004),
2817 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT", 1000039005),
2818 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT", 1000039006),
2819 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT", 1000039007),
2820 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT", 1000039008),
2821 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT", 1000039009),
2822 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT", 1000039010),
2823 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT", 1000039011),
2824 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT", 1000040000),
2825 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT", 1000040001),
2826 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT", 1000040002),
2827 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT", 1000040003),
2828 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT", 1000040004),
2829 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT", 1000040005),
2830 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT", 1000040006),
2831 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT", 1000040007),
2832 std::make_pair("VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD", 1000041000),
2833 std::make_pair("VK_STRUCTURE_TYPE_RENDERING_INFO_KHR", 1000044000),
2834 std::make_pair("VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR", 1000044001),
2835 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR", 1000044002),
2836 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR", 1000044003),
2837 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR", 1000044004),
2838 std::make_pair("VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", 1000044006),
2839 std::make_pair("VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT", 1000044007),
2840 std::make_pair("VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD", 1000044008),
2841 std::make_pair("VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX", 1000044009),
2842 std::make_pair("VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP", 1000049000),
2843 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV", 1000050000),
2844 std::make_pair("VK_STRUCTURE_TYPE_PRIVATE_VENDOR_INFO_RESERVED_OFFSET_0_NV", 1000051000),
2845 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV", 1000056000),
2846 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV", 1000056001),
2847 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV", 1000057000),
2848 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV", 1000057001),
2849 std::make_pair("VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV", 1000058000),
2850 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR", 1000060007),
2851 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR", 1000060008),
2852 std::make_pair("VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR", 1000060009),
2853 std::make_pair("VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR", 1000060010),
2854 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR", 1000060011),
2855 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR", 1000060012),
2856 std::make_pair("VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT", 1000061000),
2857 std::make_pair("VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN", 1000062000),
2858 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT", 1000066000),
2859 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT", 1000067000),
2860 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT", 1000067001),
2861 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR", 1000073000),
2862 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR", 1000073001),
2863 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR", 1000073002),
2864 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR", 1000073003),
2865 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR", 1000074000),
2866 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR", 1000074001),
2867 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR", 1000074002),
2868 std::make_pair("VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR", 1000075000),
2869 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR", 1000078000),
2870 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR", 1000078001),
2871 std::make_pair("VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR", 1000078002),
2872 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR", 1000078003),
2873 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR", 1000079000),
2874 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR", 1000079001),
2875 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR", 1000080000),
2876 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT", 1000081000),
2877 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT", 1000081001),
2878 std::make_pair("VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT", 1000081002),
2879 std::make_pair("VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR", 1000084000),
2880 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV", 1000087000),
2881 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT", 1000090000),
2882 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT", 1000091000),
2883 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT", 1000091001),
2884 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT", 1000091002),
2885 std::make_pair("VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT", 1000091003),
2886 std::make_pair("VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE", 1000092000),
2887 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX", 1000097000),
2888 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV", 1000098000),
2889 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT", 1000099000),
2890 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT", 1000099001),
2891 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT", 1000101000),
2892 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT", 1000101001),
2893 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT", 1000102000),
2894 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT", 1000102001),
2895 std::make_pair("VK_STRUCTURE_TYPE_HDR_METADATA_EXT", 1000105000),
2896 std::make_pair("VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR", 1000111000),
2897 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR", 1000114000),
2898 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR", 1000114001),
2899 std::make_pair("VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR", 1000114002),
2900 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR", 1000115000),
2901 std::make_pair("VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR", 1000115001),
2902 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR", 1000116000),
2903 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR", 1000116001),
2904 std::make_pair("VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR", 1000116002),
2905 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR", 1000116003),
2906 std::make_pair("VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR", 1000116004),
2907 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR", 1000116005),
2908 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR", 1000116006),
2909 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR", 1000116007),
2910 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR", 1000119000),
2911 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR", 1000119001),
2912 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR", 1000119002),
2913 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR", 1000121000),
2914 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR", 1000121001),
2915 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR", 1000121002),
2916 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR", 1000121003),
2917 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR", 1000121004),
2918 std::make_pair("VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK", 1000122000),
2919 std::make_pair("VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK", 1000123000),
2920 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT", 1000128000),
2921 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT", 1000128001),
2922 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT", 1000128002),
2923 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT", 1000128003),
2924 std::make_pair("VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT", 1000128004),
2925 std::make_pair("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID", 1000129000),
2926 std::make_pair("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID", 1000129001),
2927 std::make_pair("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID", 1000129002),
2928 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID", 1000129003),
2929 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID", 1000129004),
2930 std::make_pair("VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID", 1000129005),
2931 std::make_pair("VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID", 1000129006),
2932 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT", 1000138000),
2933 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT", 1000138001),
2934 std::make_pair("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT", 1000138002),
2935 std::make_pair("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT", 1000138003),
2936 std::make_pair("VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT", 1000143000),
2937 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT", 1000143001),
2938 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT", 1000143002),
2939 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT", 1000143003),
2940 std::make_pair("VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT", 1000143004),
2941 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT", 1000148000),
2942 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT", 1000148001),
2943 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT", 1000148002),
2944 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV", 1000149000),
2945 std::make_pair("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR", 1000150007),
2946 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR", 1000150000),
2947 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR", 1000150002),
2948 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR", 1000150003),
2949 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR", 1000150004),
2950 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR", 1000150005),
2951 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR", 1000150006),
2952 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR", 1000150009),
2953 std::make_pair("VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR", 1000150010),
2954 std::make_pair("VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR", 1000150011),
2955 std::make_pair("VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR", 1000150012),
2956 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR", 1000150013),
2957 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR", 1000150014),
2958 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR", 1000150017),
2959 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR", 1000150020),
2960 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR", 1000347000),
2961 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR", 1000347001),
2962 std::make_pair("VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR", 1000150015),
2963 std::make_pair("VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR", 1000150016),
2964 std::make_pair("VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR", 1000150018),
2965 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR", 1000348013),
2966 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV", 1000152000),
2967 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV", 1000154000),
2968 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV", 1000154001),
2969 std::make_pair("VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT", 1000158000),
2970 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT", 1000158002),
2971 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT", 1000158003),
2972 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT", 1000158004),
2973 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT", 1000158005),
2974 std::make_pair("VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT", 1000158006),
2975 std::make_pair("VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT", 1000160000),
2976 std::make_pair("VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT", 1000160001),
2977 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR", 1000163000),
2978 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR", 1000163001),
2979 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV", 1000164000),
2980 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV", 1000164001),
2981 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV", 1000164002),
2982 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV", 1000164005),
2983 std::make_pair("VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV", 1000165000),
2984 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV", 1000165001),
2985 std::make_pair("VK_STRUCTURE_TYPE_GEOMETRY_NV", 1000165003),
2986 std::make_pair("VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV", 1000165004),
2987 std::make_pair("VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV", 1000165005),
2988 std::make_pair("VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV", 1000165006),
2989 std::make_pair("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV", 1000165007),
2990 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV", 1000165008),
2991 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV", 1000165009),
2992 std::make_pair("VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV", 1000165011),
2993 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV", 1000165012),
2994 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV", 1000166000),
2995 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV", 1000166001),
2996 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT", 1000170000),
2997 std::make_pair("VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT", 1000170001),
2998 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT", 1000174000),
2999 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT", 1000178000),
3000 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT", 1000178001),
3001 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT", 1000178002),
3002 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR", 1000181000),
3003 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD", 1000183000),
3004 std::make_pair("VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT", 1000184000),
3005 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD", 1000185000),
3006 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT", 1000187000),
3007 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT", 1000187001),
3008 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT", 1000187002),
3009 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT", 1000187003),
3010 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT", 1000187004),
3011 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT", 1000187005),
3012 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT", 1000187006),
3013 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD", 1000189000),
3014 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT", 1000190000),
3015 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT", 1000190001),
3016 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT", 1000190002),
3017 std::make_pair("VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP", 1000191000),
3018 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT", 1000192000),
3019 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV", 1000201000),
3020 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV", 1000202000),
3021 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV", 1000202001),
3022 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV", 1000203000),
3023 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV", 1000204000),
3024 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV", 1000205000),
3025 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV", 1000205002),
3026 std::make_pair("VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV", 1000206000),
3027 std::make_pair("VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV", 1000206001),
3028 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL", 1000209000),
3029 std::make_pair("VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL", 1000210000),
3030 std::make_pair("VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL", 1000210001),
3031 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL", 1000210002),
3032 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL", 1000210003),
3033 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL", 1000210004),
3034 std::make_pair("VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL", 1000210005),
3035 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT", 1000212000),
3036 std::make_pair("VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD", 1000213000),
3037 std::make_pair("VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD", 1000213001),
3038 std::make_pair("VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA", 1000214000),
3039 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR", 1000215000),
3040 std::make_pair("VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT", 1000217000),
3041 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT", 1000218000),
3042 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT", 1000218001),
3043 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT", 1000218002),
3044 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT", 1000225000),
3045 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT", 1000225001),
3046 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT", 1000225002),
3047 std::make_pair("VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", 1000226000),
3048 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR", 1000226001),
3049 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR", 1000226002),
3050 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR", 1000226003),
3051 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR", 1000226004),
3052 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD", 1000227000),
3053 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD", 1000229000),
3054 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT", 1000234000),
3055 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT", 1000237000),
3056 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT", 1000238000),
3057 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT", 1000238001),
3058 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR", 1000239000),
3059 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV", 1000240000),
3060 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT", 1000244000),
3061 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT", 1000244002),
3062 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT", 1000245000),
3063 std::make_pair("VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT", 1000247000),
3064 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR", 1000248000),
3065 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV", 1000249000),
3066 std::make_pair("VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV", 1000249001),
3067 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV", 1000249002),
3068 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV", 1000250000),
3069 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV", 1000250001),
3070 std::make_pair("VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV", 1000250002),
3071 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT", 1000251000),
3072 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT", 1000252000),
3073 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT", 1000254000),
3074 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT", 1000254001),
3075 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT", 1000254002),
3076 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT", 1000255000),
3077 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT", 1000255002),
3078 std::make_pair("VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT", 1000255001),
3079 std::make_pair("VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT", 1000256000),
3080 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT", 1000259000),
3081 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT", 1000259001),
3082 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT", 1000259002),
3083 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT", 1000260000),
3084 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT", 1000265000),
3085 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT", 1000267000),
3086 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR", 1000269000),
3087 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR", 1000269001),
3088 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR", 1000269002),
3089 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR", 1000269003),
3090 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR", 1000269004),
3091 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR", 1000269005),
3092 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT", 1000273000),
3093 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT", 1000276000),
3094 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV", 1000277000),
3095 std::make_pair("VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV", 1000277001),
3096 std::make_pair("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV", 1000277002),
3097 std::make_pair("VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV", 1000277003),
3098 std::make_pair("VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV", 1000277004),
3099 std::make_pair("VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV", 1000277005),
3100 std::make_pair("VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV", 1000277006),
3101 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV", 1000277007),
3102 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV", 1000278000),
3103 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV", 1000278001),
3104 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR", 1000280000),
3105 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR", 1000280001),
3106 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT", 1000281000),
3107 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT", 1000281001),
3108 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM", 1000282000),
3109 std::make_pair("VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM", 1000282001),
3110 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT", 1000284000),
3111 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT", 1000284001),
3112 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT", 1000284002),
3113 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT", 1000286000),
3114 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT", 1000286001),
3115 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT", 1000287000),
3116 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT", 1000287001),
3117 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT", 1000287002),
3118 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR", 1000290000),
3119 std::make_pair("VK_STRUCTURE_TYPE_PRESENT_ID_KHR", 1000294000),
3120 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR", 1000294001),
3121 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT", 1000295000),
3122 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT", 1000295001),
3123 std::make_pair("VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT", 1000295002),
3124 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT", 1000297000),
3125 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR", 1000299000),
3126 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR", 1000299001),
3127 std::make_pair("VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR", 1000299002),
3128 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV", 1000300000),
3129 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV", 1000300001),
3130 std::make_pair("VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR", 1000308000),
3131 std::make_pair("VK_STRUCTURE_TYPE_RESERVED_QCOM", 1000309000),
3132 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR", 1000314000),
3133 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR", 1000314001),
3134 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR", 1000314002),
3135 std::make_pair("VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR", 1000314003),
3136 std::make_pair("VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR", 1000314004),
3137 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR", 1000314005),
3138 std::make_pair("VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR", 1000314006),
3139 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR", 1000314007),
3140 std::make_pair("VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV", 1000314008),
3141 std::make_pair("VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV", 1000314009),
3142 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR", 1000323000),
3143 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR", 1000325000),
3144 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV", 1000326000),
3145 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV", 1000326001),
3146 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV", 1000326002),
3147 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV", 1000327000),
3148 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV", 1000327001),
3149 std::make_pair("VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV", 1000327002),
3150 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT", 1000330000),
3151 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT", 1000332000),
3152 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT", 1000332001),
3153 std::make_pair("VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM", 1000333000),
3154 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT", 1000335000),
3155 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR", 1000336000),
3156 std::make_pair("VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR", 1000337000),
3157 std::make_pair("VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR", 1000337001),
3158 std::make_pair("VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR", 1000337002),
3159 std::make_pair("VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR", 1000337003),
3160 std::make_pair("VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR", 1000337004),
3161 std::make_pair("VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR", 1000337005),
3162 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR", 1000337006),
3163 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR", 1000337007),
3164 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR", 1000337008),
3165 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR", 1000337009),
3166 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR", 1000337010),
3167 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT", 1000340000),
3168 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM", 1000342000),
3169 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT", 1000344000),
3170 std::make_pair("VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT", 1000346000),
3171 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE", 1000351000),
3172 std::make_pair("VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE", 1000351002),
3173 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT", 1000352000),
3174 std::make_pair("VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT", 1000352001),
3175 std::make_pair("VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT", 1000352002),
3176 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT", 1000353000),
3177 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT", 1000355000),
3178 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT", 1000355001),
3179 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT", 1000356000),
3180 std::make_pair("VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR", 1000360000),
3181 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA", 1000364000),
3182 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA", 1000364001),
3183 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA", 1000364002),
3184 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA", 1000365000),
3185 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA", 1000365001),
3186 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA", 1000366000),
3187 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA", 1000366001),
3188 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA", 1000366002),
3189 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA", 1000366003),
3190 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA", 1000366004),
3191 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA", 1000366005),
3192 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA", 1000366006),
3193 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA", 1000366007),
3194 std::make_pair("VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA", 1000366008),
3195 std::make_pair("VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA", 1000366009),
3196 std::make_pair("VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI", 1000369000),
3197 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI", 1000369001),
3198 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI", 1000369002),
3199 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI", 1000370000),
3200 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV", 1000371000),
3201 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV", 1000371001),
3202 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV", 1000373000),
3203 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV", 1000373001),
3204 std::make_pair("VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV", 1000373002),
3205 std::make_pair("VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV", 1000373003),
3206 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_SCI_SYNC_INFO_NV", 1000373004),
3207 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV", 1000373005),
3208 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_GET_SCI_SYNC_INFO_NV", 1000373006),
3209 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV", 1000373007),
3210 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV", 1000374000),
3211 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV", 1000374001),
3212 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV", 1000374002),
3213 std::make_pair("VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV", 1000374003),
3214 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV", 1000374004),
3215 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT", 1000377000),
3216 std::make_pair("VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX", 1000378000),
3217 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT", 1000381000),
3218 std::make_pair("VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT", 1000381001),
3219 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT", 1000388000),
3220 std::make_pair("VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT", 1000388001),
3221 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT", 1000391000),
3222 std::make_pair("VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT", 1000391001),
3223 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT", 1000392000),
3224 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT", 1000392001),
3225 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT", 1000411000),
3226 std::make_pair("VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT", 1000411001),
3227 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT", 1000412000),
3228 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR", 1000413000),
3229 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR", 1000413001),
3230 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR", 1000413002),
3231 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR", 1000413003),
3232 std::make_pair("VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT", 1000435000),
3233 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV", 1000489000),
3234 std::make_pair("VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV", 1000489001),
3235 std::make_pair("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV", 1000489002),
3236 std::make_pair("VK_STRUCTURE_TYPE_IMPORT_FENCE_SCI_SYNC_INFO_NV", 1000373000),
3237 std::make_pair("VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV", 1000373001),
3238 std::make_pair("VK_STRUCTURE_TYPE_FENCE_GET_SCI_SYNC_INFO_NV", 1000373002),
3239 std::make_pair("VK_STRUCTURE_TYPE_SCI_SYNC_ATTRIBUTES_INFO_NV", 1000373003),
3240 std::make_pair("VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV", 1000489003),
3241 };
parse_VkStructureType(const char * s,Json::Value & obj,VkStructureType & o)3242 static void parse_VkStructureType(const char *s, Json::Value &obj, VkStructureType &o)
3243 {
3244 std::string _res = obj.asString();
3245 o = (VkStructureType)VkStructureType_map[std::string(_res)];
3246 }
3247
3248 static std::map<std::string, int> VkAccessFlagBits_map = {
3249 std::make_pair("VK_ACCESS_INDIRECT_COMMAND_READ_BIT", 1UL << 0),
3250 std::make_pair("VK_ACCESS_INDEX_READ_BIT", 1UL << 1),
3251 std::make_pair("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT", 1UL << 2),
3252 std::make_pair("VK_ACCESS_UNIFORM_READ_BIT", 1UL << 3),
3253 std::make_pair("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT", 1UL << 4),
3254 std::make_pair("VK_ACCESS_SHADER_READ_BIT", 1UL << 5),
3255 std::make_pair("VK_ACCESS_SHADER_WRITE_BIT", 1UL << 6),
3256 std::make_pair("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT", 1UL << 7),
3257 std::make_pair("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT", 1UL << 8),
3258 std::make_pair("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT", 1UL << 9),
3259 std::make_pair("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", 1UL << 10),
3260 std::make_pair("VK_ACCESS_TRANSFER_READ_BIT", 1UL << 11),
3261 std::make_pair("VK_ACCESS_TRANSFER_WRITE_BIT", 1UL << 12),
3262 std::make_pair("VK_ACCESS_HOST_READ_BIT", 1UL << 13),
3263 std::make_pair("VK_ACCESS_HOST_WRITE_BIT", 1UL << 14),
3264 std::make_pair("VK_ACCESS_MEMORY_READ_BIT", 1UL << 15),
3265 std::make_pair("VK_ACCESS_MEMORY_WRITE_BIT", 1UL << 16),
3266 std::make_pair("VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT", 1UL << 25),
3267 std::make_pair("VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT", 1UL << 26),
3268 std::make_pair("VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT", 1UL << 27),
3269 std::make_pair("VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT", 1UL << 20),
3270 std::make_pair("VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT", 1UL << 19),
3271 std::make_pair("VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR", 1UL << 21),
3272 std::make_pair("VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR", 1UL << 22),
3273 std::make_pair("VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT", 1UL << 24),
3274 std::make_pair("VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR", 1UL << 23),
3275 std::make_pair("VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV", 1UL << 17),
3276 std::make_pair("VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV", 1UL << 18),
3277 std::make_pair("VK_ACCESS_NONE_KHR", 0),
3278 };
parse_VkAccessFlagBits(const char * s,Json::Value & obj,VkAccessFlagBits & o)3279 static void parse_VkAccessFlagBits(const char *s, Json::Value &obj, VkAccessFlagBits &o)
3280 {
3281 std::string _res = obj.asString();
3282 o = (VkAccessFlagBits)VkAccessFlagBits_map[std::string(_res)];
3283 }
3284
3285 static std::map<std::string, int> VkImageLayout_map = {
3286 std::make_pair("VK_IMAGE_LAYOUT_UNDEFINED", 0),
3287 std::make_pair("VK_IMAGE_LAYOUT_GENERAL", 1),
3288 std::make_pair("VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL", 2),
3289 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL", 3),
3290 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", 4),
3291 std::make_pair("VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", 5),
3292 std::make_pair("VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL", 6),
3293 std::make_pair("VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL", 7),
3294 std::make_pair("VK_IMAGE_LAYOUT_PREINITIALIZED", 8),
3295 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", 1000117000),
3296 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", 1000117001),
3297 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL", 1000241000),
3298 std::make_pair("VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL", 1000241001),
3299 std::make_pair("VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL", 1000241002),
3300 std::make_pair("VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL", 1000241003),
3301 std::make_pair("VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", 1000001002),
3302 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR", 1000024000),
3303 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR", 1000024001),
3304 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR", 1000024002),
3305 std::make_pair("VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR", 1000111000),
3306 std::make_pair("VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", 1000218000),
3307 std::make_pair("VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", 1000164003),
3308 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR", 1000299000),
3309 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR", 1000299001),
3310 std::make_pair("VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR", 1000299002),
3311 std::make_pair("VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR", 1000314000),
3312 std::make_pair("VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR", 1000314001),
3313 };
parse_VkImageLayout(const char * s,Json::Value & obj,VkImageLayout & o)3314 static void parse_VkImageLayout(const char *s, Json::Value &obj, VkImageLayout &o)
3315 {
3316 std::string _res = obj.asString();
3317 o = (VkImageLayout)VkImageLayout_map[std::string(_res)];
3318 }
3319
3320 static std::map<std::string, int> VkImageAspectFlagBits_map = {
3321 std::make_pair("VK_IMAGE_ASPECT_COLOR_BIT", 1UL << 0),
3322 std::make_pair("VK_IMAGE_ASPECT_DEPTH_BIT", 1UL << 1),
3323 std::make_pair("VK_IMAGE_ASPECT_STENCIL_BIT", 1UL << 2),
3324 std::make_pair("VK_IMAGE_ASPECT_METADATA_BIT", 1UL << 3),
3325 std::make_pair("VK_IMAGE_ASPECT_PLANE_0_BIT", 1UL << 4),
3326 std::make_pair("VK_IMAGE_ASPECT_PLANE_1_BIT", 1UL << 5),
3327 std::make_pair("VK_IMAGE_ASPECT_PLANE_2_BIT", 1UL << 6),
3328 std::make_pair("VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT", 1UL << 7),
3329 std::make_pair("VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT", 1UL << 8),
3330 std::make_pair("VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT", 1UL << 9),
3331 std::make_pair("VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT", 1UL << 10),
3332 std::make_pair("VK_IMAGE_ASPECT_NONE_KHR", 0),
3333 };
parse_VkImageAspectFlagBits(const char * s,Json::Value & obj,VkImageAspectFlagBits & o)3334 static void parse_VkImageAspectFlagBits(const char *s, Json::Value &obj, VkImageAspectFlagBits &o)
3335 {
3336 std::string _res = obj.asString();
3337 o = (VkImageAspectFlagBits)VkImageAspectFlagBits_map[std::string(_res)];
3338 }
3339
3340 static std::map<std::string, int> VkObjectType_map = {
3341 std::make_pair("VK_OBJECT_TYPE_UNKNOWN", 0),
3342 std::make_pair("VK_OBJECT_TYPE_INSTANCE", 1),
3343 std::make_pair("VK_OBJECT_TYPE_PHYSICAL_DEVICE", 2),
3344 std::make_pair("VK_OBJECT_TYPE_DEVICE", 3),
3345 std::make_pair("VK_OBJECT_TYPE_QUEUE", 4),
3346 std::make_pair("VK_OBJECT_TYPE_SEMAPHORE", 5),
3347 std::make_pair("VK_OBJECT_TYPE_COMMAND_BUFFER", 6),
3348 std::make_pair("VK_OBJECT_TYPE_FENCE", 7),
3349 std::make_pair("VK_OBJECT_TYPE_DEVICE_MEMORY", 8),
3350 std::make_pair("VK_OBJECT_TYPE_BUFFER", 9),
3351 std::make_pair("VK_OBJECT_TYPE_IMAGE", 10),
3352 std::make_pair("VK_OBJECT_TYPE_EVENT", 11),
3353 std::make_pair("VK_OBJECT_TYPE_QUERY_POOL", 12),
3354 std::make_pair("VK_OBJECT_TYPE_BUFFER_VIEW", 13),
3355 std::make_pair("VK_OBJECT_TYPE_IMAGE_VIEW", 14),
3356 std::make_pair("VK_OBJECT_TYPE_SHADER_MODULE", 15),
3357 std::make_pair("VK_OBJECT_TYPE_PIPELINE_CACHE", 16),
3358 std::make_pair("VK_OBJECT_TYPE_PIPELINE_LAYOUT", 17),
3359 std::make_pair("VK_OBJECT_TYPE_RENDER_PASS", 18),
3360 std::make_pair("VK_OBJECT_TYPE_PIPELINE", 19),
3361 std::make_pair("VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT", 20),
3362 std::make_pair("VK_OBJECT_TYPE_SAMPLER", 21),
3363 std::make_pair("VK_OBJECT_TYPE_DESCRIPTOR_POOL", 22),
3364 std::make_pair("VK_OBJECT_TYPE_DESCRIPTOR_SET", 23),
3365 std::make_pair("VK_OBJECT_TYPE_FRAMEBUFFER", 24),
3366 std::make_pair("VK_OBJECT_TYPE_COMMAND_POOL", 25),
3367 std::make_pair("VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION", 1000156000),
3368 std::make_pair("VK_OBJECT_TYPE_SURFACE_KHR", 1000000000),
3369 std::make_pair("VK_OBJECT_TYPE_SWAPCHAIN_KHR", 1000001000),
3370 std::make_pair("VK_OBJECT_TYPE_DISPLAY_KHR", 1000002000),
3371 std::make_pair("VK_OBJECT_TYPE_DISPLAY_MODE_KHR", 1000002001),
3372 std::make_pair("VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT", 1000011000),
3373 std::make_pair("VK_OBJECT_TYPE_VIDEO_SESSION_KHR", 1000023000),
3374 std::make_pair("VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR", 1000023001),
3375 std::make_pair("VK_OBJECT_TYPE_CU_MODULE_NVX", 1000029000),
3376 std::make_pair("VK_OBJECT_TYPE_CU_FUNCTION_NVX", 1000029001),
3377 std::make_pair("VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT", 1000128000),
3378 std::make_pair("VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR", 1000150000),
3379 std::make_pair("VK_OBJECT_TYPE_VALIDATION_CACHE_EXT", 1000160000),
3380 std::make_pair("VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV", 1000165000),
3381 std::make_pair("VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL", 1000210000),
3382 std::make_pair("VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR", 1000268000),
3383 std::make_pair("VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV", 1000277000),
3384 std::make_pair("VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT", 1000295000),
3385 std::make_pair("VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA", 1000366000),
3386 std::make_pair("VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV", 1000489000),
3387 };
parse_VkObjectType(const char * s,Json::Value & obj,VkObjectType & o)3388 static void parse_VkObjectType(const char *s, Json::Value &obj, VkObjectType &o)
3389 {
3390 std::string _res = obj.asString();
3391 o = (VkObjectType)VkObjectType_map[std::string(_res)];
3392 }
3393
3394 static std::map<std::string, int> VkPipelineCacheHeaderVersion_map = {
3395 std::make_pair("VK_PIPELINE_CACHE_HEADER_VERSION_ONE", 1),
3396 std::make_pair("VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE", 1000298001),
3397 };
parse_VkPipelineCacheHeaderVersion(const char * s,Json::Value & obj,VkPipelineCacheHeaderVersion & o)3398 static void parse_VkPipelineCacheHeaderVersion(const char *s, Json::Value &obj, VkPipelineCacheHeaderVersion &o)
3399 {
3400 std::string _res = obj.asString();
3401 o = (VkPipelineCacheHeaderVersion)VkPipelineCacheHeaderVersion_map[std::string(_res)];
3402 }
3403
3404 static std::map<std::string, int> VkVendorId_map = {
3405 std::make_pair("VK_VENDOR_ID_VIV", 0x10001), std::make_pair("VK_VENDOR_ID_VSI", 0x10002),
3406 std::make_pair("VK_VENDOR_ID_KAZAN", 0x10003), std::make_pair("VK_VENDOR_ID_CODEPLAY", 0x10004),
3407 std::make_pair("VK_VENDOR_ID_MESA", 0x10005), std::make_pair("VK_VENDOR_ID_POCL", 0x10006),
3408 };
parse_VkVendorId(const char * s,Json::Value & obj,VkVendorId & o)3409 static void parse_VkVendorId(const char *s, Json::Value &obj, VkVendorId &o)
3410 {
3411 std::string _res = obj.asString();
3412 o = (VkVendorId)VkVendorId_map[std::string(_res)];
3413 }
3414
3415 static std::map<std::string, int> VkSystemAllocationScope_map = {
3416 std::make_pair("VK_SYSTEM_ALLOCATION_SCOPE_COMMAND", 0), std::make_pair("VK_SYSTEM_ALLOCATION_SCOPE_OBJECT", 1),
3417 std::make_pair("VK_SYSTEM_ALLOCATION_SCOPE_CACHE", 2), std::make_pair("VK_SYSTEM_ALLOCATION_SCOPE_DEVICE", 3),
3418 std::make_pair("VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE", 4),
3419 };
parse_VkSystemAllocationScope(const char * s,Json::Value & obj,VkSystemAllocationScope & o)3420 static void parse_VkSystemAllocationScope(const char *s, Json::Value &obj, VkSystemAllocationScope &o)
3421 {
3422 std::string _res = obj.asString();
3423 o = (VkSystemAllocationScope)VkSystemAllocationScope_map[std::string(_res)];
3424 }
3425
3426 static std::map<std::string, int> VkInternalAllocationType_map = {
3427 std::make_pair("VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE", 0),
3428 };
parse_VkInternalAllocationType(const char * s,Json::Value & obj,VkInternalAllocationType & o)3429 static void parse_VkInternalAllocationType(const char *s, Json::Value &obj, VkInternalAllocationType &o)
3430 {
3431 std::string _res = obj.asString();
3432 o = (VkInternalAllocationType)VkInternalAllocationType_map[std::string(_res)];
3433 }
3434
3435 static std::map<std::string, int> VkFormat_map = {
3436 std::make_pair("VK_FORMAT_UNDEFINED", 0),
3437 std::make_pair("VK_FORMAT_R4G4_UNORM_PACK8", 1),
3438 std::make_pair("VK_FORMAT_R4G4B4A4_UNORM_PACK16", 2),
3439 std::make_pair("VK_FORMAT_B4G4R4A4_UNORM_PACK16", 3),
3440 std::make_pair("VK_FORMAT_R5G6B5_UNORM_PACK16", 4),
3441 std::make_pair("VK_FORMAT_B5G6R5_UNORM_PACK16", 5),
3442 std::make_pair("VK_FORMAT_R5G5B5A1_UNORM_PACK16", 6),
3443 std::make_pair("VK_FORMAT_B5G5R5A1_UNORM_PACK16", 7),
3444 std::make_pair("VK_FORMAT_A1R5G5B5_UNORM_PACK16", 8),
3445 std::make_pair("VK_FORMAT_R8_UNORM", 9),
3446 std::make_pair("VK_FORMAT_R8_SNORM", 10),
3447 std::make_pair("VK_FORMAT_R8_USCALED", 11),
3448 std::make_pair("VK_FORMAT_R8_SSCALED", 12),
3449 std::make_pair("VK_FORMAT_R8_UINT", 13),
3450 std::make_pair("VK_FORMAT_R8_SINT", 14),
3451 std::make_pair("VK_FORMAT_R8_SRGB", 15),
3452 std::make_pair("VK_FORMAT_R8G8_UNORM", 16),
3453 std::make_pair("VK_FORMAT_R8G8_SNORM", 17),
3454 std::make_pair("VK_FORMAT_R8G8_USCALED", 18),
3455 std::make_pair("VK_FORMAT_R8G8_SSCALED", 19),
3456 std::make_pair("VK_FORMAT_R8G8_UINT", 20),
3457 std::make_pair("VK_FORMAT_R8G8_SINT", 21),
3458 std::make_pair("VK_FORMAT_R8G8_SRGB", 22),
3459 std::make_pair("VK_FORMAT_R8G8B8_UNORM", 23),
3460 std::make_pair("VK_FORMAT_R8G8B8_SNORM", 24),
3461 std::make_pair("VK_FORMAT_R8G8B8_USCALED", 25),
3462 std::make_pair("VK_FORMAT_R8G8B8_SSCALED", 26),
3463 std::make_pair("VK_FORMAT_R8G8B8_UINT", 27),
3464 std::make_pair("VK_FORMAT_R8G8B8_SINT", 28),
3465 std::make_pair("VK_FORMAT_R8G8B8_SRGB", 29),
3466 std::make_pair("VK_FORMAT_B8G8R8_UNORM", 30),
3467 std::make_pair("VK_FORMAT_B8G8R8_SNORM", 31),
3468 std::make_pair("VK_FORMAT_B8G8R8_USCALED", 32),
3469 std::make_pair("VK_FORMAT_B8G8R8_SSCALED", 33),
3470 std::make_pair("VK_FORMAT_B8G8R8_UINT", 34),
3471 std::make_pair("VK_FORMAT_B8G8R8_SINT", 35),
3472 std::make_pair("VK_FORMAT_B8G8R8_SRGB", 36),
3473 std::make_pair("VK_FORMAT_R8G8B8A8_UNORM", 37),
3474 std::make_pair("VK_FORMAT_R8G8B8A8_SNORM", 38),
3475 std::make_pair("VK_FORMAT_R8G8B8A8_USCALED", 39),
3476 std::make_pair("VK_FORMAT_R8G8B8A8_SSCALED", 40),
3477 std::make_pair("VK_FORMAT_R8G8B8A8_UINT", 41),
3478 std::make_pair("VK_FORMAT_R8G8B8A8_SINT", 42),
3479 std::make_pair("VK_FORMAT_R8G8B8A8_SRGB", 43),
3480 std::make_pair("VK_FORMAT_B8G8R8A8_UNORM", 44),
3481 std::make_pair("VK_FORMAT_B8G8R8A8_SNORM", 45),
3482 std::make_pair("VK_FORMAT_B8G8R8A8_USCALED", 46),
3483 std::make_pair("VK_FORMAT_B8G8R8A8_SSCALED", 47),
3484 std::make_pair("VK_FORMAT_B8G8R8A8_UINT", 48),
3485 std::make_pair("VK_FORMAT_B8G8R8A8_SINT", 49),
3486 std::make_pair("VK_FORMAT_B8G8R8A8_SRGB", 50),
3487 std::make_pair("VK_FORMAT_A8B8G8R8_UNORM_PACK32", 51),
3488 std::make_pair("VK_FORMAT_A8B8G8R8_SNORM_PACK32", 52),
3489 std::make_pair("VK_FORMAT_A8B8G8R8_USCALED_PACK32", 53),
3490 std::make_pair("VK_FORMAT_A8B8G8R8_SSCALED_PACK32", 54),
3491 std::make_pair("VK_FORMAT_A8B8G8R8_UINT_PACK32", 55),
3492 std::make_pair("VK_FORMAT_A8B8G8R8_SINT_PACK32", 56),
3493 std::make_pair("VK_FORMAT_A8B8G8R8_SRGB_PACK32", 57),
3494 std::make_pair("VK_FORMAT_A2R10G10B10_UNORM_PACK32", 58),
3495 std::make_pair("VK_FORMAT_A2R10G10B10_SNORM_PACK32", 59),
3496 std::make_pair("VK_FORMAT_A2R10G10B10_USCALED_PACK32", 60),
3497 std::make_pair("VK_FORMAT_A2R10G10B10_SSCALED_PACK32", 61),
3498 std::make_pair("VK_FORMAT_A2R10G10B10_UINT_PACK32", 62),
3499 std::make_pair("VK_FORMAT_A2R10G10B10_SINT_PACK32", 63),
3500 std::make_pair("VK_FORMAT_A2B10G10R10_UNORM_PACK32", 64),
3501 std::make_pair("VK_FORMAT_A2B10G10R10_SNORM_PACK32", 65),
3502 std::make_pair("VK_FORMAT_A2B10G10R10_USCALED_PACK32", 66),
3503 std::make_pair("VK_FORMAT_A2B10G10R10_SSCALED_PACK32", 67),
3504 std::make_pair("VK_FORMAT_A2B10G10R10_UINT_PACK32", 68),
3505 std::make_pair("VK_FORMAT_A2B10G10R10_SINT_PACK32", 69),
3506 std::make_pair("VK_FORMAT_R16_UNORM", 70),
3507 std::make_pair("VK_FORMAT_R16_SNORM", 71),
3508 std::make_pair("VK_FORMAT_R16_USCALED", 72),
3509 std::make_pair("VK_FORMAT_R16_SSCALED", 73),
3510 std::make_pair("VK_FORMAT_R16_UINT", 74),
3511 std::make_pair("VK_FORMAT_R16_SINT", 75),
3512 std::make_pair("VK_FORMAT_R16_SFLOAT", 76),
3513 std::make_pair("VK_FORMAT_R16G16_UNORM", 77),
3514 std::make_pair("VK_FORMAT_R16G16_SNORM", 78),
3515 std::make_pair("VK_FORMAT_R16G16_USCALED", 79),
3516 std::make_pair("VK_FORMAT_R16G16_SSCALED", 80),
3517 std::make_pair("VK_FORMAT_R16G16_UINT", 81),
3518 std::make_pair("VK_FORMAT_R16G16_SINT", 82),
3519 std::make_pair("VK_FORMAT_R16G16_SFLOAT", 83),
3520 std::make_pair("VK_FORMAT_R16G16B16_UNORM", 84),
3521 std::make_pair("VK_FORMAT_R16G16B16_SNORM", 85),
3522 std::make_pair("VK_FORMAT_R16G16B16_USCALED", 86),
3523 std::make_pair("VK_FORMAT_R16G16B16_SSCALED", 87),
3524 std::make_pair("VK_FORMAT_R16G16B16_UINT", 88),
3525 std::make_pair("VK_FORMAT_R16G16B16_SINT", 89),
3526 std::make_pair("VK_FORMAT_R16G16B16_SFLOAT", 90),
3527 std::make_pair("VK_FORMAT_R16G16B16A16_UNORM", 91),
3528 std::make_pair("VK_FORMAT_R16G16B16A16_SNORM", 92),
3529 std::make_pair("VK_FORMAT_R16G16B16A16_USCALED", 93),
3530 std::make_pair("VK_FORMAT_R16G16B16A16_SSCALED", 94),
3531 std::make_pair("VK_FORMAT_R16G16B16A16_UINT", 95),
3532 std::make_pair("VK_FORMAT_R16G16B16A16_SINT", 96),
3533 std::make_pair("VK_FORMAT_R16G16B16A16_SFLOAT", 97),
3534 std::make_pair("VK_FORMAT_R32_UINT", 98),
3535 std::make_pair("VK_FORMAT_R32_SINT", 99),
3536 std::make_pair("VK_FORMAT_R32_SFLOAT", 100),
3537 std::make_pair("VK_FORMAT_R32G32_UINT", 101),
3538 std::make_pair("VK_FORMAT_R32G32_SINT", 102),
3539 std::make_pair("VK_FORMAT_R32G32_SFLOAT", 103),
3540 std::make_pair("VK_FORMAT_R32G32B32_UINT", 104),
3541 std::make_pair("VK_FORMAT_R32G32B32_SINT", 105),
3542 std::make_pair("VK_FORMAT_R32G32B32_SFLOAT", 106),
3543 std::make_pair("VK_FORMAT_R32G32B32A32_UINT", 107),
3544 std::make_pair("VK_FORMAT_R32G32B32A32_SINT", 108),
3545 std::make_pair("VK_FORMAT_R32G32B32A32_SFLOAT", 109),
3546 std::make_pair("VK_FORMAT_R64_UINT", 110),
3547 std::make_pair("VK_FORMAT_R64_SINT", 111),
3548 std::make_pair("VK_FORMAT_R64_SFLOAT", 112),
3549 std::make_pair("VK_FORMAT_R64G64_UINT", 113),
3550 std::make_pair("VK_FORMAT_R64G64_SINT", 114),
3551 std::make_pair("VK_FORMAT_R64G64_SFLOAT", 115),
3552 std::make_pair("VK_FORMAT_R64G64B64_UINT", 116),
3553 std::make_pair("VK_FORMAT_R64G64B64_SINT", 117),
3554 std::make_pair("VK_FORMAT_R64G64B64_SFLOAT", 118),
3555 std::make_pair("VK_FORMAT_R64G64B64A64_UINT", 119),
3556 std::make_pair("VK_FORMAT_R64G64B64A64_SINT", 120),
3557 std::make_pair("VK_FORMAT_R64G64B64A64_SFLOAT", 121),
3558 std::make_pair("VK_FORMAT_B10G11R11_UFLOAT_PACK32", 122),
3559 std::make_pair("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", 123),
3560 std::make_pair("VK_FORMAT_D16_UNORM", 124),
3561 std::make_pair("VK_FORMAT_X8_D24_UNORM_PACK32", 125),
3562 std::make_pair("VK_FORMAT_D32_SFLOAT", 126),
3563 std::make_pair("VK_FORMAT_S8_UINT", 127),
3564 std::make_pair("VK_FORMAT_D16_UNORM_S8_UINT", 128),
3565 std::make_pair("VK_FORMAT_D24_UNORM_S8_UINT", 129),
3566 std::make_pair("VK_FORMAT_D32_SFLOAT_S8_UINT", 130),
3567 std::make_pair("VK_FORMAT_BC1_RGB_UNORM_BLOCK", 131),
3568 std::make_pair("VK_FORMAT_BC1_RGB_SRGB_BLOCK", 132),
3569 std::make_pair("VK_FORMAT_BC1_RGBA_UNORM_BLOCK", 133),
3570 std::make_pair("VK_FORMAT_BC1_RGBA_SRGB_BLOCK", 134),
3571 std::make_pair("VK_FORMAT_BC2_UNORM_BLOCK", 135),
3572 std::make_pair("VK_FORMAT_BC2_SRGB_BLOCK", 136),
3573 std::make_pair("VK_FORMAT_BC3_UNORM_BLOCK", 137),
3574 std::make_pair("VK_FORMAT_BC3_SRGB_BLOCK", 138),
3575 std::make_pair("VK_FORMAT_BC4_UNORM_BLOCK", 139),
3576 std::make_pair("VK_FORMAT_BC4_SNORM_BLOCK", 140),
3577 std::make_pair("VK_FORMAT_BC5_UNORM_BLOCK", 141),
3578 std::make_pair("VK_FORMAT_BC5_SNORM_BLOCK", 142),
3579 std::make_pair("VK_FORMAT_BC6H_UFLOAT_BLOCK", 143),
3580 std::make_pair("VK_FORMAT_BC6H_SFLOAT_BLOCK", 144),
3581 std::make_pair("VK_FORMAT_BC7_UNORM_BLOCK", 145),
3582 std::make_pair("VK_FORMAT_BC7_SRGB_BLOCK", 146),
3583 std::make_pair("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", 147),
3584 std::make_pair("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", 148),
3585 std::make_pair("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", 149),
3586 std::make_pair("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", 150),
3587 std::make_pair("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", 151),
3588 std::make_pair("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", 152),
3589 std::make_pair("VK_FORMAT_EAC_R11_UNORM_BLOCK", 153),
3590 std::make_pair("VK_FORMAT_EAC_R11_SNORM_BLOCK", 154),
3591 std::make_pair("VK_FORMAT_EAC_R11G11_UNORM_BLOCK", 155),
3592 std::make_pair("VK_FORMAT_EAC_R11G11_SNORM_BLOCK", 156),
3593 std::make_pair("VK_FORMAT_ASTC_4x4_UNORM_BLOCK", 157),
3594 std::make_pair("VK_FORMAT_ASTC_4x4_SRGB_BLOCK", 158),
3595 std::make_pair("VK_FORMAT_ASTC_5x4_UNORM_BLOCK", 159),
3596 std::make_pair("VK_FORMAT_ASTC_5x4_SRGB_BLOCK", 160),
3597 std::make_pair("VK_FORMAT_ASTC_5x5_UNORM_BLOCK", 161),
3598 std::make_pair("VK_FORMAT_ASTC_5x5_SRGB_BLOCK", 162),
3599 std::make_pair("VK_FORMAT_ASTC_6x5_UNORM_BLOCK", 163),
3600 std::make_pair("VK_FORMAT_ASTC_6x5_SRGB_BLOCK", 164),
3601 std::make_pair("VK_FORMAT_ASTC_6x6_UNORM_BLOCK", 165),
3602 std::make_pair("VK_FORMAT_ASTC_6x6_SRGB_BLOCK", 166),
3603 std::make_pair("VK_FORMAT_ASTC_8x5_UNORM_BLOCK", 167),
3604 std::make_pair("VK_FORMAT_ASTC_8x5_SRGB_BLOCK", 168),
3605 std::make_pair("VK_FORMAT_ASTC_8x6_UNORM_BLOCK", 169),
3606 std::make_pair("VK_FORMAT_ASTC_8x6_SRGB_BLOCK", 170),
3607 std::make_pair("VK_FORMAT_ASTC_8x8_UNORM_BLOCK", 171),
3608 std::make_pair("VK_FORMAT_ASTC_8x8_SRGB_BLOCK", 172),
3609 std::make_pair("VK_FORMAT_ASTC_10x5_UNORM_BLOCK", 173),
3610 std::make_pair("VK_FORMAT_ASTC_10x5_SRGB_BLOCK", 174),
3611 std::make_pair("VK_FORMAT_ASTC_10x6_UNORM_BLOCK", 175),
3612 std::make_pair("VK_FORMAT_ASTC_10x6_SRGB_BLOCK", 176),
3613 std::make_pair("VK_FORMAT_ASTC_10x8_UNORM_BLOCK", 177),
3614 std::make_pair("VK_FORMAT_ASTC_10x8_SRGB_BLOCK", 178),
3615 std::make_pair("VK_FORMAT_ASTC_10x10_UNORM_BLOCK", 179),
3616 std::make_pair("VK_FORMAT_ASTC_10x10_SRGB_BLOCK", 180),
3617 std::make_pair("VK_FORMAT_ASTC_12x10_UNORM_BLOCK", 181),
3618 std::make_pair("VK_FORMAT_ASTC_12x10_SRGB_BLOCK", 182),
3619 std::make_pair("VK_FORMAT_ASTC_12x12_UNORM_BLOCK", 183),
3620 std::make_pair("VK_FORMAT_ASTC_12x12_SRGB_BLOCK", 184),
3621 std::make_pair("VK_FORMAT_G8B8G8R8_422_UNORM", 1000156000),
3622 std::make_pair("VK_FORMAT_B8G8R8G8_422_UNORM", 1000156001),
3623 std::make_pair("VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM", 1000156002),
3624 std::make_pair("VK_FORMAT_G8_B8R8_2PLANE_420_UNORM", 1000156003),
3625 std::make_pair("VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM", 1000156004),
3626 std::make_pair("VK_FORMAT_G8_B8R8_2PLANE_422_UNORM", 1000156005),
3627 std::make_pair("VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM", 1000156006),
3628 std::make_pair("VK_FORMAT_R10X6_UNORM_PACK16", 1000156007),
3629 std::make_pair("VK_FORMAT_R10X6G10X6_UNORM_2PACK16", 1000156008),
3630 std::make_pair("VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16", 1000156009),
3631 std::make_pair("VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", 1000156010),
3632 std::make_pair("VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", 1000156011),
3633 std::make_pair("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", 1000156012),
3634 std::make_pair("VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", 1000156013),
3635 std::make_pair("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", 1000156014),
3636 std::make_pair("VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", 1000156015),
3637 std::make_pair("VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", 1000156016),
3638 std::make_pair("VK_FORMAT_R12X4_UNORM_PACK16", 1000156017),
3639 std::make_pair("VK_FORMAT_R12X4G12X4_UNORM_2PACK16", 1000156018),
3640 std::make_pair("VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16", 1000156019),
3641 std::make_pair("VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", 1000156020),
3642 std::make_pair("VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", 1000156021),
3643 std::make_pair("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", 1000156022),
3644 std::make_pair("VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", 1000156023),
3645 std::make_pair("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", 1000156024),
3646 std::make_pair("VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", 1000156025),
3647 std::make_pair("VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", 1000156026),
3648 std::make_pair("VK_FORMAT_G16B16G16R16_422_UNORM", 1000156027),
3649 std::make_pair("VK_FORMAT_B16G16R16G16_422_UNORM", 1000156028),
3650 std::make_pair("VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM", 1000156029),
3651 std::make_pair("VK_FORMAT_G16_B16R16_2PLANE_420_UNORM", 1000156030),
3652 std::make_pair("VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM", 1000156031),
3653 std::make_pair("VK_FORMAT_G16_B16R16_2PLANE_422_UNORM", 1000156032),
3654 std::make_pair("VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM", 1000156033),
3655 std::make_pair("VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG", 1000054000),
3656 std::make_pair("VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG", 1000054001),
3657 std::make_pair("VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG", 1000054002),
3658 std::make_pair("VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG", 1000054003),
3659 std::make_pair("VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG", 1000054004),
3660 std::make_pair("VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG", 1000054005),
3661 std::make_pair("VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG", 1000054006),
3662 std::make_pair("VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG", 1000054007),
3663 std::make_pair("VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT", 1000066000),
3664 std::make_pair("VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT", 1000066001),
3665 std::make_pair("VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT", 1000066002),
3666 std::make_pair("VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT", 1000066003),
3667 std::make_pair("VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT", 1000066004),
3668 std::make_pair("VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT", 1000066005),
3669 std::make_pair("VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT", 1000066006),
3670 std::make_pair("VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT", 1000066007),
3671 std::make_pair("VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT", 1000066008),
3672 std::make_pair("VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT", 1000066009),
3673 std::make_pair("VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT", 1000066010),
3674 std::make_pair("VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT", 1000066011),
3675 std::make_pair("VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT", 1000066012),
3676 std::make_pair("VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT", 1000066013),
3677 std::make_pair("VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT", 1000288000),
3678 std::make_pair("VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT", 1000288001),
3679 std::make_pair("VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT", 1000288002),
3680 std::make_pair("VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT", 1000288003),
3681 std::make_pair("VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT", 1000288004),
3682 std::make_pair("VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT", 1000288005),
3683 std::make_pair("VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT", 1000288006),
3684 std::make_pair("VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT", 1000288007),
3685 std::make_pair("VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT", 1000288008),
3686 std::make_pair("VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT", 1000288009),
3687 std::make_pair("VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT", 1000288010),
3688 std::make_pair("VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT", 1000288011),
3689 std::make_pair("VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT", 1000288012),
3690 std::make_pair("VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT", 1000288013),
3691 std::make_pair("VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT", 1000288014),
3692 std::make_pair("VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT", 1000288015),
3693 std::make_pair("VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT", 1000288016),
3694 std::make_pair("VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT", 1000288017),
3695 std::make_pair("VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT", 1000288018),
3696 std::make_pair("VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT", 1000288019),
3697 std::make_pair("VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT", 1000288020),
3698 std::make_pair("VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT", 1000288021),
3699 std::make_pair("VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT", 1000288022),
3700 std::make_pair("VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT", 1000288023),
3701 std::make_pair("VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT", 1000288024),
3702 std::make_pair("VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT", 1000288025),
3703 std::make_pair("VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT", 1000288026),
3704 std::make_pair("VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT", 1000288027),
3705 std::make_pair("VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT", 1000288028),
3706 std::make_pair("VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT", 1000288029),
3707 std::make_pair("VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT", 1000330000),
3708 std::make_pair("VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", 1000330001),
3709 std::make_pair("VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", 1000330002),
3710 std::make_pair("VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT", 1000330003),
3711 std::make_pair("VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT", 1000340000),
3712 std::make_pair("VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT", 1000340001),
3713 };
parse_VkFormat(const char * s,Json::Value & obj,VkFormat & o)3714 static void parse_VkFormat(const char *s, Json::Value &obj, VkFormat &o)
3715 {
3716 std::string _res = obj.asString();
3717 o = (VkFormat)VkFormat_map[std::string(_res)];
3718 }
3719
3720 static std::map<std::string, int> VkFormatFeatureFlagBits_map = {
3721 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", 1UL << 0),
3722 std::make_pair("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", 1UL << 1),
3723 std::make_pair("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", 1UL << 2),
3724 std::make_pair("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", 1UL << 3),
3725 std::make_pair("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", 1UL << 4),
3726 std::make_pair("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", 1UL << 5),
3727 std::make_pair("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT", 1UL << 6),
3728 std::make_pair("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", 1UL << 7),
3729 std::make_pair("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", 1UL << 8),
3730 std::make_pair("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", 1UL << 9),
3731 std::make_pair("VK_FORMAT_FEATURE_BLIT_SRC_BIT", 1UL << 10),
3732 std::make_pair("VK_FORMAT_FEATURE_BLIT_DST_BIT", 1UL << 11),
3733 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", 1UL << 12),
3734 std::make_pair("VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", 1UL << 14),
3735 std::make_pair("VK_FORMAT_FEATURE_TRANSFER_DST_BIT", 1UL << 15),
3736 std::make_pair("VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT", 1UL << 17),
3737 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT", 1UL << 18),
3738 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT", 1UL << 19),
3739 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT", 1UL << 20),
3740 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT",
3741 1UL << 21),
3742 std::make_pair("VK_FORMAT_FEATURE_DISJOINT_BIT", 1UL << 22),
3743 std::make_pair("VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT", 1UL << 23),
3744 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT", 1UL << 16),
3745 std::make_pair("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG", 1UL << 13),
3746 std::make_pair("VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR", 1UL << 25),
3747 std::make_pair("VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR", 1UL << 26),
3748 std::make_pair("VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", 1UL << 29),
3749 std::make_pair("VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT", 1UL << 24),
3750 std::make_pair("VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1UL << 30),
3751 std::make_pair("VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR", 1UL << 27),
3752 std::make_pair("VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR", 1UL << 28),
3753 };
parse_VkFormatFeatureFlagBits(const char * s,Json::Value & obj,VkFormatFeatureFlagBits & o)3754 static void parse_VkFormatFeatureFlagBits(const char *s, Json::Value &obj, VkFormatFeatureFlagBits &o)
3755 {
3756 std::string _res = obj.asString();
3757 o = (VkFormatFeatureFlagBits)VkFormatFeatureFlagBits_map[std::string(_res)];
3758 }
3759
3760 static std::map<std::string, int> VkImageCreateFlagBits_map = {
3761 std::make_pair("VK_IMAGE_CREATE_SPARSE_BINDING_BIT", 1UL << 0),
3762 std::make_pair("VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", 1UL << 1),
3763 std::make_pair("VK_IMAGE_CREATE_SPARSE_ALIASED_BIT", 1UL << 2),
3764 std::make_pair("VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT", 1UL << 3),
3765 std::make_pair("VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT", 1UL << 4),
3766 std::make_pair("VK_IMAGE_CREATE_ALIAS_BIT", 1UL << 10),
3767 std::make_pair("VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT", 1UL << 6),
3768 std::make_pair("VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT", 1UL << 5),
3769 std::make_pair("VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT", 1UL << 7),
3770 std::make_pair("VK_IMAGE_CREATE_EXTENDED_USAGE_BIT", 1UL << 8),
3771 std::make_pair("VK_IMAGE_CREATE_PROTECTED_BIT", 1UL << 11),
3772 std::make_pair("VK_IMAGE_CREATE_DISJOINT_BIT", 1UL << 9),
3773 std::make_pair("VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV", 1UL << 13),
3774 std::make_pair("VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT", 1UL << 12),
3775 std::make_pair("VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", 1UL << 14),
3776 std::make_pair("VK_IMAGE_CREATE_RESERVED_16_BIT_AMD", 1UL << 16),
3777 std::make_pair("VK_IMAGE_CREATE_RESERVED_394_BIT_EXT", 1UL << 17),
3778 std::make_pair("VK_IMAGE_CREATE_RESERVED_426_BIT_QCOM", 1UL << 15),
3779 };
parse_VkImageCreateFlagBits(const char * s,Json::Value & obj,VkImageCreateFlagBits & o)3780 static void parse_VkImageCreateFlagBits(const char *s, Json::Value &obj, VkImageCreateFlagBits &o)
3781 {
3782 std::string _res = obj.asString();
3783 o = (VkImageCreateFlagBits)VkImageCreateFlagBits_map[std::string(_res)];
3784 }
3785
3786 static std::map<std::string, int> VkSampleCountFlagBits_map = {
3787 std::make_pair("VK_SAMPLE_COUNT_1_BIT", 1UL << 0), std::make_pair("VK_SAMPLE_COUNT_2_BIT", 1UL << 1),
3788 std::make_pair("VK_SAMPLE_COUNT_4_BIT", 1UL << 2), std::make_pair("VK_SAMPLE_COUNT_8_BIT", 1UL << 3),
3789 std::make_pair("VK_SAMPLE_COUNT_16_BIT", 1UL << 4), std::make_pair("VK_SAMPLE_COUNT_32_BIT", 1UL << 5),
3790 std::make_pair("VK_SAMPLE_COUNT_64_BIT", 1UL << 6),
3791 };
parse_VkSampleCountFlagBits(const char * s,Json::Value & obj,VkSampleCountFlagBits & o)3792 static void parse_VkSampleCountFlagBits(const char *s, Json::Value &obj, VkSampleCountFlagBits &o)
3793 {
3794 std::string _res = obj.asString();
3795 o = (VkSampleCountFlagBits)VkSampleCountFlagBits_map[std::string(_res)];
3796 }
3797
3798 static std::map<std::string, int> VkImageTiling_map = {
3799 std::make_pair("VK_IMAGE_TILING_OPTIMAL", 0),
3800 std::make_pair("VK_IMAGE_TILING_LINEAR", 1),
3801 std::make_pair("VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", 1000158000),
3802 };
parse_VkImageTiling(const char * s,Json::Value & obj,VkImageTiling & o)3803 static void parse_VkImageTiling(const char *s, Json::Value &obj, VkImageTiling &o)
3804 {
3805 std::string _res = obj.asString();
3806 o = (VkImageTiling)VkImageTiling_map[std::string(_res)];
3807 }
3808
3809 static std::map<std::string, int> VkImageType_map = {
3810 std::make_pair("VK_IMAGE_TYPE_1D", 0),
3811 std::make_pair("VK_IMAGE_TYPE_2D", 1),
3812 std::make_pair("VK_IMAGE_TYPE_3D", 2),
3813 };
parse_VkImageType(const char * s,Json::Value & obj,VkImageType & o)3814 static void parse_VkImageType(const char *s, Json::Value &obj, VkImageType &o)
3815 {
3816 std::string _res = obj.asString();
3817 o = (VkImageType)VkImageType_map[std::string(_res)];
3818 }
3819
3820 static std::map<std::string, int> VkImageUsageFlagBits_map = {
3821 std::make_pair("VK_IMAGE_USAGE_TRANSFER_SRC_BIT", 1UL << 0),
3822 std::make_pair("VK_IMAGE_USAGE_TRANSFER_DST_BIT", 1UL << 1),
3823 std::make_pair("VK_IMAGE_USAGE_SAMPLED_BIT", 1UL << 2),
3824 std::make_pair("VK_IMAGE_USAGE_STORAGE_BIT", 1UL << 3),
3825 std::make_pair("VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", 1UL << 4),
3826 std::make_pair("VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT", 1UL << 5),
3827 std::make_pair("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT", 1UL << 6),
3828 std::make_pair("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", 1UL << 7),
3829 std::make_pair("VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR", 1UL << 10),
3830 std::make_pair("VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR", 1UL << 11),
3831 std::make_pair("VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR", 1UL << 12),
3832 std::make_pair("VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM", 1UL << 16),
3833 std::make_pair("VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM", 1UL << 17),
3834 std::make_pair("VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT", 1UL << 9),
3835 std::make_pair("VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1UL << 8),
3836 std::make_pair("VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR", 1UL << 13),
3837 std::make_pair("VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", 1UL << 14),
3838 std::make_pair("VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR", 1UL << 15),
3839 std::make_pair("VK_IMAGE_USAGE_RESERVED_19_BIT_EXT", 1UL << 19),
3840 std::make_pair("VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI", 1UL << 18),
3841 };
parse_VkImageUsageFlagBits(const char * s,Json::Value & obj,VkImageUsageFlagBits & o)3842 static void parse_VkImageUsageFlagBits(const char *s, Json::Value &obj, VkImageUsageFlagBits &o)
3843 {
3844 std::string _res = obj.asString();
3845 o = (VkImageUsageFlagBits)VkImageUsageFlagBits_map[std::string(_res)];
3846 }
3847
3848 static std::map<std::string, int> VkMemoryHeapFlagBits_map = {
3849 std::make_pair("VK_MEMORY_HEAP_DEVICE_LOCAL_BIT", 1UL << 0),
3850 std::make_pair("VK_MEMORY_HEAP_MULTI_INSTANCE_BIT", 1UL << 1),
3851 std::make_pair("VK_MEMORY_HEAP_SEU_SAFE_BIT", 1UL << 2),
3852 };
parse_VkMemoryHeapFlagBits(const char * s,Json::Value & obj,VkMemoryHeapFlagBits & o)3853 static void parse_VkMemoryHeapFlagBits(const char *s, Json::Value &obj, VkMemoryHeapFlagBits &o)
3854 {
3855 std::string _res = obj.asString();
3856 o = (VkMemoryHeapFlagBits)VkMemoryHeapFlagBits_map[std::string(_res)];
3857 }
3858
3859 static std::map<std::string, int> VkMemoryPropertyFlagBits_map = {
3860 std::make_pair("VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT", 1UL << 0),
3861 std::make_pair("VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", 1UL << 1),
3862 std::make_pair("VK_MEMORY_PROPERTY_HOST_COHERENT_BIT", 1UL << 2),
3863 std::make_pair("VK_MEMORY_PROPERTY_HOST_CACHED_BIT", 1UL << 3),
3864 std::make_pair("VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT", 1UL << 4),
3865 std::make_pair("VK_MEMORY_PROPERTY_PROTECTED_BIT", 1UL << 5),
3866 std::make_pair("VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD", 1UL << 6),
3867 std::make_pair("VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD", 1UL << 7),
3868 std::make_pair("VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV", 1UL << 8),
3869 };
parse_VkMemoryPropertyFlagBits(const char * s,Json::Value & obj,VkMemoryPropertyFlagBits & o)3870 static void parse_VkMemoryPropertyFlagBits(const char *s, Json::Value &obj, VkMemoryPropertyFlagBits &o)
3871 {
3872 std::string _res = obj.asString();
3873 o = (VkMemoryPropertyFlagBits)VkMemoryPropertyFlagBits_map[std::string(_res)];
3874 }
3875
3876 static std::map<std::string, int> VkPhysicalDeviceType_map = {
3877 std::make_pair("VK_PHYSICAL_DEVICE_TYPE_OTHER", 0),
3878 std::make_pair("VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU", 1),
3879 std::make_pair("VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU", 2),
3880 std::make_pair("VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU", 3),
3881 std::make_pair("VK_PHYSICAL_DEVICE_TYPE_CPU", 4),
3882 };
parse_VkPhysicalDeviceType(const char * s,Json::Value & obj,VkPhysicalDeviceType & o)3883 static void parse_VkPhysicalDeviceType(const char *s, Json::Value &obj, VkPhysicalDeviceType &o)
3884 {
3885 std::string _res = obj.asString();
3886 o = (VkPhysicalDeviceType)VkPhysicalDeviceType_map[std::string(_res)];
3887 }
3888
3889 static std::map<std::string, int> VkQueueFlagBits_map = {
3890 std::make_pair("VK_QUEUE_GRAPHICS_BIT", 1UL << 0),
3891 std::make_pair("VK_QUEUE_COMPUTE_BIT", 1UL << 1),
3892 std::make_pair("VK_QUEUE_TRANSFER_BIT", 1UL << 2),
3893 std::make_pair("VK_QUEUE_PROTECTED_BIT", 1UL << 4),
3894 std::make_pair("VK_QUEUE_VIDEO_DECODE_BIT_KHR", 1UL << 5),
3895 std::make_pair("VK_QUEUE_VIDEO_ENCODE_BIT_KHR", 1UL << 6),
3896 };
parse_VkQueueFlagBits(const char * s,Json::Value & obj,VkQueueFlagBits & o)3897 static void parse_VkQueueFlagBits(const char *s, Json::Value &obj, VkQueueFlagBits &o)
3898 {
3899 std::string _res = obj.asString();
3900 o = (VkQueueFlagBits)VkQueueFlagBits_map[std::string(_res)];
3901 }
3902
3903 static std::map<std::string, int> VkDeviceQueueCreateFlagBits_map = {
3904 std::make_pair("VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT", 1UL << 0),
3905 };
parse_VkDeviceQueueCreateFlagBits(const char * s,Json::Value & obj,VkDeviceQueueCreateFlagBits & o)3906 static void parse_VkDeviceQueueCreateFlagBits(const char *s, Json::Value &obj, VkDeviceQueueCreateFlagBits &o)
3907 {
3908 std::string _res = obj.asString();
3909 o = (VkDeviceQueueCreateFlagBits)VkDeviceQueueCreateFlagBits_map[std::string(_res)];
3910 }
3911
3912 static std::map<std::string, int> VkPipelineStageFlagBits_map = {
3913 std::make_pair("VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT", 1UL << 0),
3914 std::make_pair("VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT", 1UL << 1),
3915 std::make_pair("VK_PIPELINE_STAGE_VERTEX_INPUT_BIT", 1UL << 2),
3916 std::make_pair("VK_PIPELINE_STAGE_VERTEX_SHADER_BIT", 1UL << 3),
3917 std::make_pair("VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT", 1UL << 4),
3918 std::make_pair("VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT", 1UL << 5),
3919 std::make_pair("VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT", 1UL << 6),
3920 std::make_pair("VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT", 1UL << 7),
3921 std::make_pair("VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT", 1UL << 8),
3922 std::make_pair("VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT", 1UL << 9),
3923 std::make_pair("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT", 1UL << 10),
3924 std::make_pair("VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT", 1UL << 11),
3925 std::make_pair("VK_PIPELINE_STAGE_TRANSFER_BIT", 1UL << 12),
3926 std::make_pair("VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT", 1UL << 13),
3927 std::make_pair("VK_PIPELINE_STAGE_HOST_BIT", 1UL << 14),
3928 std::make_pair("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT", 1UL << 15),
3929 std::make_pair("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT", 1UL << 16),
3930 std::make_pair("VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT", 1UL << 24),
3931 std::make_pair("VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT", 1UL << 18),
3932 std::make_pair("VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", 1UL << 25),
3933 std::make_pair("VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR", 1UL << 21),
3934 std::make_pair("VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV", 1UL << 19),
3935 std::make_pair("VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV", 1UL << 20),
3936 std::make_pair("VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT", 1UL << 23),
3937 std::make_pair("VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1UL << 22),
3938 std::make_pair("VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV", 1UL << 17),
3939 std::make_pair("VK_PIPELINE_STAGE_NONE_KHR", 0),
3940 };
parse_VkPipelineStageFlagBits(const char * s,Json::Value & obj,VkPipelineStageFlagBits & o)3941 static void parse_VkPipelineStageFlagBits(const char *s, Json::Value &obj, VkPipelineStageFlagBits &o)
3942 {
3943 std::string _res = obj.asString();
3944 o = (VkPipelineStageFlagBits)VkPipelineStageFlagBits_map[std::string(_res)];
3945 }
3946
3947 static std::map<std::string, int> VkFenceCreateFlagBits_map = {
3948 std::make_pair("VK_FENCE_CREATE_SIGNALED_BIT", 1UL << 0),
3949 };
parse_VkFenceCreateFlagBits(const char * s,Json::Value & obj,VkFenceCreateFlagBits & o)3950 static void parse_VkFenceCreateFlagBits(const char *s, Json::Value &obj, VkFenceCreateFlagBits &o)
3951 {
3952 std::string _res = obj.asString();
3953 o = (VkFenceCreateFlagBits)VkFenceCreateFlagBits_map[std::string(_res)];
3954 }
3955
3956 static std::map<std::string, int> VkEventCreateFlagBits_map = {
3957 std::make_pair("VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR", 1UL << 0),
3958 };
parse_VkEventCreateFlagBits(const char * s,Json::Value & obj,VkEventCreateFlagBits & o)3959 static void parse_VkEventCreateFlagBits(const char *s, Json::Value &obj, VkEventCreateFlagBits &o)
3960 {
3961 std::string _res = obj.asString();
3962 o = (VkEventCreateFlagBits)VkEventCreateFlagBits_map[std::string(_res)];
3963 }
3964
3965 static std::map<std::string, int> VkQueryPipelineStatisticFlagBits_map = {
3966 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT", 1UL << 0),
3967 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT", 1UL << 1),
3968 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT", 1UL << 2),
3969 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT", 1UL << 3),
3970 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT", 1UL << 4),
3971 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT", 1UL << 5),
3972 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT", 1UL << 6),
3973 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT", 1UL << 7),
3974 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT", 1UL << 8),
3975 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", 1UL << 9),
3976 std::make_pair("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT", 1UL << 10),
3977 };
parse_VkQueryPipelineStatisticFlagBits(const char * s,Json::Value & obj,VkQueryPipelineStatisticFlagBits & o)3978 static void parse_VkQueryPipelineStatisticFlagBits(const char *s, Json::Value &obj, VkQueryPipelineStatisticFlagBits &o)
3979 {
3980 std::string _res = obj.asString();
3981 o = (VkQueryPipelineStatisticFlagBits)VkQueryPipelineStatisticFlagBits_map[std::string(_res)];
3982 }
3983
3984 static std::map<std::string, int> VkQueryType_map = {
3985 std::make_pair("VK_QUERY_TYPE_OCCLUSION", 0),
3986 std::make_pair("VK_QUERY_TYPE_PIPELINE_STATISTICS", 1),
3987 std::make_pair("VK_QUERY_TYPE_TIMESTAMP", 2),
3988 std::make_pair("VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR", 1000023000),
3989 std::make_pair("VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT", 1000028004),
3990 std::make_pair("VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR", 1000116000),
3991 std::make_pair("VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR", 1000150000),
3992 std::make_pair("VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR", 1000150001),
3993 std::make_pair("VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV", 1000165000),
3994 std::make_pair("VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL", 1000210000),
3995 std::make_pair("VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR", 1000299000),
3996 };
parse_VkQueryType(const char * s,Json::Value & obj,VkQueryType & o)3997 static void parse_VkQueryType(const char *s, Json::Value &obj, VkQueryType &o)
3998 {
3999 std::string _res = obj.asString();
4000 o = (VkQueryType)VkQueryType_map[std::string(_res)];
4001 }
4002
4003 static std::map<std::string, int> VkQueryResultFlagBits_map = {
4004 std::make_pair("VK_QUERY_RESULT_64_BIT", 1UL << 0),
4005 std::make_pair("VK_QUERY_RESULT_WAIT_BIT", 1UL << 1),
4006 std::make_pair("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", 1UL << 2),
4007 std::make_pair("VK_QUERY_RESULT_PARTIAL_BIT", 1UL << 3),
4008 std::make_pair("VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", 1UL << 4),
4009 };
parse_VkQueryResultFlagBits(const char * s,Json::Value & obj,VkQueryResultFlagBits & o)4010 static void parse_VkQueryResultFlagBits(const char *s, Json::Value &obj, VkQueryResultFlagBits &o)
4011 {
4012 std::string _res = obj.asString();
4013 o = (VkQueryResultFlagBits)VkQueryResultFlagBits_map[std::string(_res)];
4014 }
4015
4016 static std::map<std::string, int> VkBufferCreateFlagBits_map = {
4017 std::make_pair("VK_BUFFER_CREATE_SPARSE_BINDING_BIT", 1UL << 0),
4018 std::make_pair("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT", 1UL << 1),
4019 std::make_pair("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT", 1UL << 2),
4020 std::make_pair("VK_BUFFER_CREATE_PROTECTED_BIT", 1UL << 3),
4021 std::make_pair("VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", 1UL << 4),
4022 std::make_pair("VK_BUFFER_CREATE_RESERVED_5_BIT_AMD", 1UL << 5),
4023 };
parse_VkBufferCreateFlagBits(const char * s,Json::Value & obj,VkBufferCreateFlagBits & o)4024 static void parse_VkBufferCreateFlagBits(const char *s, Json::Value &obj, VkBufferCreateFlagBits &o)
4025 {
4026 std::string _res = obj.asString();
4027 o = (VkBufferCreateFlagBits)VkBufferCreateFlagBits_map[std::string(_res)];
4028 }
4029
4030 static std::map<std::string, int> VkBufferUsageFlagBits_map = {
4031 std::make_pair("VK_BUFFER_USAGE_TRANSFER_SRC_BIT", 1UL << 0),
4032 std::make_pair("VK_BUFFER_USAGE_TRANSFER_DST_BIT", 1UL << 1),
4033 std::make_pair("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT", 1UL << 2),
4034 std::make_pair("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT", 1UL << 3),
4035 std::make_pair("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT", 1UL << 4),
4036 std::make_pair("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT", 1UL << 5),
4037 std::make_pair("VK_BUFFER_USAGE_INDEX_BUFFER_BIT", 1UL << 6),
4038 std::make_pair("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT", 1UL << 7),
4039 std::make_pair("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT", 1UL << 8),
4040 std::make_pair("VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT", 1UL << 17),
4041 std::make_pair("VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR", 1UL << 13),
4042 std::make_pair("VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR", 1UL << 14),
4043 std::make_pair("VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT", 1UL << 11),
4044 std::make_pair("VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT", 1UL << 12),
4045 std::make_pair("VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT", 1UL << 9),
4046 std::make_pair("VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR", 1UL << 19),
4047 std::make_pair("VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR", 1UL << 20),
4048 std::make_pair("VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR", 1UL << 10),
4049 std::make_pair("VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM", 1UL << 18),
4050 std::make_pair("VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR", 1UL << 15),
4051 std::make_pair("VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR", 1UL << 16),
4052 std::make_pair("VK_BUFFER_USAGE_RESERVED_21_BIT_AMD", 1UL << 21),
4053 std::make_pair("VK_BUFFER_USAGE_RESERVED_22_BIT_AMD", 1UL << 22),
4054 };
parse_VkBufferUsageFlagBits(const char * s,Json::Value & obj,VkBufferUsageFlagBits & o)4055 static void parse_VkBufferUsageFlagBits(const char *s, Json::Value &obj, VkBufferUsageFlagBits &o)
4056 {
4057 std::string _res = obj.asString();
4058 o = (VkBufferUsageFlagBits)VkBufferUsageFlagBits_map[std::string(_res)];
4059 }
4060
4061 static std::map<std::string, int> VkSharingMode_map = {
4062 std::make_pair("VK_SHARING_MODE_EXCLUSIVE", 0),
4063 std::make_pair("VK_SHARING_MODE_CONCURRENT", 1),
4064 };
parse_VkSharingMode(const char * s,Json::Value & obj,VkSharingMode & o)4065 static void parse_VkSharingMode(const char *s, Json::Value &obj, VkSharingMode &o)
4066 {
4067 std::string _res = obj.asString();
4068 o = (VkSharingMode)VkSharingMode_map[std::string(_res)];
4069 }
4070
4071 static std::map<std::string, int> VkComponentSwizzle_map = {
4072 std::make_pair("VK_COMPONENT_SWIZZLE_IDENTITY", 0), std::make_pair("VK_COMPONENT_SWIZZLE_ZERO", 1),
4073 std::make_pair("VK_COMPONENT_SWIZZLE_ONE", 2), std::make_pair("VK_COMPONENT_SWIZZLE_R", 3),
4074 std::make_pair("VK_COMPONENT_SWIZZLE_G", 4), std::make_pair("VK_COMPONENT_SWIZZLE_B", 5),
4075 std::make_pair("VK_COMPONENT_SWIZZLE_A", 6),
4076 };
parse_VkComponentSwizzle(const char * s,Json::Value & obj,VkComponentSwizzle & o)4077 static void parse_VkComponentSwizzle(const char *s, Json::Value &obj, VkComponentSwizzle &o)
4078 {
4079 std::string _res = obj.asString();
4080 o = (VkComponentSwizzle)VkComponentSwizzle_map[std::string(_res)];
4081 }
4082
4083 static std::map<std::string, int> VkImageViewCreateFlagBits_map = {
4084 std::make_pair("VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", 1UL << 0),
4085 std::make_pair("VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT", 1UL << 1),
4086 };
parse_VkImageViewCreateFlagBits(const char * s,Json::Value & obj,VkImageViewCreateFlagBits & o)4087 static void parse_VkImageViewCreateFlagBits(const char *s, Json::Value &obj, VkImageViewCreateFlagBits &o)
4088 {
4089 std::string _res = obj.asString();
4090 o = (VkImageViewCreateFlagBits)VkImageViewCreateFlagBits_map[std::string(_res)];
4091 }
4092
4093 static std::map<std::string, int> VkImageViewType_map = {
4094 std::make_pair("VK_IMAGE_VIEW_TYPE_1D", 0), std::make_pair("VK_IMAGE_VIEW_TYPE_2D", 1),
4095 std::make_pair("VK_IMAGE_VIEW_TYPE_3D", 2), std::make_pair("VK_IMAGE_VIEW_TYPE_CUBE", 3),
4096 std::make_pair("VK_IMAGE_VIEW_TYPE_1D_ARRAY", 4), std::make_pair("VK_IMAGE_VIEW_TYPE_2D_ARRAY", 5),
4097 std::make_pair("VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", 6),
4098 };
parse_VkImageViewType(const char * s,Json::Value & obj,VkImageViewType & o)4099 static void parse_VkImageViewType(const char *s, Json::Value &obj, VkImageViewType &o)
4100 {
4101 std::string _res = obj.asString();
4102 o = (VkImageViewType)VkImageViewType_map[std::string(_res)];
4103 }
4104
4105 static std::map<std::string, int> VkPipelineCacheCreateFlagBits_map = {
4106 std::make_pair("VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT", 1UL << 2),
4107 std::make_pair("VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT", 1UL << 1),
4108 std::make_pair("VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT", 1UL << 0),
4109 };
parse_VkPipelineCacheCreateFlagBits(const char * s,Json::Value & obj,VkPipelineCacheCreateFlagBits & o)4110 static void parse_VkPipelineCacheCreateFlagBits(const char *s, Json::Value &obj, VkPipelineCacheCreateFlagBits &o)
4111 {
4112 std::string _res = obj.asString();
4113 o = (VkPipelineCacheCreateFlagBits)VkPipelineCacheCreateFlagBits_map[std::string(_res)];
4114 }
4115
4116 static std::map<std::string, int> VkBlendFactor_map = {
4117 std::make_pair("VK_BLEND_FACTOR_ZERO", 0),
4118 std::make_pair("VK_BLEND_FACTOR_ONE", 1),
4119 std::make_pair("VK_BLEND_FACTOR_SRC_COLOR", 2),
4120 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR", 3),
4121 std::make_pair("VK_BLEND_FACTOR_DST_COLOR", 4),
4122 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR", 5),
4123 std::make_pair("VK_BLEND_FACTOR_SRC_ALPHA", 6),
4124 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA", 7),
4125 std::make_pair("VK_BLEND_FACTOR_DST_ALPHA", 8),
4126 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA", 9),
4127 std::make_pair("VK_BLEND_FACTOR_CONSTANT_COLOR", 10),
4128 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", 11),
4129 std::make_pair("VK_BLEND_FACTOR_CONSTANT_ALPHA", 12),
4130 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", 13),
4131 std::make_pair("VK_BLEND_FACTOR_SRC_ALPHA_SATURATE", 14),
4132 std::make_pair("VK_BLEND_FACTOR_SRC1_COLOR", 15),
4133 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR", 16),
4134 std::make_pair("VK_BLEND_FACTOR_SRC1_ALPHA", 17),
4135 std::make_pair("VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", 18),
4136 };
parse_VkBlendFactor(const char * s,Json::Value & obj,VkBlendFactor & o)4137 static void parse_VkBlendFactor(const char *s, Json::Value &obj, VkBlendFactor &o)
4138 {
4139 std::string _res = obj.asString();
4140 o = (VkBlendFactor)VkBlendFactor_map[std::string(_res)];
4141 }
4142
4143 static std::map<std::string, int> VkBlendOp_map = {
4144 std::make_pair("VK_BLEND_OP_ADD", 0),
4145 std::make_pair("VK_BLEND_OP_SUBTRACT", 1),
4146 std::make_pair("VK_BLEND_OP_REVERSE_SUBTRACT", 2),
4147 std::make_pair("VK_BLEND_OP_MIN", 3),
4148 std::make_pair("VK_BLEND_OP_MAX", 4),
4149 std::make_pair("VK_BLEND_OP_ZERO_EXT", 1000148000),
4150 std::make_pair("VK_BLEND_OP_SRC_EXT", 1000148001),
4151 std::make_pair("VK_BLEND_OP_DST_EXT", 1000148002),
4152 std::make_pair("VK_BLEND_OP_SRC_OVER_EXT", 1000148003),
4153 std::make_pair("VK_BLEND_OP_DST_OVER_EXT", 1000148004),
4154 std::make_pair("VK_BLEND_OP_SRC_IN_EXT", 1000148005),
4155 std::make_pair("VK_BLEND_OP_DST_IN_EXT", 1000148006),
4156 std::make_pair("VK_BLEND_OP_SRC_OUT_EXT", 1000148007),
4157 std::make_pair("VK_BLEND_OP_DST_OUT_EXT", 1000148008),
4158 std::make_pair("VK_BLEND_OP_SRC_ATOP_EXT", 1000148009),
4159 std::make_pair("VK_BLEND_OP_DST_ATOP_EXT", 1000148010),
4160 std::make_pair("VK_BLEND_OP_XOR_EXT", 1000148011),
4161 std::make_pair("VK_BLEND_OP_MULTIPLY_EXT", 1000148012),
4162 std::make_pair("VK_BLEND_OP_SCREEN_EXT", 1000148013),
4163 std::make_pair("VK_BLEND_OP_OVERLAY_EXT", 1000148014),
4164 std::make_pair("VK_BLEND_OP_DARKEN_EXT", 1000148015),
4165 std::make_pair("VK_BLEND_OP_LIGHTEN_EXT", 1000148016),
4166 std::make_pair("VK_BLEND_OP_COLORDODGE_EXT", 1000148017),
4167 std::make_pair("VK_BLEND_OP_COLORBURN_EXT", 1000148018),
4168 std::make_pair("VK_BLEND_OP_HARDLIGHT_EXT", 1000148019),
4169 std::make_pair("VK_BLEND_OP_SOFTLIGHT_EXT", 1000148020),
4170 std::make_pair("VK_BLEND_OP_DIFFERENCE_EXT", 1000148021),
4171 std::make_pair("VK_BLEND_OP_EXCLUSION_EXT", 1000148022),
4172 std::make_pair("VK_BLEND_OP_INVERT_EXT", 1000148023),
4173 std::make_pair("VK_BLEND_OP_INVERT_RGB_EXT", 1000148024),
4174 std::make_pair("VK_BLEND_OP_LINEARDODGE_EXT", 1000148025),
4175 std::make_pair("VK_BLEND_OP_LINEARBURN_EXT", 1000148026),
4176 std::make_pair("VK_BLEND_OP_VIVIDLIGHT_EXT", 1000148027),
4177 std::make_pair("VK_BLEND_OP_LINEARLIGHT_EXT", 1000148028),
4178 std::make_pair("VK_BLEND_OP_PINLIGHT_EXT", 1000148029),
4179 std::make_pair("VK_BLEND_OP_HARDMIX_EXT", 1000148030),
4180 std::make_pair("VK_BLEND_OP_HSL_HUE_EXT", 1000148031),
4181 std::make_pair("VK_BLEND_OP_HSL_SATURATION_EXT", 1000148032),
4182 std::make_pair("VK_BLEND_OP_HSL_COLOR_EXT", 1000148033),
4183 std::make_pair("VK_BLEND_OP_HSL_LUMINOSITY_EXT", 1000148034),
4184 std::make_pair("VK_BLEND_OP_PLUS_EXT", 1000148035),
4185 std::make_pair("VK_BLEND_OP_PLUS_CLAMPED_EXT", 1000148036),
4186 std::make_pair("VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT", 1000148037),
4187 std::make_pair("VK_BLEND_OP_PLUS_DARKER_EXT", 1000148038),
4188 std::make_pair("VK_BLEND_OP_MINUS_EXT", 1000148039),
4189 std::make_pair("VK_BLEND_OP_MINUS_CLAMPED_EXT", 1000148040),
4190 std::make_pair("VK_BLEND_OP_CONTRAST_EXT", 1000148041),
4191 std::make_pair("VK_BLEND_OP_INVERT_OVG_EXT", 1000148042),
4192 std::make_pair("VK_BLEND_OP_RED_EXT", 1000148043),
4193 std::make_pair("VK_BLEND_OP_GREEN_EXT", 1000148044),
4194 std::make_pair("VK_BLEND_OP_BLUE_EXT", 1000148045),
4195 };
parse_VkBlendOp(const char * s,Json::Value & obj,VkBlendOp & o)4196 static void parse_VkBlendOp(const char *s, Json::Value &obj, VkBlendOp &o)
4197 {
4198 std::string _res = obj.asString();
4199 o = (VkBlendOp)VkBlendOp_map[std::string(_res)];
4200 }
4201
4202 static std::map<std::string, int> VkColorComponentFlagBits_map = {
4203 std::make_pair("VK_COLOR_COMPONENT_R_BIT", 1UL << 0),
4204 std::make_pair("VK_COLOR_COMPONENT_G_BIT", 1UL << 1),
4205 std::make_pair("VK_COLOR_COMPONENT_B_BIT", 1UL << 2),
4206 std::make_pair("VK_COLOR_COMPONENT_A_BIT", 1UL << 3),
4207 };
parse_VkColorComponentFlagBits(const char * s,Json::Value & obj,VkColorComponentFlagBits & o)4208 static void parse_VkColorComponentFlagBits(const char *s, Json::Value &obj, VkColorComponentFlagBits &o)
4209 {
4210 std::string _res = obj.asString();
4211 o = (VkColorComponentFlagBits)VkColorComponentFlagBits_map[std::string(_res)];
4212 }
4213
4214 static std::map<std::string, int> VkCompareOp_map = {
4215 std::make_pair("VK_COMPARE_OP_NEVER", 0),
4216 std::make_pair("VK_COMPARE_OP_LESS", 1),
4217 std::make_pair("VK_COMPARE_OP_EQUAL", 2),
4218 std::make_pair("VK_COMPARE_OP_LESS_OR_EQUAL", 3),
4219 std::make_pair("VK_COMPARE_OP_GREATER", 4),
4220 std::make_pair("VK_COMPARE_OP_NOT_EQUAL", 5),
4221 std::make_pair("VK_COMPARE_OP_GREATER_OR_EQUAL", 6),
4222 std::make_pair("VK_COMPARE_OP_ALWAYS", 7),
4223 };
parse_VkCompareOp(const char * s,Json::Value & obj,VkCompareOp & o)4224 static void parse_VkCompareOp(const char *s, Json::Value &obj, VkCompareOp &o)
4225 {
4226 std::string _res = obj.asString();
4227 o = (VkCompareOp)VkCompareOp_map[std::string(_res)];
4228 }
4229
4230 static std::map<std::string, int> VkPipelineCreateFlagBits_map = {
4231 std::make_pair("VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT", 1UL << 0),
4232 std::make_pair("VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT", 1UL << 3),
4233 std::make_pair("VK_PIPELINE_CREATE_DISPATCH_BASE_BIT", 1UL << 4),
4234 std::make_pair("VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1UL << 21),
4235 std::make_pair("VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT", 1UL << 22),
4236 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR", 1UL << 14),
4237 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR", 1UL << 15),
4238 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR", 1UL << 16),
4239 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR", 1UL << 17),
4240 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR", 1UL << 12),
4241 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR", 1UL << 13),
4242 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR", 1UL << 19),
4243 std::make_pair("VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV", 1UL << 5),
4244 std::make_pair("VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR", 1UL << 6),
4245 std::make_pair("VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR", 1UL << 7),
4246 std::make_pair("VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV", 1UL << 18),
4247 std::make_pair("VK_PIPELINE_CREATE_LIBRARY_BIT_KHR", 1UL << 11),
4248 std::make_pair("VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT", 1UL << 8),
4249 std::make_pair("VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT", 1UL << 9),
4250 std::make_pair("VK_PIPELINE_CREATE_RESERVED_23_BIT_AMD", 1UL << 23),
4251 std::make_pair("VK_PIPELINE_CREATE_RESERVED_10_BIT_AMD", 1UL << 10),
4252 std::make_pair("VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV", 1UL << 20),
4253 };
parse_VkPipelineCreateFlagBits(const char * s,Json::Value & obj,VkPipelineCreateFlagBits & o)4254 static void parse_VkPipelineCreateFlagBits(const char *s, Json::Value &obj, VkPipelineCreateFlagBits &o)
4255 {
4256 std::string _res = obj.asString();
4257 o = (VkPipelineCreateFlagBits)VkPipelineCreateFlagBits_map[std::string(_res)];
4258 }
4259
4260 static std::map<std::string, int> VkPipelineShaderStageCreateFlagBits_map = {
4261 std::make_pair("VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT", 1UL << 0),
4262 std::make_pair("VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT", 1UL << 1),
4263 std::make_pair("VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR", 1UL << 3),
4264 };
parse_VkPipelineShaderStageCreateFlagBits(const char * s,Json::Value & obj,VkPipelineShaderStageCreateFlagBits & o)4265 static void parse_VkPipelineShaderStageCreateFlagBits(const char *s, Json::Value &obj,
4266 VkPipelineShaderStageCreateFlagBits &o)
4267 {
4268 std::string _res = obj.asString();
4269 o = (VkPipelineShaderStageCreateFlagBits)VkPipelineShaderStageCreateFlagBits_map[std::string(_res)];
4270 }
4271
4272 static std::map<std::string, int> VkShaderStageFlagBits_map = {
4273 std::make_pair("VK_SHADER_STAGE_VERTEX_BIT", 1UL << 0),
4274 std::make_pair("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", 1UL << 1),
4275 std::make_pair("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", 1UL << 2),
4276 std::make_pair("VK_SHADER_STAGE_GEOMETRY_BIT", 1UL << 3),
4277 std::make_pair("VK_SHADER_STAGE_FRAGMENT_BIT", 1UL << 4),
4278 std::make_pair("VK_SHADER_STAGE_COMPUTE_BIT", 1UL << 5),
4279 std::make_pair("VK_SHADER_STAGE_ALL_GRAPHICS", 0x0000001F),
4280 std::make_pair("VK_SHADER_STAGE_ALL", 0x7FFFFFFF),
4281 std::make_pair("VK_SHADER_STAGE_RAYGEN_BIT_KHR", 1UL << 8),
4282 std::make_pair("VK_SHADER_STAGE_ANY_HIT_BIT_KHR", 1UL << 9),
4283 std::make_pair("VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR", 1UL << 10),
4284 std::make_pair("VK_SHADER_STAGE_MISS_BIT_KHR", 1UL << 11),
4285 std::make_pair("VK_SHADER_STAGE_INTERSECTION_BIT_KHR", 1UL << 12),
4286 std::make_pair("VK_SHADER_STAGE_CALLABLE_BIT_KHR", 1UL << 13),
4287 std::make_pair("VK_SHADER_STAGE_TASK_BIT_NV", 1UL << 6),
4288 std::make_pair("VK_SHADER_STAGE_MESH_BIT_NV", 1UL << 7),
4289 std::make_pair("VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI", 1UL << 14),
4290 };
parse_VkShaderStageFlagBits(const char * s,Json::Value & obj,VkShaderStageFlagBits & o)4291 static void parse_VkShaderStageFlagBits(const char *s, Json::Value &obj, VkShaderStageFlagBits &o)
4292 {
4293 std::string _res = obj.asString();
4294 o = (VkShaderStageFlagBits)VkShaderStageFlagBits_map[std::string(_res)];
4295 }
4296
4297 static std::map<std::string, int> VkCullModeFlagBits_map = {
4298 std::make_pair("VK_CULL_MODE_NONE", 0),
4299 std::make_pair("VK_CULL_MODE_FRONT_BIT", 1UL << 0),
4300 std::make_pair("VK_CULL_MODE_BACK_BIT", 1UL << 1),
4301 std::make_pair("VK_CULL_MODE_FRONT_AND_BACK", 0x00000003),
4302 };
parse_VkCullModeFlagBits(const char * s,Json::Value & obj,VkCullModeFlagBits & o)4303 static void parse_VkCullModeFlagBits(const char *s, Json::Value &obj, VkCullModeFlagBits &o)
4304 {
4305 std::string _res = obj.asString();
4306 o = (VkCullModeFlagBits)VkCullModeFlagBits_map[std::string(_res)];
4307 }
4308
4309 static std::map<std::string, int> VkDynamicState_map = {
4310 std::make_pair("VK_DYNAMIC_STATE_VIEWPORT", 0),
4311 std::make_pair("VK_DYNAMIC_STATE_SCISSOR", 1),
4312 std::make_pair("VK_DYNAMIC_STATE_LINE_WIDTH", 2),
4313 std::make_pair("VK_DYNAMIC_STATE_DEPTH_BIAS", 3),
4314 std::make_pair("VK_DYNAMIC_STATE_BLEND_CONSTANTS", 4),
4315 std::make_pair("VK_DYNAMIC_STATE_DEPTH_BOUNDS", 5),
4316 std::make_pair("VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK", 6),
4317 std::make_pair("VK_DYNAMIC_STATE_STENCIL_WRITE_MASK", 7),
4318 std::make_pair("VK_DYNAMIC_STATE_STENCIL_REFERENCE", 8),
4319 std::make_pair("VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV", 1000087000),
4320 std::make_pair("VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT", 1000099000),
4321 std::make_pair("VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT", 1000143000),
4322 std::make_pair("VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR", 1000347000),
4323 std::make_pair("VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV", 1000164004),
4324 std::make_pair("VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV", 1000164006),
4325 std::make_pair("VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV", 1000205001),
4326 std::make_pair("VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR", 1000226000),
4327 std::make_pair("VK_DYNAMIC_STATE_LINE_STIPPLE_EXT", 1000259000),
4328 std::make_pair("VK_DYNAMIC_STATE_CULL_MODE_EXT", 1000267000),
4329 std::make_pair("VK_DYNAMIC_STATE_FRONT_FACE_EXT", 1000267001),
4330 std::make_pair("VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT", 1000267002),
4331 std::make_pair("VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT", 1000267003),
4332 std::make_pair("VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT", 1000267004),
4333 std::make_pair("VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT", 1000267005),
4334 std::make_pair("VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT", 1000267006),
4335 std::make_pair("VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT", 1000267007),
4336 std::make_pair("VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT", 1000267008),
4337 std::make_pair("VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT", 1000267009),
4338 std::make_pair("VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT", 1000267010),
4339 std::make_pair("VK_DYNAMIC_STATE_STENCIL_OP_EXT", 1000267011),
4340 std::make_pair("VK_DYNAMIC_STATE_VERTEX_INPUT_EXT", 1000352000),
4341 std::make_pair("VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT", 1000377000),
4342 std::make_pair("VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT", 1000377001),
4343 std::make_pair("VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT", 1000377002),
4344 std::make_pair("VK_DYNAMIC_STATE_LOGIC_OP_EXT", 1000377003),
4345 std::make_pair("VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT", 1000377004),
4346 std::make_pair("VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT", 1000381000),
4347 };
parse_VkDynamicState(const char * s,Json::Value & obj,VkDynamicState & o)4348 static void parse_VkDynamicState(const char *s, Json::Value &obj, VkDynamicState &o)
4349 {
4350 std::string _res = obj.asString();
4351 o = (VkDynamicState)VkDynamicState_map[std::string(_res)];
4352 }
4353
4354 static std::map<std::string, int> VkFrontFace_map = {
4355 std::make_pair("VK_FRONT_FACE_COUNTER_CLOCKWISE", 0),
4356 std::make_pair("VK_FRONT_FACE_CLOCKWISE", 1),
4357 };
parse_VkFrontFace(const char * s,Json::Value & obj,VkFrontFace & o)4358 static void parse_VkFrontFace(const char *s, Json::Value &obj, VkFrontFace &o)
4359 {
4360 std::string _res = obj.asString();
4361 o = (VkFrontFace)VkFrontFace_map[std::string(_res)];
4362 }
4363
4364 static std::map<std::string, int> VkVertexInputRate_map = {
4365 std::make_pair("VK_VERTEX_INPUT_RATE_VERTEX", 0),
4366 std::make_pair("VK_VERTEX_INPUT_RATE_INSTANCE", 1),
4367 };
parse_VkVertexInputRate(const char * s,Json::Value & obj,VkVertexInputRate & o)4368 static void parse_VkVertexInputRate(const char *s, Json::Value &obj, VkVertexInputRate &o)
4369 {
4370 std::string _res = obj.asString();
4371 o = (VkVertexInputRate)VkVertexInputRate_map[std::string(_res)];
4372 }
4373
4374 static std::map<std::string, int> VkPrimitiveTopology_map = {
4375 std::make_pair("VK_PRIMITIVE_TOPOLOGY_POINT_LIST", 0),
4376 std::make_pair("VK_PRIMITIVE_TOPOLOGY_LINE_LIST", 1),
4377 std::make_pair("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP", 2),
4378 std::make_pair("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST", 3),
4379 std::make_pair("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP", 4),
4380 std::make_pair("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN", 5),
4381 std::make_pair("VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY", 6),
4382 std::make_pair("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY", 7),
4383 std::make_pair("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY", 8),
4384 std::make_pair("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", 9),
4385 std::make_pair("VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", 10),
4386 };
parse_VkPrimitiveTopology(const char * s,Json::Value & obj,VkPrimitiveTopology & o)4387 static void parse_VkPrimitiveTopology(const char *s, Json::Value &obj, VkPrimitiveTopology &o)
4388 {
4389 std::string _res = obj.asString();
4390 o = (VkPrimitiveTopology)VkPrimitiveTopology_map[std::string(_res)];
4391 }
4392
4393 static std::map<std::string, int> VkPolygonMode_map = {
4394 std::make_pair("VK_POLYGON_MODE_FILL", 0),
4395 std::make_pair("VK_POLYGON_MODE_LINE", 1),
4396 std::make_pair("VK_POLYGON_MODE_POINT", 2),
4397 std::make_pair("VK_POLYGON_MODE_FILL_RECTANGLE_NV", 1000153000),
4398 };
parse_VkPolygonMode(const char * s,Json::Value & obj,VkPolygonMode & o)4399 static void parse_VkPolygonMode(const char *s, Json::Value &obj, VkPolygonMode &o)
4400 {
4401 std::string _res = obj.asString();
4402 o = (VkPolygonMode)VkPolygonMode_map[std::string(_res)];
4403 }
4404
4405 static std::map<std::string, int> VkStencilOp_map = {
4406 std::make_pair("VK_STENCIL_OP_KEEP", 0),
4407 std::make_pair("VK_STENCIL_OP_ZERO", 1),
4408 std::make_pair("VK_STENCIL_OP_REPLACE", 2),
4409 std::make_pair("VK_STENCIL_OP_INCREMENT_AND_CLAMP", 3),
4410 std::make_pair("VK_STENCIL_OP_DECREMENT_AND_CLAMP", 4),
4411 std::make_pair("VK_STENCIL_OP_INVERT", 5),
4412 std::make_pair("VK_STENCIL_OP_INCREMENT_AND_WRAP", 6),
4413 std::make_pair("VK_STENCIL_OP_DECREMENT_AND_WRAP", 7),
4414 };
parse_VkStencilOp(const char * s,Json::Value & obj,VkStencilOp & o)4415 static void parse_VkStencilOp(const char *s, Json::Value &obj, VkStencilOp &o)
4416 {
4417 std::string _res = obj.asString();
4418 o = (VkStencilOp)VkStencilOp_map[std::string(_res)];
4419 }
4420
4421 static std::map<std::string, int> VkLogicOp_map = {
4422 std::make_pair("VK_LOGIC_OP_CLEAR", 0),
4423 std::make_pair("VK_LOGIC_OP_AND", 1),
4424 std::make_pair("VK_LOGIC_OP_AND_REVERSE", 2),
4425 std::make_pair("VK_LOGIC_OP_COPY", 3),
4426 std::make_pair("VK_LOGIC_OP_AND_INVERTED", 4),
4427 std::make_pair("VK_LOGIC_OP_NO_OP", 5),
4428 std::make_pair("VK_LOGIC_OP_XOR", 6),
4429 std::make_pair("VK_LOGIC_OP_OR", 7),
4430 std::make_pair("VK_LOGIC_OP_NOR", 8),
4431 std::make_pair("VK_LOGIC_OP_EQUIVALENT", 9),
4432 std::make_pair("VK_LOGIC_OP_INVERT", 10),
4433 std::make_pair("VK_LOGIC_OP_OR_REVERSE", 11),
4434 std::make_pair("VK_LOGIC_OP_COPY_INVERTED", 12),
4435 std::make_pair("VK_LOGIC_OP_OR_INVERTED", 13),
4436 std::make_pair("VK_LOGIC_OP_NAND", 14),
4437 std::make_pair("VK_LOGIC_OP_SET", 15),
4438 };
parse_VkLogicOp(const char * s,Json::Value & obj,VkLogicOp & o)4439 static void parse_VkLogicOp(const char *s, Json::Value &obj, VkLogicOp &o)
4440 {
4441 std::string _res = obj.asString();
4442 o = (VkLogicOp)VkLogicOp_map[std::string(_res)];
4443 }
4444
4445 static std::map<std::string, int> VkBorderColor_map = {
4446 std::make_pair("VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK", 0),
4447 std::make_pair("VK_BORDER_COLOR_INT_TRANSPARENT_BLACK", 1),
4448 std::make_pair("VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK", 2),
4449 std::make_pair("VK_BORDER_COLOR_INT_OPAQUE_BLACK", 3),
4450 std::make_pair("VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE", 4),
4451 std::make_pair("VK_BORDER_COLOR_INT_OPAQUE_WHITE", 5),
4452 std::make_pair("VK_BORDER_COLOR_FLOAT_CUSTOM_EXT", 1000287003),
4453 std::make_pair("VK_BORDER_COLOR_INT_CUSTOM_EXT", 1000287004),
4454 };
parse_VkBorderColor(const char * s,Json::Value & obj,VkBorderColor & o)4455 static void parse_VkBorderColor(const char *s, Json::Value &obj, VkBorderColor &o)
4456 {
4457 std::string _res = obj.asString();
4458 o = (VkBorderColor)VkBorderColor_map[std::string(_res)];
4459 }
4460
4461 static std::map<std::string, int> VkFilter_map = {
4462 std::make_pair("VK_FILTER_NEAREST", 0),
4463 std::make_pair("VK_FILTER_LINEAR", 1),
4464 std::make_pair("VK_FILTER_CUBIC_IMG", 1000015000),
4465 };
parse_VkFilter(const char * s,Json::Value & obj,VkFilter & o)4466 static void parse_VkFilter(const char *s, Json::Value &obj, VkFilter &o)
4467 {
4468 std::string _res = obj.asString();
4469 o = (VkFilter)VkFilter_map[std::string(_res)];
4470 }
4471
4472 static std::map<std::string, int> VkSamplerAddressMode_map = {
4473 std::make_pair("VK_SAMPLER_ADDRESS_MODE_REPEAT", 0),
4474 std::make_pair("VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT", 1),
4475 std::make_pair("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", 2),
4476 std::make_pair("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", 3),
4477 std::make_pair("VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", 4),
4478 std::make_pair("VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", 4),
4479 };
parse_VkSamplerAddressMode(const char * s,Json::Value & obj,VkSamplerAddressMode & o)4480 static void parse_VkSamplerAddressMode(const char *s, Json::Value &obj, VkSamplerAddressMode &o)
4481 {
4482 std::string _res = obj.asString();
4483 o = (VkSamplerAddressMode)VkSamplerAddressMode_map[std::string(_res)];
4484 }
4485
4486 static std::map<std::string, int> VkSamplerCreateFlagBits_map = {
4487 std::make_pair("VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT", 1UL << 0),
4488 std::make_pair("VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT", 1UL << 1),
4489 std::make_pair("VK_SAMPLER_CREATE_RESERVED_3_BIT_AMD", 1UL << 3),
4490 std::make_pair("VK_SAMPLER_CREATE_RESERVED_2_BIT_EXT", 1UL << 2),
4491 };
parse_VkSamplerCreateFlagBits(const char * s,Json::Value & obj,VkSamplerCreateFlagBits & o)4492 static void parse_VkSamplerCreateFlagBits(const char *s, Json::Value &obj, VkSamplerCreateFlagBits &o)
4493 {
4494 std::string _res = obj.asString();
4495 o = (VkSamplerCreateFlagBits)VkSamplerCreateFlagBits_map[std::string(_res)];
4496 }
4497
4498 static std::map<std::string, int> VkSamplerMipmapMode_map = {
4499 std::make_pair("VK_SAMPLER_MIPMAP_MODE_NEAREST", 0),
4500 std::make_pair("VK_SAMPLER_MIPMAP_MODE_LINEAR", 1),
4501 };
parse_VkSamplerMipmapMode(const char * s,Json::Value & obj,VkSamplerMipmapMode & o)4502 static void parse_VkSamplerMipmapMode(const char *s, Json::Value &obj, VkSamplerMipmapMode &o)
4503 {
4504 std::string _res = obj.asString();
4505 o = (VkSamplerMipmapMode)VkSamplerMipmapMode_map[std::string(_res)];
4506 }
4507
4508 static std::map<std::string, int> VkDescriptorPoolCreateFlagBits_map = {
4509 std::make_pair("VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT", 1UL << 0),
4510 std::make_pair("VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT", 1UL << 1),
4511 std::make_pair("VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE", 1UL << 2),
4512 };
parse_VkDescriptorPoolCreateFlagBits(const char * s,Json::Value & obj,VkDescriptorPoolCreateFlagBits & o)4513 static void parse_VkDescriptorPoolCreateFlagBits(const char *s, Json::Value &obj, VkDescriptorPoolCreateFlagBits &o)
4514 {
4515 std::string _res = obj.asString();
4516 o = (VkDescriptorPoolCreateFlagBits)VkDescriptorPoolCreateFlagBits_map[std::string(_res)];
4517 }
4518
4519 static std::map<std::string, int> VkDescriptorType_map = {
4520 std::make_pair("VK_DESCRIPTOR_TYPE_SAMPLER", 0),
4521 std::make_pair("VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", 1),
4522 std::make_pair("VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE", 2),
4523 std::make_pair("VK_DESCRIPTOR_TYPE_STORAGE_IMAGE", 3),
4524 std::make_pair("VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER", 4),
4525 std::make_pair("VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER", 5),
4526 std::make_pair("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER", 6),
4527 std::make_pair("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER", 7),
4528 std::make_pair("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC", 8),
4529 std::make_pair("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", 9),
4530 std::make_pair("VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT", 10),
4531 std::make_pair("VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT", 1000138000),
4532 std::make_pair("VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR", 1000150000),
4533 std::make_pair("VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV", 1000165000),
4534 std::make_pair("VK_DESCRIPTOR_TYPE_MUTABLE_VALVE", 1000351000),
4535 };
parse_VkDescriptorType(const char * s,Json::Value & obj,VkDescriptorType & o)4536 static void parse_VkDescriptorType(const char *s, Json::Value &obj, VkDescriptorType &o)
4537 {
4538 std::string _res = obj.asString();
4539 o = (VkDescriptorType)VkDescriptorType_map[std::string(_res)];
4540 }
4541
4542 static std::map<std::string, int> VkDescriptorSetLayoutCreateFlagBits_map = {
4543 std::make_pair("VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT", 1UL << 1),
4544 std::make_pair("VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR", 1UL << 0),
4545 std::make_pair("VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_4_BIT_AMD", 1UL << 4),
4546 std::make_pair("VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD", 1UL << 3),
4547 std::make_pair("VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE", 1UL << 2),
4548 };
parse_VkDescriptorSetLayoutCreateFlagBits(const char * s,Json::Value & obj,VkDescriptorSetLayoutCreateFlagBits & o)4549 static void parse_VkDescriptorSetLayoutCreateFlagBits(const char *s, Json::Value &obj,
4550 VkDescriptorSetLayoutCreateFlagBits &o)
4551 {
4552 std::string _res = obj.asString();
4553 o = (VkDescriptorSetLayoutCreateFlagBits)VkDescriptorSetLayoutCreateFlagBits_map[std::string(_res)];
4554 }
4555
4556 static std::map<std::string, int> VkAttachmentDescriptionFlagBits_map = {
4557 std::make_pair("VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT", 1UL << 0),
4558 };
parse_VkAttachmentDescriptionFlagBits(const char * s,Json::Value & obj,VkAttachmentDescriptionFlagBits & o)4559 static void parse_VkAttachmentDescriptionFlagBits(const char *s, Json::Value &obj, VkAttachmentDescriptionFlagBits &o)
4560 {
4561 std::string _res = obj.asString();
4562 o = (VkAttachmentDescriptionFlagBits)VkAttachmentDescriptionFlagBits_map[std::string(_res)];
4563 }
4564
4565 static std::map<std::string, int> VkAttachmentLoadOp_map = {
4566 std::make_pair("VK_ATTACHMENT_LOAD_OP_LOAD", 0),
4567 std::make_pair("VK_ATTACHMENT_LOAD_OP_CLEAR", 1),
4568 std::make_pair("VK_ATTACHMENT_LOAD_OP_DONT_CARE", 2),
4569 std::make_pair("VK_ATTACHMENT_LOAD_OP_NONE_EXT", 1000400000),
4570 };
parse_VkAttachmentLoadOp(const char * s,Json::Value & obj,VkAttachmentLoadOp & o)4571 static void parse_VkAttachmentLoadOp(const char *s, Json::Value &obj, VkAttachmentLoadOp &o)
4572 {
4573 std::string _res = obj.asString();
4574 o = (VkAttachmentLoadOp)VkAttachmentLoadOp_map[std::string(_res)];
4575 }
4576
4577 static std::map<std::string, int> VkAttachmentStoreOp_map = {
4578 std::make_pair("VK_ATTACHMENT_STORE_OP_STORE", 0),
4579 std::make_pair("VK_ATTACHMENT_STORE_OP_DONT_CARE", 1),
4580 std::make_pair("VK_ATTACHMENT_STORE_OP_NONE_KHR", 1000301000),
4581 };
parse_VkAttachmentStoreOp(const char * s,Json::Value & obj,VkAttachmentStoreOp & o)4582 static void parse_VkAttachmentStoreOp(const char *s, Json::Value &obj, VkAttachmentStoreOp &o)
4583 {
4584 std::string _res = obj.asString();
4585 o = (VkAttachmentStoreOp)VkAttachmentStoreOp_map[std::string(_res)];
4586 }
4587
4588 static std::map<std::string, int> VkDependencyFlagBits_map = {
4589 std::make_pair("VK_DEPENDENCY_BY_REGION_BIT", 1UL << 0),
4590 std::make_pair("VK_DEPENDENCY_DEVICE_GROUP_BIT", 1UL << 2),
4591 std::make_pair("VK_DEPENDENCY_VIEW_LOCAL_BIT", 1UL << 1),
4592 };
parse_VkDependencyFlagBits(const char * s,Json::Value & obj,VkDependencyFlagBits & o)4593 static void parse_VkDependencyFlagBits(const char *s, Json::Value &obj, VkDependencyFlagBits &o)
4594 {
4595 std::string _res = obj.asString();
4596 o = (VkDependencyFlagBits)VkDependencyFlagBits_map[std::string(_res)];
4597 }
4598
4599 static std::map<std::string, int> VkFramebufferCreateFlagBits_map = {
4600 std::make_pair("VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT", 1UL << 0),
4601 };
parse_VkFramebufferCreateFlagBits(const char * s,Json::Value & obj,VkFramebufferCreateFlagBits & o)4602 static void parse_VkFramebufferCreateFlagBits(const char *s, Json::Value &obj, VkFramebufferCreateFlagBits &o)
4603 {
4604 std::string _res = obj.asString();
4605 o = (VkFramebufferCreateFlagBits)VkFramebufferCreateFlagBits_map[std::string(_res)];
4606 }
4607
4608 static std::map<std::string, int> VkPipelineBindPoint_map = {
4609 std::make_pair("VK_PIPELINE_BIND_POINT_GRAPHICS", 0),
4610 std::make_pair("VK_PIPELINE_BIND_POINT_COMPUTE", 1),
4611 std::make_pair("VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR", 1000165000),
4612 std::make_pair("VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI", 1000369003),
4613 };
parse_VkPipelineBindPoint(const char * s,Json::Value & obj,VkPipelineBindPoint & o)4614 static void parse_VkPipelineBindPoint(const char *s, Json::Value &obj, VkPipelineBindPoint &o)
4615 {
4616 std::string _res = obj.asString();
4617 o = (VkPipelineBindPoint)VkPipelineBindPoint_map[std::string(_res)];
4618 }
4619
4620 static std::map<std::string, int> VkRenderPassCreateFlagBits_map = {
4621 std::make_pair("VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR", 1UL << 0),
4622 std::make_pair("VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM", 1UL << 1),
4623 };
parse_VkRenderPassCreateFlagBits(const char * s,Json::Value & obj,VkRenderPassCreateFlagBits & o)4624 static void parse_VkRenderPassCreateFlagBits(const char *s, Json::Value &obj, VkRenderPassCreateFlagBits &o)
4625 {
4626 std::string _res = obj.asString();
4627 o = (VkRenderPassCreateFlagBits)VkRenderPassCreateFlagBits_map[std::string(_res)];
4628 }
4629
4630 static std::map<std::string, int> VkSubpassDescriptionFlagBits_map = {
4631 std::make_pair("VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX", 1UL << 0),
4632 std::make_pair("VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX", 1UL << 1),
4633 std::make_pair("VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM", 1UL << 2),
4634 std::make_pair("VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM", 1UL << 3),
4635 std::make_pair("VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM", 1UL << 4),
4636 std::make_pair("VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM", 1UL << 5),
4637 std::make_pair("VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM", 1UL << 6),
4638 };
parse_VkSubpassDescriptionFlagBits(const char * s,Json::Value & obj,VkSubpassDescriptionFlagBits & o)4639 static void parse_VkSubpassDescriptionFlagBits(const char *s, Json::Value &obj, VkSubpassDescriptionFlagBits &o)
4640 {
4641 std::string _res = obj.asString();
4642 o = (VkSubpassDescriptionFlagBits)VkSubpassDescriptionFlagBits_map[std::string(_res)];
4643 }
4644
4645 static std::map<std::string, int> VkCommandPoolCreateFlagBits_map = {
4646 std::make_pair("VK_COMMAND_POOL_CREATE_TRANSIENT_BIT", 1UL << 0),
4647 std::make_pair("VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT", 1UL << 1),
4648 std::make_pair("VK_COMMAND_POOL_CREATE_PROTECTED_BIT", 1UL << 2),
4649 };
parse_VkCommandPoolCreateFlagBits(const char * s,Json::Value & obj,VkCommandPoolCreateFlagBits & o)4650 static void parse_VkCommandPoolCreateFlagBits(const char *s, Json::Value &obj, VkCommandPoolCreateFlagBits &o)
4651 {
4652 std::string _res = obj.asString();
4653 o = (VkCommandPoolCreateFlagBits)VkCommandPoolCreateFlagBits_map[std::string(_res)];
4654 }
4655
4656 static std::map<std::string, int> VkCommandPoolResetFlagBits_map = {
4657 std::make_pair("VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI", 1UL << 1),
4658 };
parse_VkCommandPoolResetFlagBits(const char * s,Json::Value & obj,VkCommandPoolResetFlagBits & o)4659 static void parse_VkCommandPoolResetFlagBits(const char *s, Json::Value &obj, VkCommandPoolResetFlagBits &o)
4660 {
4661 std::string _res = obj.asString();
4662 o = (VkCommandPoolResetFlagBits)VkCommandPoolResetFlagBits_map[std::string(_res)];
4663 }
4664
4665 static std::map<std::string, int> VkCommandBufferLevel_map = {
4666 std::make_pair("VK_COMMAND_BUFFER_LEVEL_PRIMARY", 0),
4667 std::make_pair("VK_COMMAND_BUFFER_LEVEL_SECONDARY", 1),
4668 };
parse_VkCommandBufferLevel(const char * s,Json::Value & obj,VkCommandBufferLevel & o)4669 static void parse_VkCommandBufferLevel(const char *s, Json::Value &obj, VkCommandBufferLevel &o)
4670 {
4671 std::string _res = obj.asString();
4672 o = (VkCommandBufferLevel)VkCommandBufferLevel_map[std::string(_res)];
4673 }
4674
4675 static std::map<std::string, int> VkCommandBufferUsageFlagBits_map = {
4676 std::make_pair("VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT", 1UL << 0),
4677 std::make_pair("VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT", 1UL << 1),
4678 std::make_pair("VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT", 1UL << 2),
4679 };
parse_VkCommandBufferUsageFlagBits(const char * s,Json::Value & obj,VkCommandBufferUsageFlagBits & o)4680 static void parse_VkCommandBufferUsageFlagBits(const char *s, Json::Value &obj, VkCommandBufferUsageFlagBits &o)
4681 {
4682 std::string _res = obj.asString();
4683 o = (VkCommandBufferUsageFlagBits)VkCommandBufferUsageFlagBits_map[std::string(_res)];
4684 }
4685
4686 static std::map<std::string, int> VkQueryControlFlagBits_map = {
4687 std::make_pair("VK_QUERY_CONTROL_PRECISE_BIT", 1UL << 0),
4688 };
parse_VkQueryControlFlagBits(const char * s,Json::Value & obj,VkQueryControlFlagBits & o)4689 static void parse_VkQueryControlFlagBits(const char *s, Json::Value &obj, VkQueryControlFlagBits &o)
4690 {
4691 std::string _res = obj.asString();
4692 o = (VkQueryControlFlagBits)VkQueryControlFlagBits_map[std::string(_res)];
4693 }
4694
4695 static std::map<std::string, int> VkCommandBufferResetFlagBits_map = {
4696 std::make_pair("VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT", 1UL << 0),
4697 };
parse_VkCommandBufferResetFlagBits(const char * s,Json::Value & obj,VkCommandBufferResetFlagBits & o)4698 static void parse_VkCommandBufferResetFlagBits(const char *s, Json::Value &obj, VkCommandBufferResetFlagBits &o)
4699 {
4700 std::string _res = obj.asString();
4701 o = (VkCommandBufferResetFlagBits)VkCommandBufferResetFlagBits_map[std::string(_res)];
4702 }
4703
4704 static std::map<std::string, int> VkIndexType_map = {
4705 std::make_pair("VK_INDEX_TYPE_UINT16", 0),
4706 std::make_pair("VK_INDEX_TYPE_UINT32", 1),
4707 std::make_pair("VK_INDEX_TYPE_NONE_KHR", 1000165000),
4708 std::make_pair("VK_INDEX_TYPE_UINT8_EXT", 1000265000),
4709 };
parse_VkIndexType(const char * s,Json::Value & obj,VkIndexType & o)4710 static void parse_VkIndexType(const char *s, Json::Value &obj, VkIndexType &o)
4711 {
4712 std::string _res = obj.asString();
4713 o = (VkIndexType)VkIndexType_map[std::string(_res)];
4714 }
4715
4716 static std::map<std::string, int> VkStencilFaceFlagBits_map = {
4717 std::make_pair("VK_STENCIL_FACE_FRONT_BIT", 1UL << 0),
4718 std::make_pair("VK_STENCIL_FACE_BACK_BIT", 1UL << 1),
4719 std::make_pair("VK_STENCIL_FACE_FRONT_AND_BACK", 0x00000003),
4720 };
parse_VkStencilFaceFlagBits(const char * s,Json::Value & obj,VkStencilFaceFlagBits & o)4721 static void parse_VkStencilFaceFlagBits(const char *s, Json::Value &obj, VkStencilFaceFlagBits &o)
4722 {
4723 std::string _res = obj.asString();
4724 o = (VkStencilFaceFlagBits)VkStencilFaceFlagBits_map[std::string(_res)];
4725 }
4726
4727 static std::map<std::string, int> VkSubpassContents_map = {
4728 std::make_pair("VK_SUBPASS_CONTENTS_INLINE", 0),
4729 std::make_pair("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS", 1),
4730 };
parse_VkSubpassContents(const char * s,Json::Value & obj,VkSubpassContents & o)4731 static void parse_VkSubpassContents(const char *s, Json::Value &obj, VkSubpassContents &o)
4732 {
4733 std::string _res = obj.asString();
4734 o = (VkSubpassContents)VkSubpassContents_map[std::string(_res)];
4735 }
4736
parse_VkAccessFlags(const char * s,Json::Value & obj,VkAccessFlags & o)4737 static void parse_VkAccessFlags(const char *s, Json::Value &obj, VkAccessFlags &o)
4738 {
4739 o = (VkAccessFlags)0;
4740 std::string _res = obj.asString();
4741 std::vector<std::string> bitmasks;
4742 std::istringstream inputStream(_res);
4743 std::string tempStr;
4744 while (getline(inputStream, tempStr, '|'))
4745 {
4746 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4747 bitmasks.push_back(tempStr);
4748 }
4749 for (auto &it : bitmasks)
4750 {
4751 o |= (VkAccessFlagBits)VkAccessFlagBits_map[it];
4752 }
4753 }
4754
parse_VkImageAspectFlags(const char * s,Json::Value & obj,VkImageAspectFlags & o)4755 static void parse_VkImageAspectFlags(const char *s, Json::Value &obj, VkImageAspectFlags &o)
4756 {
4757 o = (VkImageAspectFlags)0;
4758 std::string _res = obj.asString();
4759 std::vector<std::string> bitmasks;
4760 std::istringstream inputStream(_res);
4761 std::string tempStr;
4762 while (getline(inputStream, tempStr, '|'))
4763 {
4764 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4765 bitmasks.push_back(tempStr);
4766 }
4767 for (auto &it : bitmasks)
4768 {
4769 o |= (VkImageAspectFlagBits)VkImageAspectFlagBits_map[it];
4770 }
4771 }
4772
parse_VkFormatFeatureFlags(const char * s,Json::Value & obj,VkFormatFeatureFlags & o)4773 static void parse_VkFormatFeatureFlags(const char *s, Json::Value &obj, VkFormatFeatureFlags &o)
4774 {
4775 o = (VkFormatFeatureFlags)0;
4776 std::string _res = obj.asString();
4777 std::vector<std::string> bitmasks;
4778 std::istringstream inputStream(_res);
4779 std::string tempStr;
4780 while (getline(inputStream, tempStr, '|'))
4781 {
4782 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4783 bitmasks.push_back(tempStr);
4784 }
4785 for (auto &it : bitmasks)
4786 {
4787 o |= (VkFormatFeatureFlagBits)VkFormatFeatureFlagBits_map[it];
4788 }
4789 }
4790
parse_VkImageCreateFlags(const char * s,Json::Value & obj,VkImageCreateFlags & o)4791 static void parse_VkImageCreateFlags(const char *s, Json::Value &obj, VkImageCreateFlags &o)
4792 {
4793 o = (VkImageCreateFlags)0;
4794 std::string _res = obj.asString();
4795 std::vector<std::string> bitmasks;
4796 std::istringstream inputStream(_res);
4797 std::string tempStr;
4798 while (getline(inputStream, tempStr, '|'))
4799 {
4800 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4801 bitmasks.push_back(tempStr);
4802 }
4803 for (auto &it : bitmasks)
4804 {
4805 o |= (VkImageCreateFlagBits)VkImageCreateFlagBits_map[it];
4806 }
4807 }
4808
parse_VkSampleCountFlags(const char * s,Json::Value & obj,VkSampleCountFlags & o)4809 static void parse_VkSampleCountFlags(const char *s, Json::Value &obj, VkSampleCountFlags &o)
4810 {
4811 o = (VkSampleCountFlags)0;
4812 std::string _res = obj.asString();
4813 std::vector<std::string> bitmasks;
4814 std::istringstream inputStream(_res);
4815 std::string tempStr;
4816 while (getline(inputStream, tempStr, '|'))
4817 {
4818 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4819 bitmasks.push_back(tempStr);
4820 }
4821 for (auto &it : bitmasks)
4822 {
4823 o |= (VkSampleCountFlagBits)VkSampleCountFlagBits_map[it];
4824 }
4825 }
4826
parse_VkImageUsageFlags(const char * s,Json::Value & obj,VkImageUsageFlags & o)4827 static void parse_VkImageUsageFlags(const char *s, Json::Value &obj, VkImageUsageFlags &o)
4828 {
4829 o = (VkImageUsageFlags)0;
4830 std::string _res = obj.asString();
4831 std::vector<std::string> bitmasks;
4832 std::istringstream inputStream(_res);
4833 std::string tempStr;
4834 while (getline(inputStream, tempStr, '|'))
4835 {
4836 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4837 bitmasks.push_back(tempStr);
4838 }
4839 for (auto &it : bitmasks)
4840 {
4841 o |= (VkImageUsageFlagBits)VkImageUsageFlagBits_map[it];
4842 }
4843 }
4844
parse_VkInstanceCreateFlags(const char * s,Json::Value & obj,VkInstanceCreateFlags & o)4845 static void parse_VkInstanceCreateFlags(const char *s, Json::Value &obj, VkInstanceCreateFlags &o)
4846 {
4847 if (obj.isString())
4848 {
4849 std::string _res = obj.asString();
4850 sscanf(_res.c_str(), "%u", &o);
4851 }
4852 else
4853 {
4854 o = obj.asUInt();
4855 }
4856 }
4857
parse_VkMemoryHeapFlags(const char * s,Json::Value & obj,VkMemoryHeapFlags & o)4858 static void parse_VkMemoryHeapFlags(const char *s, Json::Value &obj, VkMemoryHeapFlags &o)
4859 {
4860 o = (VkMemoryHeapFlags)0;
4861 std::string _res = obj.asString();
4862 std::vector<std::string> bitmasks;
4863 std::istringstream inputStream(_res);
4864 std::string tempStr;
4865 while (getline(inputStream, tempStr, '|'))
4866 {
4867 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4868 bitmasks.push_back(tempStr);
4869 }
4870 for (auto &it : bitmasks)
4871 {
4872 o |= (VkMemoryHeapFlagBits)VkMemoryHeapFlagBits_map[it];
4873 }
4874 }
4875
parse_VkMemoryPropertyFlags(const char * s,Json::Value & obj,VkMemoryPropertyFlags & o)4876 static void parse_VkMemoryPropertyFlags(const char *s, Json::Value &obj, VkMemoryPropertyFlags &o)
4877 {
4878 o = (VkMemoryPropertyFlags)0;
4879 std::string _res = obj.asString();
4880 std::vector<std::string> bitmasks;
4881 std::istringstream inputStream(_res);
4882 std::string tempStr;
4883 while (getline(inputStream, tempStr, '|'))
4884 {
4885 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4886 bitmasks.push_back(tempStr);
4887 }
4888 for (auto &it : bitmasks)
4889 {
4890 o |= (VkMemoryPropertyFlagBits)VkMemoryPropertyFlagBits_map[it];
4891 }
4892 }
4893
parse_VkQueueFlags(const char * s,Json::Value & obj,VkQueueFlags & o)4894 static void parse_VkQueueFlags(const char *s, Json::Value &obj, VkQueueFlags &o)
4895 {
4896 o = (VkQueueFlags)0;
4897 std::string _res = obj.asString();
4898 std::vector<std::string> bitmasks;
4899 std::istringstream inputStream(_res);
4900 std::string tempStr;
4901 while (getline(inputStream, tempStr, '|'))
4902 {
4903 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4904 bitmasks.push_back(tempStr);
4905 }
4906 for (auto &it : bitmasks)
4907 {
4908 o |= (VkQueueFlagBits)VkQueueFlagBits_map[it];
4909 }
4910 }
4911
parse_VkDeviceCreateFlags(const char * s,Json::Value & obj,VkDeviceCreateFlags & o)4912 static void parse_VkDeviceCreateFlags(const char *s, Json::Value &obj, VkDeviceCreateFlags &o)
4913 {
4914 if (obj.isString())
4915 {
4916 std::string _res = obj.asString();
4917 sscanf(_res.c_str(), "%u", &o);
4918 }
4919 else
4920 {
4921 o = obj.asUInt();
4922 }
4923 }
4924
parse_VkDeviceQueueCreateFlags(const char * s,Json::Value & obj,VkDeviceQueueCreateFlags & o)4925 static void parse_VkDeviceQueueCreateFlags(const char *s, Json::Value &obj, VkDeviceQueueCreateFlags &o)
4926 {
4927 o = (VkDeviceQueueCreateFlags)0;
4928 std::string _res = obj.asString();
4929 std::vector<std::string> bitmasks;
4930 std::istringstream inputStream(_res);
4931 std::string tempStr;
4932 while (getline(inputStream, tempStr, '|'))
4933 {
4934 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4935 bitmasks.push_back(tempStr);
4936 }
4937 for (auto &it : bitmasks)
4938 {
4939 o |= (VkDeviceQueueCreateFlagBits)VkDeviceQueueCreateFlagBits_map[it];
4940 }
4941 }
4942
parse_VkPipelineStageFlags(const char * s,Json::Value & obj,VkPipelineStageFlags & o)4943 static void parse_VkPipelineStageFlags(const char *s, Json::Value &obj, VkPipelineStageFlags &o)
4944 {
4945 o = (VkPipelineStageFlags)0;
4946 std::string _res = obj.asString();
4947 std::vector<std::string> bitmasks;
4948 std::istringstream inputStream(_res);
4949 std::string tempStr;
4950 while (getline(inputStream, tempStr, '|'))
4951 {
4952 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4953 bitmasks.push_back(tempStr);
4954 }
4955 for (auto &it : bitmasks)
4956 {
4957 o |= (VkPipelineStageFlagBits)VkPipelineStageFlagBits_map[it];
4958 }
4959 }
4960
parse_VkMemoryMapFlags(const char * s,Json::Value & obj,VkMemoryMapFlags & o)4961 static void parse_VkMemoryMapFlags(const char *s, Json::Value &obj, VkMemoryMapFlags &o)
4962 {
4963 if (obj.isString())
4964 {
4965 std::string _res = obj.asString();
4966 sscanf(_res.c_str(), "%u", &o);
4967 }
4968 else
4969 {
4970 o = obj.asUInt();
4971 }
4972 }
4973
parse_VkFenceCreateFlags(const char * s,Json::Value & obj,VkFenceCreateFlags & o)4974 static void parse_VkFenceCreateFlags(const char *s, Json::Value &obj, VkFenceCreateFlags &o)
4975 {
4976 o = (VkFenceCreateFlags)0;
4977 std::string _res = obj.asString();
4978 std::vector<std::string> bitmasks;
4979 std::istringstream inputStream(_res);
4980 std::string tempStr;
4981 while (getline(inputStream, tempStr, '|'))
4982 {
4983 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
4984 bitmasks.push_back(tempStr);
4985 }
4986 for (auto &it : bitmasks)
4987 {
4988 o |= (VkFenceCreateFlagBits)VkFenceCreateFlagBits_map[it];
4989 }
4990 }
4991
parse_VkSemaphoreCreateFlags(const char * s,Json::Value & obj,VkSemaphoreCreateFlags & o)4992 static void parse_VkSemaphoreCreateFlags(const char *s, Json::Value &obj, VkSemaphoreCreateFlags &o)
4993 {
4994 if (obj.isString())
4995 {
4996 std::string _res = obj.asString();
4997 sscanf(_res.c_str(), "%u", &o);
4998 }
4999 else
5000 {
5001 o = obj.asUInt();
5002 }
5003 }
5004
parse_VkEventCreateFlags(const char * s,Json::Value & obj,VkEventCreateFlags & o)5005 static void parse_VkEventCreateFlags(const char *s, Json::Value &obj, VkEventCreateFlags &o)
5006 {
5007 o = (VkEventCreateFlags)0;
5008 std::string _res = obj.asString();
5009 std::vector<std::string> bitmasks;
5010 std::istringstream inputStream(_res);
5011 std::string tempStr;
5012 while (getline(inputStream, tempStr, '|'))
5013 {
5014 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5015 bitmasks.push_back(tempStr);
5016 }
5017 for (auto &it : bitmasks)
5018 {
5019 o |= (VkEventCreateFlagBits)VkEventCreateFlagBits_map[it];
5020 }
5021 }
5022
parse_VkQueryPipelineStatisticFlags(const char * s,Json::Value & obj,VkQueryPipelineStatisticFlags & o)5023 static void parse_VkQueryPipelineStatisticFlags(const char *s, Json::Value &obj, VkQueryPipelineStatisticFlags &o)
5024 {
5025 o = (VkQueryPipelineStatisticFlags)0;
5026 std::string _res = obj.asString();
5027 std::vector<std::string> bitmasks;
5028 std::istringstream inputStream(_res);
5029 std::string tempStr;
5030 while (getline(inputStream, tempStr, '|'))
5031 {
5032 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5033 bitmasks.push_back(tempStr);
5034 }
5035 for (auto &it : bitmasks)
5036 {
5037 o |= (VkQueryPipelineStatisticFlagBits)VkQueryPipelineStatisticFlagBits_map[it];
5038 }
5039 }
5040
parse_VkQueryPoolCreateFlags(const char * s,Json::Value & obj,VkQueryPoolCreateFlags & o)5041 static void parse_VkQueryPoolCreateFlags(const char *s, Json::Value &obj, VkQueryPoolCreateFlags &o)
5042 {
5043 if (obj.isString())
5044 {
5045 std::string _res = obj.asString();
5046 sscanf(_res.c_str(), "%u", &o);
5047 }
5048 else
5049 {
5050 o = obj.asUInt();
5051 }
5052 }
5053
parse_VkQueryResultFlags(const char * s,Json::Value & obj,VkQueryResultFlags & o)5054 static void parse_VkQueryResultFlags(const char *s, Json::Value &obj, VkQueryResultFlags &o)
5055 {
5056 o = (VkQueryResultFlags)0;
5057 std::string _res = obj.asString();
5058 std::vector<std::string> bitmasks;
5059 std::istringstream inputStream(_res);
5060 std::string tempStr;
5061 while (getline(inputStream, tempStr, '|'))
5062 {
5063 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5064 bitmasks.push_back(tempStr);
5065 }
5066 for (auto &it : bitmasks)
5067 {
5068 o |= (VkQueryResultFlagBits)VkQueryResultFlagBits_map[it];
5069 }
5070 }
5071
parse_VkBufferCreateFlags(const char * s,Json::Value & obj,VkBufferCreateFlags & o)5072 static void parse_VkBufferCreateFlags(const char *s, Json::Value &obj, VkBufferCreateFlags &o)
5073 {
5074 o = (VkBufferCreateFlags)0;
5075 std::string _res = obj.asString();
5076 std::vector<std::string> bitmasks;
5077 std::istringstream inputStream(_res);
5078 std::string tempStr;
5079 while (getline(inputStream, tempStr, '|'))
5080 {
5081 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5082 bitmasks.push_back(tempStr);
5083 }
5084 for (auto &it : bitmasks)
5085 {
5086 o |= (VkBufferCreateFlagBits)VkBufferCreateFlagBits_map[it];
5087 }
5088 }
5089
parse_VkBufferUsageFlags(const char * s,Json::Value & obj,VkBufferUsageFlags & o)5090 static void parse_VkBufferUsageFlags(const char *s, Json::Value &obj, VkBufferUsageFlags &o)
5091 {
5092 o = (VkBufferUsageFlags)0;
5093 std::string _res = obj.asString();
5094 std::vector<std::string> bitmasks;
5095 std::istringstream inputStream(_res);
5096 std::string tempStr;
5097 while (getline(inputStream, tempStr, '|'))
5098 {
5099 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5100 bitmasks.push_back(tempStr);
5101 }
5102 for (auto &it : bitmasks)
5103 {
5104 o |= (VkBufferUsageFlagBits)VkBufferUsageFlagBits_map[it];
5105 }
5106 }
5107
parse_VkBufferViewCreateFlags(const char * s,Json::Value & obj,VkBufferViewCreateFlags & o)5108 static void parse_VkBufferViewCreateFlags(const char *s, Json::Value &obj, VkBufferViewCreateFlags &o)
5109 {
5110 if (obj.isString())
5111 {
5112 std::string _res = obj.asString();
5113 sscanf(_res.c_str(), "%u", &o);
5114 }
5115 else
5116 {
5117 o = obj.asUInt();
5118 }
5119 }
5120
parse_VkImageViewCreateFlags(const char * s,Json::Value & obj,VkImageViewCreateFlags & o)5121 static void parse_VkImageViewCreateFlags(const char *s, Json::Value &obj, VkImageViewCreateFlags &o)
5122 {
5123 o = (VkImageViewCreateFlags)0;
5124 std::string _res = obj.asString();
5125 std::vector<std::string> bitmasks;
5126 std::istringstream inputStream(_res);
5127 std::string tempStr;
5128 while (getline(inputStream, tempStr, '|'))
5129 {
5130 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5131 bitmasks.push_back(tempStr);
5132 }
5133 for (auto &it : bitmasks)
5134 {
5135 o |= (VkImageViewCreateFlagBits)VkImageViewCreateFlagBits_map[it];
5136 }
5137 }
5138
parse_VkPipelineCacheCreateFlags(const char * s,Json::Value & obj,VkPipelineCacheCreateFlags & o)5139 static void parse_VkPipelineCacheCreateFlags(const char *s, Json::Value &obj, VkPipelineCacheCreateFlags &o)
5140 {
5141 o = (VkPipelineCacheCreateFlags)0;
5142 std::string _res = obj.asString();
5143 std::vector<std::string> bitmasks;
5144 std::istringstream inputStream(_res);
5145 std::string tempStr;
5146 while (getline(inputStream, tempStr, '|'))
5147 {
5148 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5149 bitmasks.push_back(tempStr);
5150 }
5151 for (auto &it : bitmasks)
5152 {
5153 o |= (VkPipelineCacheCreateFlagBits)VkPipelineCacheCreateFlagBits_map[it];
5154 }
5155 }
5156
parse_VkColorComponentFlags(const char * s,Json::Value & obj,VkColorComponentFlags & o)5157 static void parse_VkColorComponentFlags(const char *s, Json::Value &obj, VkColorComponentFlags &o)
5158 {
5159 o = (VkColorComponentFlags)0;
5160 std::string _res = obj.asString();
5161 std::vector<std::string> bitmasks;
5162 std::istringstream inputStream(_res);
5163 std::string tempStr;
5164 while (getline(inputStream, tempStr, '|'))
5165 {
5166 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5167 bitmasks.push_back(tempStr);
5168 }
5169 for (auto &it : bitmasks)
5170 {
5171 o |= (VkColorComponentFlagBits)VkColorComponentFlagBits_map[it];
5172 }
5173 }
5174
parse_VkPipelineCreateFlags(const char * s,Json::Value & obj,VkPipelineCreateFlags & o)5175 static void parse_VkPipelineCreateFlags(const char *s, Json::Value &obj, VkPipelineCreateFlags &o)
5176 {
5177 o = (VkPipelineCreateFlags)0;
5178 std::string _res = obj.asString();
5179 std::vector<std::string> bitmasks;
5180 std::istringstream inputStream(_res);
5181 std::string tempStr;
5182 while (getline(inputStream, tempStr, '|'))
5183 {
5184 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5185 bitmasks.push_back(tempStr);
5186 }
5187 for (auto &it : bitmasks)
5188 {
5189 o |= (VkPipelineCreateFlagBits)VkPipelineCreateFlagBits_map[it];
5190 }
5191 }
5192
parse_VkPipelineShaderStageCreateFlags(const char * s,Json::Value & obj,VkPipelineShaderStageCreateFlags & o)5193 static void parse_VkPipelineShaderStageCreateFlags(const char *s, Json::Value &obj, VkPipelineShaderStageCreateFlags &o)
5194 {
5195 o = (VkPipelineShaderStageCreateFlags)0;
5196 std::string _res = obj.asString();
5197 std::vector<std::string> bitmasks;
5198 std::istringstream inputStream(_res);
5199 std::string tempStr;
5200 while (getline(inputStream, tempStr, '|'))
5201 {
5202 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5203 bitmasks.push_back(tempStr);
5204 }
5205 for (auto &it : bitmasks)
5206 {
5207 o |= (VkPipelineShaderStageCreateFlagBits)VkPipelineShaderStageCreateFlagBits_map[it];
5208 }
5209 }
5210
parse_VkCullModeFlags(const char * s,Json::Value & obj,VkCullModeFlags & o)5211 static void parse_VkCullModeFlags(const char *s, Json::Value &obj, VkCullModeFlags &o)
5212 {
5213 o = (VkCullModeFlags)0;
5214 std::string _res = obj.asString();
5215 std::vector<std::string> bitmasks;
5216 std::istringstream inputStream(_res);
5217 std::string tempStr;
5218 while (getline(inputStream, tempStr, '|'))
5219 {
5220 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5221 bitmasks.push_back(tempStr);
5222 }
5223 for (auto &it : bitmasks)
5224 {
5225 o |= (VkCullModeFlagBits)VkCullModeFlagBits_map[it];
5226 }
5227 }
5228
parse_VkPipelineVertexInputStateCreateFlags(const char * s,Json::Value & obj,VkPipelineVertexInputStateCreateFlags & o)5229 static void parse_VkPipelineVertexInputStateCreateFlags(const char *s, Json::Value &obj,
5230 VkPipelineVertexInputStateCreateFlags &o)
5231 {
5232 if (obj.isString())
5233 {
5234 std::string _res = obj.asString();
5235 sscanf(_res.c_str(), "%u", &o);
5236 }
5237 else
5238 {
5239 o = obj.asUInt();
5240 }
5241 }
5242
parse_VkPipelineInputAssemblyStateCreateFlags(const char * s,Json::Value & obj,VkPipelineInputAssemblyStateCreateFlags & o)5243 static void parse_VkPipelineInputAssemblyStateCreateFlags(const char *s, Json::Value &obj,
5244 VkPipelineInputAssemblyStateCreateFlags &o)
5245 {
5246 if (obj.isString())
5247 {
5248 std::string _res = obj.asString();
5249 sscanf(_res.c_str(), "%u", &o);
5250 }
5251 else
5252 {
5253 o = obj.asUInt();
5254 }
5255 }
5256
parse_VkPipelineTessellationStateCreateFlags(const char * s,Json::Value & obj,VkPipelineTessellationStateCreateFlags & o)5257 static void parse_VkPipelineTessellationStateCreateFlags(const char *s, Json::Value &obj,
5258 VkPipelineTessellationStateCreateFlags &o)
5259 {
5260 if (obj.isString())
5261 {
5262 std::string _res = obj.asString();
5263 sscanf(_res.c_str(), "%u", &o);
5264 }
5265 else
5266 {
5267 o = obj.asUInt();
5268 }
5269 }
5270
parse_VkPipelineViewportStateCreateFlags(const char * s,Json::Value & obj,VkPipelineViewportStateCreateFlags & o)5271 static void parse_VkPipelineViewportStateCreateFlags(const char *s, Json::Value &obj,
5272 VkPipelineViewportStateCreateFlags &o)
5273 {
5274 if (obj.isString())
5275 {
5276 std::string _res = obj.asString();
5277 sscanf(_res.c_str(), "%u", &o);
5278 }
5279 else
5280 {
5281 o = obj.asUInt();
5282 }
5283 }
5284
parse_VkPipelineRasterizationStateCreateFlags(const char * s,Json::Value & obj,VkPipelineRasterizationStateCreateFlags & o)5285 static void parse_VkPipelineRasterizationStateCreateFlags(const char *s, Json::Value &obj,
5286 VkPipelineRasterizationStateCreateFlags &o)
5287 {
5288 if (obj.isString())
5289 {
5290 std::string _res = obj.asString();
5291 sscanf(_res.c_str(), "%u", &o);
5292 }
5293 else
5294 {
5295 o = obj.asUInt();
5296 }
5297 }
5298
parse_VkPipelineMultisampleStateCreateFlags(const char * s,Json::Value & obj,VkPipelineMultisampleStateCreateFlags & o)5299 static void parse_VkPipelineMultisampleStateCreateFlags(const char *s, Json::Value &obj,
5300 VkPipelineMultisampleStateCreateFlags &o)
5301 {
5302 if (obj.isString())
5303 {
5304 std::string _res = obj.asString();
5305 sscanf(_res.c_str(), "%u", &o);
5306 }
5307 else
5308 {
5309 o = obj.asUInt();
5310 }
5311 }
5312
parse_VkPipelineDepthStencilStateCreateFlags(const char * s,Json::Value & obj,VkPipelineDepthStencilStateCreateFlags & o)5313 static void parse_VkPipelineDepthStencilStateCreateFlags(const char *s, Json::Value &obj,
5314 VkPipelineDepthStencilStateCreateFlags &o)
5315 {
5316 if (obj.isString())
5317 {
5318 std::string _res = obj.asString();
5319 sscanf(_res.c_str(), "%u", &o);
5320 }
5321 else
5322 {
5323 o = obj.asUInt();
5324 }
5325 }
5326
parse_VkPipelineColorBlendStateCreateFlags(const char * s,Json::Value & obj,VkPipelineColorBlendStateCreateFlags & o)5327 static void parse_VkPipelineColorBlendStateCreateFlags(const char *s, Json::Value &obj,
5328 VkPipelineColorBlendStateCreateFlags &o)
5329 {
5330 if (obj.isString())
5331 {
5332 std::string _res = obj.asString();
5333 sscanf(_res.c_str(), "%u", &o);
5334 }
5335 else
5336 {
5337 o = obj.asUInt();
5338 }
5339 }
5340
parse_VkPipelineDynamicStateCreateFlags(const char * s,Json::Value & obj,VkPipelineDynamicStateCreateFlags & o)5341 static void parse_VkPipelineDynamicStateCreateFlags(const char *s, Json::Value &obj,
5342 VkPipelineDynamicStateCreateFlags &o)
5343 {
5344 if (obj.isString())
5345 {
5346 std::string _res = obj.asString();
5347 sscanf(_res.c_str(), "%u", &o);
5348 }
5349 else
5350 {
5351 o = obj.asUInt();
5352 }
5353 }
5354
parse_VkPipelineLayoutCreateFlags(const char * s,Json::Value & obj,VkPipelineLayoutCreateFlags & o)5355 static void parse_VkPipelineLayoutCreateFlags(const char *s, Json::Value &obj, VkPipelineLayoutCreateFlags &o)
5356 {
5357 if (obj.isString())
5358 {
5359 std::string _res = obj.asString();
5360 sscanf(_res.c_str(), "%u", &o);
5361 }
5362 else
5363 {
5364 o = obj.asUInt();
5365 }
5366 }
5367
parse_VkShaderStageFlags(const char * s,Json::Value & obj,VkShaderStageFlags & o)5368 static void parse_VkShaderStageFlags(const char *s, Json::Value &obj, VkShaderStageFlags &o)
5369 {
5370 o = (VkShaderStageFlags)0;
5371 std::string _res = obj.asString();
5372 std::vector<std::string> bitmasks;
5373 std::istringstream inputStream(_res);
5374 std::string tempStr;
5375 while (getline(inputStream, tempStr, '|'))
5376 {
5377 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5378 bitmasks.push_back(tempStr);
5379 }
5380 for (auto &it : bitmasks)
5381 {
5382 o |= (VkShaderStageFlagBits)VkShaderStageFlagBits_map[it];
5383 }
5384 }
5385
parse_VkSamplerCreateFlags(const char * s,Json::Value & obj,VkSamplerCreateFlags & o)5386 static void parse_VkSamplerCreateFlags(const char *s, Json::Value &obj, VkSamplerCreateFlags &o)
5387 {
5388 o = (VkSamplerCreateFlags)0;
5389 std::string _res = obj.asString();
5390 std::vector<std::string> bitmasks;
5391 std::istringstream inputStream(_res);
5392 std::string tempStr;
5393 while (getline(inputStream, tempStr, '|'))
5394 {
5395 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5396 bitmasks.push_back(tempStr);
5397 }
5398 for (auto &it : bitmasks)
5399 {
5400 o |= (VkSamplerCreateFlagBits)VkSamplerCreateFlagBits_map[it];
5401 }
5402 }
5403
parse_VkDescriptorPoolCreateFlags(const char * s,Json::Value & obj,VkDescriptorPoolCreateFlags & o)5404 static void parse_VkDescriptorPoolCreateFlags(const char *s, Json::Value &obj, VkDescriptorPoolCreateFlags &o)
5405 {
5406 o = (VkDescriptorPoolCreateFlags)0;
5407 std::string _res = obj.asString();
5408 std::vector<std::string> bitmasks;
5409 std::istringstream inputStream(_res);
5410 std::string tempStr;
5411 while (getline(inputStream, tempStr, '|'))
5412 {
5413 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5414 bitmasks.push_back(tempStr);
5415 }
5416 for (auto &it : bitmasks)
5417 {
5418 o |= (VkDescriptorPoolCreateFlagBits)VkDescriptorPoolCreateFlagBits_map[it];
5419 }
5420 }
5421
parse_VkDescriptorPoolResetFlags(const char * s,Json::Value & obj,VkDescriptorPoolResetFlags & o)5422 static void parse_VkDescriptorPoolResetFlags(const char *s, Json::Value &obj, VkDescriptorPoolResetFlags &o)
5423 {
5424 if (obj.isString())
5425 {
5426 std::string _res = obj.asString();
5427 sscanf(_res.c_str(), "%u", &o);
5428 }
5429 else
5430 {
5431 o = obj.asUInt();
5432 }
5433 }
5434
parse_VkDescriptorSetLayoutCreateFlags(const char * s,Json::Value & obj,VkDescriptorSetLayoutCreateFlags & o)5435 static void parse_VkDescriptorSetLayoutCreateFlags(const char *s, Json::Value &obj, VkDescriptorSetLayoutCreateFlags &o)
5436 {
5437 o = (VkDescriptorSetLayoutCreateFlags)0;
5438 std::string _res = obj.asString();
5439 std::vector<std::string> bitmasks;
5440 std::istringstream inputStream(_res);
5441 std::string tempStr;
5442 while (getline(inputStream, tempStr, '|'))
5443 {
5444 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5445 bitmasks.push_back(tempStr);
5446 }
5447 for (auto &it : bitmasks)
5448 {
5449 o |= (VkDescriptorSetLayoutCreateFlagBits)VkDescriptorSetLayoutCreateFlagBits_map[it];
5450 }
5451 }
5452
parse_VkAttachmentDescriptionFlags(const char * s,Json::Value & obj,VkAttachmentDescriptionFlags & o)5453 static void parse_VkAttachmentDescriptionFlags(const char *s, Json::Value &obj, VkAttachmentDescriptionFlags &o)
5454 {
5455 o = (VkAttachmentDescriptionFlags)0;
5456 std::string _res = obj.asString();
5457 std::vector<std::string> bitmasks;
5458 std::istringstream inputStream(_res);
5459 std::string tempStr;
5460 while (getline(inputStream, tempStr, '|'))
5461 {
5462 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5463 bitmasks.push_back(tempStr);
5464 }
5465 for (auto &it : bitmasks)
5466 {
5467 o |= (VkAttachmentDescriptionFlagBits)VkAttachmentDescriptionFlagBits_map[it];
5468 }
5469 }
5470
parse_VkDependencyFlags(const char * s,Json::Value & obj,VkDependencyFlags & o)5471 static void parse_VkDependencyFlags(const char *s, Json::Value &obj, VkDependencyFlags &o)
5472 {
5473 o = (VkDependencyFlags)0;
5474 std::string _res = obj.asString();
5475 std::vector<std::string> bitmasks;
5476 std::istringstream inputStream(_res);
5477 std::string tempStr;
5478 while (getline(inputStream, tempStr, '|'))
5479 {
5480 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5481 bitmasks.push_back(tempStr);
5482 }
5483 for (auto &it : bitmasks)
5484 {
5485 o |= (VkDependencyFlagBits)VkDependencyFlagBits_map[it];
5486 }
5487 }
5488
parse_VkFramebufferCreateFlags(const char * s,Json::Value & obj,VkFramebufferCreateFlags & o)5489 static void parse_VkFramebufferCreateFlags(const char *s, Json::Value &obj, VkFramebufferCreateFlags &o)
5490 {
5491 o = (VkFramebufferCreateFlags)0;
5492 std::string _res = obj.asString();
5493 std::vector<std::string> bitmasks;
5494 std::istringstream inputStream(_res);
5495 std::string tempStr;
5496 while (getline(inputStream, tempStr, '|'))
5497 {
5498 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5499 bitmasks.push_back(tempStr);
5500 }
5501 for (auto &it : bitmasks)
5502 {
5503 o |= (VkFramebufferCreateFlagBits)VkFramebufferCreateFlagBits_map[it];
5504 }
5505 }
5506
parse_VkRenderPassCreateFlags(const char * s,Json::Value & obj,VkRenderPassCreateFlags & o)5507 static void parse_VkRenderPassCreateFlags(const char *s, Json::Value &obj, VkRenderPassCreateFlags &o)
5508 {
5509 o = (VkRenderPassCreateFlags)0;
5510 std::string _res = obj.asString();
5511 std::vector<std::string> bitmasks;
5512 std::istringstream inputStream(_res);
5513 std::string tempStr;
5514 while (getline(inputStream, tempStr, '|'))
5515 {
5516 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5517 bitmasks.push_back(tempStr);
5518 }
5519 for (auto &it : bitmasks)
5520 {
5521 o |= (VkRenderPassCreateFlagBits)VkRenderPassCreateFlagBits_map[it];
5522 }
5523 }
5524
parse_VkSubpassDescriptionFlags(const char * s,Json::Value & obj,VkSubpassDescriptionFlags & o)5525 static void parse_VkSubpassDescriptionFlags(const char *s, Json::Value &obj, VkSubpassDescriptionFlags &o)
5526 {
5527 o = (VkSubpassDescriptionFlags)0;
5528 std::string _res = obj.asString();
5529 std::vector<std::string> bitmasks;
5530 std::istringstream inputStream(_res);
5531 std::string tempStr;
5532 while (getline(inputStream, tempStr, '|'))
5533 {
5534 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5535 bitmasks.push_back(tempStr);
5536 }
5537 for (auto &it : bitmasks)
5538 {
5539 o |= (VkSubpassDescriptionFlagBits)VkSubpassDescriptionFlagBits_map[it];
5540 }
5541 }
5542
parse_VkCommandPoolCreateFlags(const char * s,Json::Value & obj,VkCommandPoolCreateFlags & o)5543 static void parse_VkCommandPoolCreateFlags(const char *s, Json::Value &obj, VkCommandPoolCreateFlags &o)
5544 {
5545 o = (VkCommandPoolCreateFlags)0;
5546 std::string _res = obj.asString();
5547 std::vector<std::string> bitmasks;
5548 std::istringstream inputStream(_res);
5549 std::string tempStr;
5550 while (getline(inputStream, tempStr, '|'))
5551 {
5552 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5553 bitmasks.push_back(tempStr);
5554 }
5555 for (auto &it : bitmasks)
5556 {
5557 o |= (VkCommandPoolCreateFlagBits)VkCommandPoolCreateFlagBits_map[it];
5558 }
5559 }
5560
parse_VkCommandPoolResetFlags(const char * s,Json::Value & obj,VkCommandPoolResetFlags & o)5561 static void parse_VkCommandPoolResetFlags(const char *s, Json::Value &obj, VkCommandPoolResetFlags &o)
5562 {
5563 o = (VkCommandPoolResetFlags)0;
5564 std::string _res = obj.asString();
5565 std::vector<std::string> bitmasks;
5566 std::istringstream inputStream(_res);
5567 std::string tempStr;
5568 while (getline(inputStream, tempStr, '|'))
5569 {
5570 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5571 bitmasks.push_back(tempStr);
5572 }
5573 for (auto &it : bitmasks)
5574 {
5575 o |= (VkCommandPoolResetFlagBits)VkCommandPoolResetFlagBits_map[it];
5576 }
5577 }
5578
parse_VkCommandBufferUsageFlags(const char * s,Json::Value & obj,VkCommandBufferUsageFlags & o)5579 static void parse_VkCommandBufferUsageFlags(const char *s, Json::Value &obj, VkCommandBufferUsageFlags &o)
5580 {
5581 o = (VkCommandBufferUsageFlags)0;
5582 std::string _res = obj.asString();
5583 std::vector<std::string> bitmasks;
5584 std::istringstream inputStream(_res);
5585 std::string tempStr;
5586 while (getline(inputStream, tempStr, '|'))
5587 {
5588 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5589 bitmasks.push_back(tempStr);
5590 }
5591 for (auto &it : bitmasks)
5592 {
5593 o |= (VkCommandBufferUsageFlagBits)VkCommandBufferUsageFlagBits_map[it];
5594 }
5595 }
5596
parse_VkQueryControlFlags(const char * s,Json::Value & obj,VkQueryControlFlags & o)5597 static void parse_VkQueryControlFlags(const char *s, Json::Value &obj, VkQueryControlFlags &o)
5598 {
5599 o = (VkQueryControlFlags)0;
5600 std::string _res = obj.asString();
5601 std::vector<std::string> bitmasks;
5602 std::istringstream inputStream(_res);
5603 std::string tempStr;
5604 while (getline(inputStream, tempStr, '|'))
5605 {
5606 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5607 bitmasks.push_back(tempStr);
5608 }
5609 for (auto &it : bitmasks)
5610 {
5611 o |= (VkQueryControlFlagBits)VkQueryControlFlagBits_map[it];
5612 }
5613 }
5614
parse_VkCommandBufferResetFlags(const char * s,Json::Value & obj,VkCommandBufferResetFlags & o)5615 static void parse_VkCommandBufferResetFlags(const char *s, Json::Value &obj, VkCommandBufferResetFlags &o)
5616 {
5617 o = (VkCommandBufferResetFlags)0;
5618 std::string _res = obj.asString();
5619 std::vector<std::string> bitmasks;
5620 std::istringstream inputStream(_res);
5621 std::string tempStr;
5622 while (getline(inputStream, tempStr, '|'))
5623 {
5624 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5625 bitmasks.push_back(tempStr);
5626 }
5627 for (auto &it : bitmasks)
5628 {
5629 o |= (VkCommandBufferResetFlagBits)VkCommandBufferResetFlagBits_map[it];
5630 }
5631 }
5632
parse_VkStencilFaceFlags(const char * s,Json::Value & obj,VkStencilFaceFlags & o)5633 static void parse_VkStencilFaceFlags(const char *s, Json::Value &obj, VkStencilFaceFlags &o)
5634 {
5635 o = (VkStencilFaceFlags)0;
5636 std::string _res = obj.asString();
5637 std::vector<std::string> bitmasks;
5638 std::istringstream inputStream(_res);
5639 std::string tempStr;
5640 while (getline(inputStream, tempStr, '|'))
5641 {
5642 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
5643 bitmasks.push_back(tempStr);
5644 }
5645 for (auto &it : bitmasks)
5646 {
5647 o |= (VkStencilFaceFlagBits)VkStencilFaceFlagBits_map[it];
5648 }
5649 }
5650
parse_VkExtent2D(const char * s,Json::Value & obj,VkExtent2D & o)5651 static void parse_VkExtent2D(const char *s, Json::Value &obj, VkExtent2D &o)
5652 {
5653
5654 parse_uint32_t("width", obj["width"], (o.width));
5655
5656 parse_uint32_t("height", obj["height"], (o.height));
5657 }
5658
parse_VkExtent3D(const char * s,Json::Value & obj,VkExtent3D & o)5659 static void parse_VkExtent3D(const char *s, Json::Value &obj, VkExtent3D &o)
5660 {
5661
5662 parse_uint32_t("width", obj["width"], (o.width));
5663
5664 parse_uint32_t("height", obj["height"], (o.height));
5665
5666 parse_uint32_t("depth", obj["depth"], (o.depth));
5667 }
5668
parse_VkOffset2D(const char * s,Json::Value & obj,VkOffset2D & o)5669 static void parse_VkOffset2D(const char *s, Json::Value &obj, VkOffset2D &o)
5670 {
5671
5672 parse_int32_t("x", obj["x"], (o.x));
5673
5674 parse_int32_t("y", obj["y"], (o.y));
5675 }
5676
parse_VkOffset3D(const char * s,Json::Value & obj,VkOffset3D & o)5677 static void parse_VkOffset3D(const char *s, Json::Value &obj, VkOffset3D &o)
5678 {
5679
5680 parse_int32_t("x", obj["x"], (o.x));
5681
5682 parse_int32_t("y", obj["y"], (o.y));
5683
5684 parse_int32_t("z", obj["z"], (o.z));
5685 }
5686
parse_VkRect2D(const char * s,Json::Value & obj,VkRect2D & o)5687 static void parse_VkRect2D(const char *s, Json::Value &obj, VkRect2D &o)
5688 {
5689
5690 parse_VkOffset2D("offset", obj["offset"], (o.offset));
5691
5692 parse_VkExtent2D("extent", obj["extent"], (o.extent));
5693 }
5694
parse_VkBaseInStructure(const char * s,Json::Value & obj,VkBaseInStructure & o)5695 static void parse_VkBaseInStructure(const char *s, Json::Value &obj, VkBaseInStructure &o)
5696 {
5697
5698 parse_VkStructureType("sType", obj["sType"], (o.sType));
5699
5700 o.pNext = (VkBaseInStructure *)parsePNextChain(obj);
5701 }
5702
parse_VkBaseOutStructure(const char * s,Json::Value & obj,VkBaseOutStructure & o)5703 static void parse_VkBaseOutStructure(const char *s, Json::Value &obj, VkBaseOutStructure &o)
5704 {
5705
5706 parse_VkStructureType("sType", obj["sType"], (o.sType));
5707
5708 o.pNext = (VkBaseOutStructure *)parsePNextChain(obj);
5709 }
5710
parse_VkBufferMemoryBarrier(const char * s,Json::Value & obj,VkBufferMemoryBarrier & o)5711 static void parse_VkBufferMemoryBarrier(const char *s, Json::Value &obj, VkBufferMemoryBarrier &o)
5712 {
5713
5714 parse_VkStructureType("sType", obj["sType"], (o.sType));
5715
5716 o.pNext = (VkBufferMemoryBarrier *)parsePNextChain(obj);
5717
5718 parse_VkAccessFlags("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
5719
5720 parse_VkAccessFlags("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
5721
5722 parse_uint32_t("srcQueueFamilyIndex", obj["srcQueueFamilyIndex"], (o.srcQueueFamilyIndex));
5723
5724 parse_uint32_t("dstQueueFamilyIndex", obj["dstQueueFamilyIndex"], (o.dstQueueFamilyIndex));
5725
5726 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
5727
5728 parse_VkDeviceSize("size", obj["size"], (o.size));
5729 }
5730
parse_VkDispatchIndirectCommand(const char * s,Json::Value & obj,VkDispatchIndirectCommand & o)5731 static void parse_VkDispatchIndirectCommand(const char *s, Json::Value &obj, VkDispatchIndirectCommand &o)
5732 {
5733
5734 parse_uint32_t("x", obj["x"], (o.x));
5735
5736 parse_uint32_t("y", obj["y"], (o.y));
5737
5738 parse_uint32_t("z", obj["z"], (o.z));
5739 }
5740
parse_VkDrawIndexedIndirectCommand(const char * s,Json::Value & obj,VkDrawIndexedIndirectCommand & o)5741 static void parse_VkDrawIndexedIndirectCommand(const char *s, Json::Value &obj, VkDrawIndexedIndirectCommand &o)
5742 {
5743
5744 parse_uint32_t("indexCount", obj["indexCount"], (o.indexCount));
5745
5746 parse_uint32_t("instanceCount", obj["instanceCount"], (o.instanceCount));
5747
5748 parse_uint32_t("firstIndex", obj["firstIndex"], (o.firstIndex));
5749
5750 parse_int32_t("vertexOffset", obj["vertexOffset"], (o.vertexOffset));
5751
5752 parse_uint32_t("firstInstance", obj["firstInstance"], (o.firstInstance));
5753 }
5754
parse_VkDrawIndirectCommand(const char * s,Json::Value & obj,VkDrawIndirectCommand & o)5755 static void parse_VkDrawIndirectCommand(const char *s, Json::Value &obj, VkDrawIndirectCommand &o)
5756 {
5757
5758 parse_uint32_t("vertexCount", obj["vertexCount"], (o.vertexCount));
5759
5760 parse_uint32_t("instanceCount", obj["instanceCount"], (o.instanceCount));
5761
5762 parse_uint32_t("firstVertex", obj["firstVertex"], (o.firstVertex));
5763
5764 parse_uint32_t("firstInstance", obj["firstInstance"], (o.firstInstance));
5765 }
5766
parse_VkImageSubresourceRange(const char * s,Json::Value & obj,VkImageSubresourceRange & o)5767 static void parse_VkImageSubresourceRange(const char *s, Json::Value &obj, VkImageSubresourceRange &o)
5768 {
5769
5770 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
5771
5772 parse_uint32_t("baseMipLevel", obj["baseMipLevel"], (o.baseMipLevel));
5773
5774 parse_uint32_t("levelCount", obj["levelCount"], (o.levelCount));
5775
5776 parse_uint32_t("baseArrayLayer", obj["baseArrayLayer"], (o.baseArrayLayer));
5777
5778 parse_uint32_t("layerCount", obj["layerCount"], (o.layerCount));
5779 }
5780
parse_VkImageMemoryBarrier(const char * s,Json::Value & obj,VkImageMemoryBarrier & o)5781 static void parse_VkImageMemoryBarrier(const char *s, Json::Value &obj, VkImageMemoryBarrier &o)
5782 {
5783
5784 parse_VkStructureType("sType", obj["sType"], (o.sType));
5785
5786 o.pNext = (VkImageMemoryBarrier *)parsePNextChain(obj);
5787
5788 parse_VkAccessFlags("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
5789
5790 parse_VkAccessFlags("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
5791
5792 parse_VkImageLayout("oldLayout", obj["oldLayout"], (o.oldLayout));
5793
5794 parse_VkImageLayout("newLayout", obj["newLayout"], (o.newLayout));
5795
5796 parse_uint32_t("srcQueueFamilyIndex", obj["srcQueueFamilyIndex"], (o.srcQueueFamilyIndex));
5797
5798 parse_uint32_t("dstQueueFamilyIndex", obj["dstQueueFamilyIndex"], (o.dstQueueFamilyIndex));
5799
5800 parse_VkImageSubresourceRange("subresourceRange", obj["subresourceRange"], (o.subresourceRange));
5801 }
5802
parse_VkMemoryBarrier(const char * s,Json::Value & obj,VkMemoryBarrier & o)5803 static void parse_VkMemoryBarrier(const char *s, Json::Value &obj, VkMemoryBarrier &o)
5804 {
5805
5806 parse_VkStructureType("sType", obj["sType"], (o.sType));
5807
5808 o.pNext = (VkMemoryBarrier *)parsePNextChain(obj);
5809
5810 parse_VkAccessFlags("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
5811
5812 parse_VkAccessFlags("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
5813 }
5814
parse_VkPipelineCacheHeaderVersionOne(const char * s,Json::Value & obj,VkPipelineCacheHeaderVersionOne & o)5815 static void parse_VkPipelineCacheHeaderVersionOne(const char *s, Json::Value &obj, VkPipelineCacheHeaderVersionOne &o)
5816 {
5817
5818 parse_uint32_t("headerSize", obj["headerSize"], (o.headerSize));
5819
5820 parse_VkPipelineCacheHeaderVersion("headerVersion", obj["headerVersion"], (o.headerVersion));
5821
5822 parse_uint32_t("vendorID", obj["vendorID"], (o.vendorID));
5823
5824 parse_uint32_t("deviceID", obj["deviceID"], (o.deviceID));
5825
5826 Json::Value &obj_pipelineCacheUUID_arr = obj["pipelineCacheUUID"];
5827 for (unsigned int i = 0; i < obj_pipelineCacheUUID_arr.size(); i++)
5828 {
5829 parse_uint8_t("pipelineCacheUUID", obj_pipelineCacheUUID_arr[i],
5830 const_cast<uint8_t &>((o.pipelineCacheUUID[i])));
5831 }
5832 }
5833
parse_VkAllocationCallbacks(const char * s,Json::Value & obj,VkAllocationCallbacks & o)5834 static void parse_VkAllocationCallbacks(const char *s, Json::Value &obj, VkAllocationCallbacks &o)
5835 {
5836
5837 /** Note: Ignoring function pointer (PFN_vkAllocationFunction). **/
5838
5839 /** Note: Ignoring function pointer (PFN_vkReallocationFunction). **/
5840
5841 /** Note: Ignoring function pointer (PFN_vkFreeFunction). **/
5842
5843 /** Note: Ignoring function pointer (PFN_vkInternalAllocationNotification). **/
5844
5845 /** Note: Ignoring function pointer (PFN_vkInternalFreeNotification). **/
5846 }
5847
parse_VkApplicationInfo(const char * s,Json::Value & obj,VkApplicationInfo & o)5848 static void parse_VkApplicationInfo(const char *s, Json::Value &obj, VkApplicationInfo &o)
5849 {
5850
5851 parse_VkStructureType("sType", obj["sType"], (o.sType));
5852
5853 o.pNext = (VkApplicationInfo *)parsePNextChain(obj);
5854
5855 /** TODO: Handle this - pApplicationName **/
5856
5857 parse_uint32_t("applicationVersion", obj["applicationVersion"], (o.applicationVersion));
5858
5859 /** TODO: Handle this - pEngineName **/
5860
5861 parse_uint32_t("engineVersion", obj["engineVersion"], (o.engineVersion));
5862
5863 parse_uint32_t("apiVersion", obj["apiVersion"], (o.apiVersion));
5864 }
5865
parse_VkFormatProperties(const char * s,Json::Value & obj,VkFormatProperties & o)5866 static void parse_VkFormatProperties(const char *s, Json::Value &obj, VkFormatProperties &o)
5867 {
5868
5869 parse_VkFormatFeatureFlags("linearTilingFeatures", obj["linearTilingFeatures"], (o.linearTilingFeatures));
5870
5871 parse_VkFormatFeatureFlags("optimalTilingFeatures", obj["optimalTilingFeatures"], (o.optimalTilingFeatures));
5872
5873 parse_VkFormatFeatureFlags("bufferFeatures", obj["bufferFeatures"], (o.bufferFeatures));
5874 }
5875
parse_VkImageFormatProperties(const char * s,Json::Value & obj,VkImageFormatProperties & o)5876 static void parse_VkImageFormatProperties(const char *s, Json::Value &obj, VkImageFormatProperties &o)
5877 {
5878
5879 parse_VkExtent3D("maxExtent", obj["maxExtent"], (o.maxExtent));
5880
5881 parse_uint32_t("maxMipLevels", obj["maxMipLevels"], (o.maxMipLevels));
5882
5883 parse_uint32_t("maxArrayLayers", obj["maxArrayLayers"], (o.maxArrayLayers));
5884
5885 parse_VkSampleCountFlags("sampleCounts", obj["sampleCounts"], (o.sampleCounts));
5886
5887 parse_VkDeviceSize("maxResourceSize", obj["maxResourceSize"], (o.maxResourceSize));
5888 }
5889
parse_VkInstanceCreateInfo(const char * s,Json::Value & obj,VkInstanceCreateInfo & o)5890 static void parse_VkInstanceCreateInfo(const char *s, Json::Value &obj, VkInstanceCreateInfo &o)
5891 {
5892
5893 parse_VkStructureType("sType", obj["sType"], (o.sType));
5894
5895 o.pNext = (VkInstanceCreateInfo *)parsePNextChain(obj);
5896
5897 parse_VkInstanceCreateFlags("flags", obj["flags"], (o.flags));
5898
5899 {
5900 Json::Value &obj_pApplicationInfo = obj["pApplicationInfo"];
5901 const int sz = obj_pApplicationInfo.size();
5902 if (obj_pApplicationInfo.size() == 0)
5903 {
5904 (o.pApplicationInfo) = nullptr;
5905 }
5906 else
5907 {
5908 (o.pApplicationInfo) = (VkApplicationInfo *)s_globalMem.allocate(1, sizeof(VkApplicationInfo));
5909 parse_VkApplicationInfo("pApplicationInfo", obj_pApplicationInfo,
5910 const_cast<VkApplicationInfo &>(*(o.pApplicationInfo)));
5911 }
5912 }
5913
5914 parse_uint32_t("enabledLayerCount", obj["enabledLayerCount"], (o.enabledLayerCount));
5915
5916 /** TODO: Handle this - ppEnabledLayerNames **/
5917
5918 parse_uint32_t("enabledExtensionCount", obj["enabledExtensionCount"], (o.enabledExtensionCount));
5919
5920 /** TODO: Handle this - ppEnabledExtensionNames **/
5921 }
5922
parse_VkMemoryHeap(const char * s,Json::Value & obj,VkMemoryHeap & o)5923 static void parse_VkMemoryHeap(const char *s, Json::Value &obj, VkMemoryHeap &o)
5924 {
5925
5926 parse_VkDeviceSize("size", obj["size"], (o.size));
5927
5928 parse_VkMemoryHeapFlags("flags", obj["flags"], (o.flags));
5929 }
5930
parse_VkMemoryType(const char * s,Json::Value & obj,VkMemoryType & o)5931 static void parse_VkMemoryType(const char *s, Json::Value &obj, VkMemoryType &o)
5932 {
5933
5934 parse_VkMemoryPropertyFlags("propertyFlags", obj["propertyFlags"], (o.propertyFlags));
5935
5936 parse_uint32_t("heapIndex", obj["heapIndex"], (o.heapIndex));
5937 }
5938
parse_VkPhysicalDeviceFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceFeatures & o)5939 static void parse_VkPhysicalDeviceFeatures(const char *s, Json::Value &obj, VkPhysicalDeviceFeatures &o)
5940 {
5941
5942 parse_VkBool32("robustBufferAccess", obj["robustBufferAccess"], (o.robustBufferAccess));
5943
5944 parse_VkBool32("fullDrawIndexUint32", obj["fullDrawIndexUint32"], (o.fullDrawIndexUint32));
5945
5946 parse_VkBool32("imageCubeArray", obj["imageCubeArray"], (o.imageCubeArray));
5947
5948 parse_VkBool32("independentBlend", obj["independentBlend"], (o.independentBlend));
5949
5950 parse_VkBool32("geometryShader", obj["geometryShader"], (o.geometryShader));
5951
5952 parse_VkBool32("tessellationShader", obj["tessellationShader"], (o.tessellationShader));
5953
5954 parse_VkBool32("sampleRateShading", obj["sampleRateShading"], (o.sampleRateShading));
5955
5956 parse_VkBool32("dualSrcBlend", obj["dualSrcBlend"], (o.dualSrcBlend));
5957
5958 parse_VkBool32("logicOp", obj["logicOp"], (o.logicOp));
5959
5960 parse_VkBool32("multiDrawIndirect", obj["multiDrawIndirect"], (o.multiDrawIndirect));
5961
5962 parse_VkBool32("drawIndirectFirstInstance", obj["drawIndirectFirstInstance"], (o.drawIndirectFirstInstance));
5963
5964 parse_VkBool32("depthClamp", obj["depthClamp"], (o.depthClamp));
5965
5966 parse_VkBool32("depthBiasClamp", obj["depthBiasClamp"], (o.depthBiasClamp));
5967
5968 parse_VkBool32("fillModeNonSolid", obj["fillModeNonSolid"], (o.fillModeNonSolid));
5969
5970 parse_VkBool32("depthBounds", obj["depthBounds"], (o.depthBounds));
5971
5972 parse_VkBool32("wideLines", obj["wideLines"], (o.wideLines));
5973
5974 parse_VkBool32("largePoints", obj["largePoints"], (o.largePoints));
5975
5976 parse_VkBool32("alphaToOne", obj["alphaToOne"], (o.alphaToOne));
5977
5978 parse_VkBool32("multiViewport", obj["multiViewport"], (o.multiViewport));
5979
5980 parse_VkBool32("samplerAnisotropy", obj["samplerAnisotropy"], (o.samplerAnisotropy));
5981
5982 parse_VkBool32("textureCompressionETC2", obj["textureCompressionETC2"], (o.textureCompressionETC2));
5983
5984 parse_VkBool32("textureCompressionASTC_LDR", obj["textureCompressionASTC_LDR"], (o.textureCompressionASTC_LDR));
5985
5986 parse_VkBool32("textureCompressionBC", obj["textureCompressionBC"], (o.textureCompressionBC));
5987
5988 parse_VkBool32("occlusionQueryPrecise", obj["occlusionQueryPrecise"], (o.occlusionQueryPrecise));
5989
5990 parse_VkBool32("pipelineStatisticsQuery", obj["pipelineStatisticsQuery"], (o.pipelineStatisticsQuery));
5991
5992 parse_VkBool32("vertexPipelineStoresAndAtomics", obj["vertexPipelineStoresAndAtomics"],
5993 (o.vertexPipelineStoresAndAtomics));
5994
5995 parse_VkBool32("fragmentStoresAndAtomics", obj["fragmentStoresAndAtomics"], (o.fragmentStoresAndAtomics));
5996
5997 parse_VkBool32("shaderTessellationAndGeometryPointSize", obj["shaderTessellationAndGeometryPointSize"],
5998 (o.shaderTessellationAndGeometryPointSize));
5999
6000 parse_VkBool32("shaderImageGatherExtended", obj["shaderImageGatherExtended"], (o.shaderImageGatherExtended));
6001
6002 parse_VkBool32("shaderStorageImageExtendedFormats", obj["shaderStorageImageExtendedFormats"],
6003 (o.shaderStorageImageExtendedFormats));
6004
6005 parse_VkBool32("shaderStorageImageMultisample", obj["shaderStorageImageMultisample"],
6006 (o.shaderStorageImageMultisample));
6007
6008 parse_VkBool32("shaderStorageImageReadWithoutFormat", obj["shaderStorageImageReadWithoutFormat"],
6009 (o.shaderStorageImageReadWithoutFormat));
6010
6011 parse_VkBool32("shaderStorageImageWriteWithoutFormat", obj["shaderStorageImageWriteWithoutFormat"],
6012 (o.shaderStorageImageWriteWithoutFormat));
6013
6014 parse_VkBool32("shaderUniformBufferArrayDynamicIndexing", obj["shaderUniformBufferArrayDynamicIndexing"],
6015 (o.shaderUniformBufferArrayDynamicIndexing));
6016
6017 parse_VkBool32("shaderSampledImageArrayDynamicIndexing", obj["shaderSampledImageArrayDynamicIndexing"],
6018 (o.shaderSampledImageArrayDynamicIndexing));
6019
6020 parse_VkBool32("shaderStorageBufferArrayDynamicIndexing", obj["shaderStorageBufferArrayDynamicIndexing"],
6021 (o.shaderStorageBufferArrayDynamicIndexing));
6022
6023 parse_VkBool32("shaderStorageImageArrayDynamicIndexing", obj["shaderStorageImageArrayDynamicIndexing"],
6024 (o.shaderStorageImageArrayDynamicIndexing));
6025
6026 parse_VkBool32("shaderClipDistance", obj["shaderClipDistance"], (o.shaderClipDistance));
6027
6028 parse_VkBool32("shaderCullDistance", obj["shaderCullDistance"], (o.shaderCullDistance));
6029
6030 parse_VkBool32("shaderFloat64", obj["shaderFloat64"], (o.shaderFloat64));
6031
6032 parse_VkBool32("shaderInt64", obj["shaderInt64"], (o.shaderInt64));
6033
6034 parse_VkBool32("shaderInt16", obj["shaderInt16"], (o.shaderInt16));
6035
6036 parse_VkBool32("shaderResourceResidency", obj["shaderResourceResidency"], (o.shaderResourceResidency));
6037
6038 parse_VkBool32("shaderResourceMinLod", obj["shaderResourceMinLod"], (o.shaderResourceMinLod));
6039
6040 parse_VkBool32("sparseBinding", obj["sparseBinding"], (o.sparseBinding));
6041
6042 parse_VkBool32("sparseResidencyBuffer", obj["sparseResidencyBuffer"], (o.sparseResidencyBuffer));
6043
6044 parse_VkBool32("sparseResidencyImage2D", obj["sparseResidencyImage2D"], (o.sparseResidencyImage2D));
6045
6046 parse_VkBool32("sparseResidencyImage3D", obj["sparseResidencyImage3D"], (o.sparseResidencyImage3D));
6047
6048 parse_VkBool32("sparseResidency2Samples", obj["sparseResidency2Samples"], (o.sparseResidency2Samples));
6049
6050 parse_VkBool32("sparseResidency4Samples", obj["sparseResidency4Samples"], (o.sparseResidency4Samples));
6051
6052 parse_VkBool32("sparseResidency8Samples", obj["sparseResidency8Samples"], (o.sparseResidency8Samples));
6053
6054 parse_VkBool32("sparseResidency16Samples", obj["sparseResidency16Samples"], (o.sparseResidency16Samples));
6055
6056 parse_VkBool32("sparseResidencyAliased", obj["sparseResidencyAliased"], (o.sparseResidencyAliased));
6057
6058 parse_VkBool32("variableMultisampleRate", obj["variableMultisampleRate"], (o.variableMultisampleRate));
6059
6060 parse_VkBool32("inheritedQueries", obj["inheritedQueries"], (o.inheritedQueries));
6061 }
6062
parse_VkPhysicalDeviceLimits(const char * s,Json::Value & obj,VkPhysicalDeviceLimits & o)6063 static void parse_VkPhysicalDeviceLimits(const char *s, Json::Value &obj, VkPhysicalDeviceLimits &o)
6064 {
6065
6066 parse_uint32_t("maxImageDimension1D", obj["maxImageDimension1D"], (o.maxImageDimension1D));
6067
6068 parse_uint32_t("maxImageDimension2D", obj["maxImageDimension2D"], (o.maxImageDimension2D));
6069
6070 parse_uint32_t("maxImageDimension3D", obj["maxImageDimension3D"], (o.maxImageDimension3D));
6071
6072 parse_uint32_t("maxImageDimensionCube", obj["maxImageDimensionCube"], (o.maxImageDimensionCube));
6073
6074 parse_uint32_t("maxImageArrayLayers", obj["maxImageArrayLayers"], (o.maxImageArrayLayers));
6075
6076 parse_uint32_t("maxTexelBufferElements", obj["maxTexelBufferElements"], (o.maxTexelBufferElements));
6077
6078 parse_uint32_t("maxUniformBufferRange", obj["maxUniformBufferRange"], (o.maxUniformBufferRange));
6079
6080 parse_uint32_t("maxStorageBufferRange", obj["maxStorageBufferRange"], (o.maxStorageBufferRange));
6081
6082 parse_uint32_t("maxPushConstantsSize", obj["maxPushConstantsSize"], (o.maxPushConstantsSize));
6083
6084 parse_uint32_t("maxMemoryAllocationCount", obj["maxMemoryAllocationCount"], (o.maxMemoryAllocationCount));
6085
6086 parse_uint32_t("maxSamplerAllocationCount", obj["maxSamplerAllocationCount"], (o.maxSamplerAllocationCount));
6087
6088 parse_VkDeviceSize("bufferImageGranularity", obj["bufferImageGranularity"], (o.bufferImageGranularity));
6089
6090 parse_VkDeviceSize("sparseAddressSpaceSize", obj["sparseAddressSpaceSize"], (o.sparseAddressSpaceSize));
6091
6092 parse_uint32_t("maxBoundDescriptorSets", obj["maxBoundDescriptorSets"], (o.maxBoundDescriptorSets));
6093
6094 parse_uint32_t("maxPerStageDescriptorSamplers", obj["maxPerStageDescriptorSamplers"],
6095 (o.maxPerStageDescriptorSamplers));
6096
6097 parse_uint32_t("maxPerStageDescriptorUniformBuffers", obj["maxPerStageDescriptorUniformBuffers"],
6098 (o.maxPerStageDescriptorUniformBuffers));
6099
6100 parse_uint32_t("maxPerStageDescriptorStorageBuffers", obj["maxPerStageDescriptorStorageBuffers"],
6101 (o.maxPerStageDescriptorStorageBuffers));
6102
6103 parse_uint32_t("maxPerStageDescriptorSampledImages", obj["maxPerStageDescriptorSampledImages"],
6104 (o.maxPerStageDescriptorSampledImages));
6105
6106 parse_uint32_t("maxPerStageDescriptorStorageImages", obj["maxPerStageDescriptorStorageImages"],
6107 (o.maxPerStageDescriptorStorageImages));
6108
6109 parse_uint32_t("maxPerStageDescriptorInputAttachments", obj["maxPerStageDescriptorInputAttachments"],
6110 (o.maxPerStageDescriptorInputAttachments));
6111
6112 parse_uint32_t("maxPerStageResources", obj["maxPerStageResources"], (o.maxPerStageResources));
6113
6114 parse_uint32_t("maxDescriptorSetSamplers", obj["maxDescriptorSetSamplers"], (o.maxDescriptorSetSamplers));
6115
6116 parse_uint32_t("maxDescriptorSetUniformBuffers", obj["maxDescriptorSetUniformBuffers"],
6117 (o.maxDescriptorSetUniformBuffers));
6118
6119 parse_uint32_t("maxDescriptorSetUniformBuffersDynamic", obj["maxDescriptorSetUniformBuffersDynamic"],
6120 (o.maxDescriptorSetUniformBuffersDynamic));
6121
6122 parse_uint32_t("maxDescriptorSetStorageBuffers", obj["maxDescriptorSetStorageBuffers"],
6123 (o.maxDescriptorSetStorageBuffers));
6124
6125 parse_uint32_t("maxDescriptorSetStorageBuffersDynamic", obj["maxDescriptorSetStorageBuffersDynamic"],
6126 (o.maxDescriptorSetStorageBuffersDynamic));
6127
6128 parse_uint32_t("maxDescriptorSetSampledImages", obj["maxDescriptorSetSampledImages"],
6129 (o.maxDescriptorSetSampledImages));
6130
6131 parse_uint32_t("maxDescriptorSetStorageImages", obj["maxDescriptorSetStorageImages"],
6132 (o.maxDescriptorSetStorageImages));
6133
6134 parse_uint32_t("maxDescriptorSetInputAttachments", obj["maxDescriptorSetInputAttachments"],
6135 (o.maxDescriptorSetInputAttachments));
6136
6137 parse_uint32_t("maxVertexInputAttributes", obj["maxVertexInputAttributes"], (o.maxVertexInputAttributes));
6138
6139 parse_uint32_t("maxVertexInputBindings", obj["maxVertexInputBindings"], (o.maxVertexInputBindings));
6140
6141 parse_uint32_t("maxVertexInputAttributeOffset", obj["maxVertexInputAttributeOffset"],
6142 (o.maxVertexInputAttributeOffset));
6143
6144 parse_uint32_t("maxVertexInputBindingStride", obj["maxVertexInputBindingStride"], (o.maxVertexInputBindingStride));
6145
6146 parse_uint32_t("maxVertexOutputComponents", obj["maxVertexOutputComponents"], (o.maxVertexOutputComponents));
6147
6148 parse_uint32_t("maxTessellationGenerationLevel", obj["maxTessellationGenerationLevel"],
6149 (o.maxTessellationGenerationLevel));
6150
6151 parse_uint32_t("maxTessellationPatchSize", obj["maxTessellationPatchSize"], (o.maxTessellationPatchSize));
6152
6153 parse_uint32_t("maxTessellationControlPerVertexInputComponents",
6154 obj["maxTessellationControlPerVertexInputComponents"],
6155 (o.maxTessellationControlPerVertexInputComponents));
6156
6157 parse_uint32_t("maxTessellationControlPerVertexOutputComponents",
6158 obj["maxTessellationControlPerVertexOutputComponents"],
6159 (o.maxTessellationControlPerVertexOutputComponents));
6160
6161 parse_uint32_t("maxTessellationControlPerPatchOutputComponents",
6162 obj["maxTessellationControlPerPatchOutputComponents"],
6163 (o.maxTessellationControlPerPatchOutputComponents));
6164
6165 parse_uint32_t("maxTessellationControlTotalOutputComponents", obj["maxTessellationControlTotalOutputComponents"],
6166 (o.maxTessellationControlTotalOutputComponents));
6167
6168 parse_uint32_t("maxTessellationEvaluationInputComponents", obj["maxTessellationEvaluationInputComponents"],
6169 (o.maxTessellationEvaluationInputComponents));
6170
6171 parse_uint32_t("maxTessellationEvaluationOutputComponents", obj["maxTessellationEvaluationOutputComponents"],
6172 (o.maxTessellationEvaluationOutputComponents));
6173
6174 parse_uint32_t("maxGeometryShaderInvocations", obj["maxGeometryShaderInvocations"],
6175 (o.maxGeometryShaderInvocations));
6176
6177 parse_uint32_t("maxGeometryInputComponents", obj["maxGeometryInputComponents"], (o.maxGeometryInputComponents));
6178
6179 parse_uint32_t("maxGeometryOutputComponents", obj["maxGeometryOutputComponents"], (o.maxGeometryOutputComponents));
6180
6181 parse_uint32_t("maxGeometryOutputVertices", obj["maxGeometryOutputVertices"], (o.maxGeometryOutputVertices));
6182
6183 parse_uint32_t("maxGeometryTotalOutputComponents", obj["maxGeometryTotalOutputComponents"],
6184 (o.maxGeometryTotalOutputComponents));
6185
6186 parse_uint32_t("maxFragmentInputComponents", obj["maxFragmentInputComponents"], (o.maxFragmentInputComponents));
6187
6188 parse_uint32_t("maxFragmentOutputAttachments", obj["maxFragmentOutputAttachments"],
6189 (o.maxFragmentOutputAttachments));
6190
6191 parse_uint32_t("maxFragmentDualSrcAttachments", obj["maxFragmentDualSrcAttachments"],
6192 (o.maxFragmentDualSrcAttachments));
6193
6194 parse_uint32_t("maxFragmentCombinedOutputResources", obj["maxFragmentCombinedOutputResources"],
6195 (o.maxFragmentCombinedOutputResources));
6196
6197 parse_uint32_t("maxComputeSharedMemorySize", obj["maxComputeSharedMemorySize"], (o.maxComputeSharedMemorySize));
6198
6199 Json::Value &obj_maxComputeWorkGroupCount_arr = obj["maxComputeWorkGroupCount"];
6200 for (unsigned int i = 0; i < obj_maxComputeWorkGroupCount_arr.size(); i++)
6201 {
6202 parse_uint32_t("maxComputeWorkGroupCount", obj_maxComputeWorkGroupCount_arr[i],
6203 const_cast<uint32_t &>((o.maxComputeWorkGroupCount[i])));
6204 }
6205
6206 parse_uint32_t("maxComputeWorkGroupInvocations", obj["maxComputeWorkGroupInvocations"],
6207 (o.maxComputeWorkGroupInvocations));
6208
6209 Json::Value &obj_maxComputeWorkGroupSize_arr = obj["maxComputeWorkGroupSize"];
6210 for (unsigned int i = 0; i < obj_maxComputeWorkGroupSize_arr.size(); i++)
6211 {
6212 parse_uint32_t("maxComputeWorkGroupSize", obj_maxComputeWorkGroupSize_arr[i],
6213 const_cast<uint32_t &>((o.maxComputeWorkGroupSize[i])));
6214 }
6215
6216 parse_uint32_t("subPixelPrecisionBits", obj["subPixelPrecisionBits"], (o.subPixelPrecisionBits));
6217
6218 parse_uint32_t("subTexelPrecisionBits", obj["subTexelPrecisionBits"], (o.subTexelPrecisionBits));
6219
6220 parse_uint32_t("mipmapPrecisionBits", obj["mipmapPrecisionBits"], (o.mipmapPrecisionBits));
6221
6222 parse_uint32_t("maxDrawIndexedIndexValue", obj["maxDrawIndexedIndexValue"], (o.maxDrawIndexedIndexValue));
6223
6224 parse_uint32_t("maxDrawIndirectCount", obj["maxDrawIndirectCount"], (o.maxDrawIndirectCount));
6225
6226 parse_float("maxSamplerLodBias", obj["maxSamplerLodBias"], (o.maxSamplerLodBias));
6227
6228 parse_float("maxSamplerAnisotropy", obj["maxSamplerAnisotropy"], (o.maxSamplerAnisotropy));
6229
6230 parse_uint32_t("maxViewports", obj["maxViewports"], (o.maxViewports));
6231
6232 Json::Value &obj_maxViewportDimensions_arr = obj["maxViewportDimensions"];
6233 for (unsigned int i = 0; i < obj_maxViewportDimensions_arr.size(); i++)
6234 {
6235 parse_uint32_t("maxViewportDimensions", obj_maxViewportDimensions_arr[i],
6236 const_cast<uint32_t &>((o.maxViewportDimensions[i])));
6237 }
6238
6239 Json::Value &obj_viewportBoundsRange_arr = obj["viewportBoundsRange"];
6240 for (unsigned int i = 0; i < obj_viewportBoundsRange_arr.size(); i++)
6241 {
6242 parse_float("viewportBoundsRange", obj_viewportBoundsRange_arr[i],
6243 const_cast<float &>((o.viewportBoundsRange[i])));
6244 }
6245
6246 parse_uint32_t("viewportSubPixelBits", obj["viewportSubPixelBits"], (o.viewportSubPixelBits));
6247
6248 parse_size_t("minMemoryMapAlignment", obj["minMemoryMapAlignment"], (o.minMemoryMapAlignment));
6249
6250 parse_VkDeviceSize("minTexelBufferOffsetAlignment", obj["minTexelBufferOffsetAlignment"],
6251 (o.minTexelBufferOffsetAlignment));
6252
6253 parse_VkDeviceSize("minUniformBufferOffsetAlignment", obj["minUniformBufferOffsetAlignment"],
6254 (o.minUniformBufferOffsetAlignment));
6255
6256 parse_VkDeviceSize("minStorageBufferOffsetAlignment", obj["minStorageBufferOffsetAlignment"],
6257 (o.minStorageBufferOffsetAlignment));
6258
6259 parse_int32_t("minTexelOffset", obj["minTexelOffset"], (o.minTexelOffset));
6260
6261 parse_uint32_t("maxTexelOffset", obj["maxTexelOffset"], (o.maxTexelOffset));
6262
6263 parse_int32_t("minTexelGatherOffset", obj["minTexelGatherOffset"], (o.minTexelGatherOffset));
6264
6265 parse_uint32_t("maxTexelGatherOffset", obj["maxTexelGatherOffset"], (o.maxTexelGatherOffset));
6266
6267 parse_float("minInterpolationOffset", obj["minInterpolationOffset"], (o.minInterpolationOffset));
6268
6269 parse_float("maxInterpolationOffset", obj["maxInterpolationOffset"], (o.maxInterpolationOffset));
6270
6271 parse_uint32_t("subPixelInterpolationOffsetBits", obj["subPixelInterpolationOffsetBits"],
6272 (o.subPixelInterpolationOffsetBits));
6273
6274 parse_uint32_t("maxFramebufferWidth", obj["maxFramebufferWidth"], (o.maxFramebufferWidth));
6275
6276 parse_uint32_t("maxFramebufferHeight", obj["maxFramebufferHeight"], (o.maxFramebufferHeight));
6277
6278 parse_uint32_t("maxFramebufferLayers", obj["maxFramebufferLayers"], (o.maxFramebufferLayers));
6279
6280 parse_VkSampleCountFlags("framebufferColorSampleCounts", obj["framebufferColorSampleCounts"],
6281 (o.framebufferColorSampleCounts));
6282
6283 parse_VkSampleCountFlags("framebufferDepthSampleCounts", obj["framebufferDepthSampleCounts"],
6284 (o.framebufferDepthSampleCounts));
6285
6286 parse_VkSampleCountFlags("framebufferStencilSampleCounts", obj["framebufferStencilSampleCounts"],
6287 (o.framebufferStencilSampleCounts));
6288
6289 parse_VkSampleCountFlags("framebufferNoAttachmentsSampleCounts", obj["framebufferNoAttachmentsSampleCounts"],
6290 (o.framebufferNoAttachmentsSampleCounts));
6291
6292 parse_uint32_t("maxColorAttachments", obj["maxColorAttachments"], (o.maxColorAttachments));
6293
6294 parse_VkSampleCountFlags("sampledImageColorSampleCounts", obj["sampledImageColorSampleCounts"],
6295 (o.sampledImageColorSampleCounts));
6296
6297 parse_VkSampleCountFlags("sampledImageIntegerSampleCounts", obj["sampledImageIntegerSampleCounts"],
6298 (o.sampledImageIntegerSampleCounts));
6299
6300 parse_VkSampleCountFlags("sampledImageDepthSampleCounts", obj["sampledImageDepthSampleCounts"],
6301 (o.sampledImageDepthSampleCounts));
6302
6303 parse_VkSampleCountFlags("sampledImageStencilSampleCounts", obj["sampledImageStencilSampleCounts"],
6304 (o.sampledImageStencilSampleCounts));
6305
6306 parse_VkSampleCountFlags("storageImageSampleCounts", obj["storageImageSampleCounts"], (o.storageImageSampleCounts));
6307
6308 parse_uint32_t("maxSampleMaskWords", obj["maxSampleMaskWords"], (o.maxSampleMaskWords));
6309
6310 parse_VkBool32("timestampComputeAndGraphics", obj["timestampComputeAndGraphics"], (o.timestampComputeAndGraphics));
6311
6312 parse_float("timestampPeriod", obj["timestampPeriod"], (o.timestampPeriod));
6313
6314 parse_uint32_t("maxClipDistances", obj["maxClipDistances"], (o.maxClipDistances));
6315
6316 parse_uint32_t("maxCullDistances", obj["maxCullDistances"], (o.maxCullDistances));
6317
6318 parse_uint32_t("maxCombinedClipAndCullDistances", obj["maxCombinedClipAndCullDistances"],
6319 (o.maxCombinedClipAndCullDistances));
6320
6321 parse_uint32_t("discreteQueuePriorities", obj["discreteQueuePriorities"], (o.discreteQueuePriorities));
6322
6323 Json::Value &obj_pointSizeRange_arr = obj["pointSizeRange"];
6324 for (unsigned int i = 0; i < obj_pointSizeRange_arr.size(); i++)
6325 {
6326 parse_float("pointSizeRange", obj_pointSizeRange_arr[i], const_cast<float &>((o.pointSizeRange[i])));
6327 }
6328
6329 Json::Value &obj_lineWidthRange_arr = obj["lineWidthRange"];
6330 for (unsigned int i = 0; i < obj_lineWidthRange_arr.size(); i++)
6331 {
6332 parse_float("lineWidthRange", obj_lineWidthRange_arr[i], const_cast<float &>((o.lineWidthRange[i])));
6333 }
6334
6335 parse_float("pointSizeGranularity", obj["pointSizeGranularity"], (o.pointSizeGranularity));
6336
6337 parse_float("lineWidthGranularity", obj["lineWidthGranularity"], (o.lineWidthGranularity));
6338
6339 parse_VkBool32("strictLines", obj["strictLines"], (o.strictLines));
6340
6341 parse_VkBool32("standardSampleLocations", obj["standardSampleLocations"], (o.standardSampleLocations));
6342
6343 parse_VkDeviceSize("optimalBufferCopyOffsetAlignment", obj["optimalBufferCopyOffsetAlignment"],
6344 (o.optimalBufferCopyOffsetAlignment));
6345
6346 parse_VkDeviceSize("optimalBufferCopyRowPitchAlignment", obj["optimalBufferCopyRowPitchAlignment"],
6347 (o.optimalBufferCopyRowPitchAlignment));
6348
6349 parse_VkDeviceSize("nonCoherentAtomSize", obj["nonCoherentAtomSize"], (o.nonCoherentAtomSize));
6350 }
6351
parse_VkPhysicalDeviceMemoryProperties(const char * s,Json::Value & obj,VkPhysicalDeviceMemoryProperties & o)6352 static void parse_VkPhysicalDeviceMemoryProperties(const char *s, Json::Value &obj, VkPhysicalDeviceMemoryProperties &o)
6353 {
6354
6355 parse_uint32_t("memoryTypeCount", obj["memoryTypeCount"], (o.memoryTypeCount));
6356
6357 Json::Value &obj_memoryTypes_arr = obj["memoryTypes"];
6358 for (unsigned int i = 0; i < obj_memoryTypes_arr.size(); i++)
6359 {
6360 parse_VkMemoryType("memoryTypes", obj_memoryTypes_arr[i], const_cast<VkMemoryType &>((o.memoryTypes[i])));
6361 }
6362
6363 parse_uint32_t("memoryHeapCount", obj["memoryHeapCount"], (o.memoryHeapCount));
6364
6365 Json::Value &obj_memoryHeaps_arr = obj["memoryHeaps"];
6366 for (unsigned int i = 0; i < obj_memoryHeaps_arr.size(); i++)
6367 {
6368 parse_VkMemoryHeap("memoryHeaps", obj_memoryHeaps_arr[i], const_cast<VkMemoryHeap &>((o.memoryHeaps[i])));
6369 }
6370 }
6371
parse_VkPhysicalDeviceSparseProperties(const char * s,Json::Value & obj,VkPhysicalDeviceSparseProperties & o)6372 static void parse_VkPhysicalDeviceSparseProperties(const char *s, Json::Value &obj, VkPhysicalDeviceSparseProperties &o)
6373 {
6374
6375 parse_VkBool32("residencyStandard2DBlockShape", obj["residencyStandard2DBlockShape"],
6376 (o.residencyStandard2DBlockShape));
6377
6378 parse_VkBool32("residencyStandard2DMultisampleBlockShape", obj["residencyStandard2DMultisampleBlockShape"],
6379 (o.residencyStandard2DMultisampleBlockShape));
6380
6381 parse_VkBool32("residencyStandard3DBlockShape", obj["residencyStandard3DBlockShape"],
6382 (o.residencyStandard3DBlockShape));
6383
6384 parse_VkBool32("residencyAlignedMipSize", obj["residencyAlignedMipSize"], (o.residencyAlignedMipSize));
6385
6386 parse_VkBool32("residencyNonResidentStrict", obj["residencyNonResidentStrict"], (o.residencyNonResidentStrict));
6387 }
6388
parse_VkPhysicalDeviceProperties(const char * s,Json::Value & obj,VkPhysicalDeviceProperties & o)6389 static void parse_VkPhysicalDeviceProperties(const char *s, Json::Value &obj, VkPhysicalDeviceProperties &o)
6390 {
6391
6392 parse_uint32_t("apiVersion", obj["apiVersion"], (o.apiVersion));
6393
6394 parse_uint32_t("driverVersion", obj["driverVersion"], (o.driverVersion));
6395
6396 parse_uint32_t("vendorID", obj["vendorID"], (o.vendorID));
6397
6398 parse_uint32_t("deviceID", obj["deviceID"], (o.deviceID));
6399
6400 parse_VkPhysicalDeviceType("deviceType", obj["deviceType"], (o.deviceType));
6401
6402 /** TODO: Handle this - deviceName **/
6403
6404 Json::Value &obj_pipelineCacheUUID_arr = obj["pipelineCacheUUID"];
6405 for (unsigned int i = 0; i < obj_pipelineCacheUUID_arr.size(); i++)
6406 {
6407 parse_uint8_t("pipelineCacheUUID", obj_pipelineCacheUUID_arr[i],
6408 const_cast<uint8_t &>((o.pipelineCacheUUID[i])));
6409 }
6410
6411 parse_VkPhysicalDeviceLimits("limits", obj["limits"], (o.limits));
6412
6413 parse_VkPhysicalDeviceSparseProperties("sparseProperties", obj["sparseProperties"], (o.sparseProperties));
6414 }
6415
parse_VkQueueFamilyProperties(const char * s,Json::Value & obj,VkQueueFamilyProperties & o)6416 static void parse_VkQueueFamilyProperties(const char *s, Json::Value &obj, VkQueueFamilyProperties &o)
6417 {
6418
6419 parse_VkQueueFlags("queueFlags", obj["queueFlags"], (o.queueFlags));
6420
6421 parse_uint32_t("queueCount", obj["queueCount"], (o.queueCount));
6422
6423 parse_uint32_t("timestampValidBits", obj["timestampValidBits"], (o.timestampValidBits));
6424
6425 parse_VkExtent3D("minImageTransferGranularity", obj["minImageTransferGranularity"],
6426 (o.minImageTransferGranularity));
6427 }
6428
parse_VkDeviceQueueCreateInfo(const char * s,Json::Value & obj,VkDeviceQueueCreateInfo & o)6429 static void parse_VkDeviceQueueCreateInfo(const char *s, Json::Value &obj, VkDeviceQueueCreateInfo &o)
6430 {
6431
6432 parse_VkStructureType("sType", obj["sType"], (o.sType));
6433
6434 o.pNext = (VkDeviceQueueCreateInfo *)parsePNextChain(obj);
6435
6436 parse_VkDeviceQueueCreateFlags("flags", obj["flags"], (o.flags));
6437
6438 parse_uint32_t("queueFamilyIndex", obj["queueFamilyIndex"], (o.queueFamilyIndex));
6439
6440 parse_uint32_t("queueCount", obj["queueCount"], (o.queueCount));
6441
6442 (o.pQueuePriorities) = (float *)s_globalMem.allocate((o.queueCount), sizeof(float));
6443 Json::Value &obj_pQueuePriorities_arr = obj["pQueuePriorities"];
6444 for (unsigned int i = 0; i < obj_pQueuePriorities_arr.size(); i++)
6445 {
6446 parse_float("pQueuePriorities", obj_pQueuePriorities_arr[i], const_cast<float &>((o.pQueuePriorities[i])));
6447 }
6448 }
6449
parse_VkDeviceCreateInfo(const char * s,Json::Value & obj,VkDeviceCreateInfo & o)6450 static void parse_VkDeviceCreateInfo(const char *s, Json::Value &obj, VkDeviceCreateInfo &o)
6451 {
6452
6453 parse_VkStructureType("sType", obj["sType"], (o.sType));
6454
6455 o.pNext = (VkDeviceCreateInfo *)parsePNextChain(obj);
6456
6457 parse_VkDeviceCreateFlags("flags", obj["flags"], (o.flags));
6458
6459 parse_uint32_t("queueCreateInfoCount", obj["queueCreateInfoCount"], (o.queueCreateInfoCount));
6460
6461 (o.pQueueCreateInfos) =
6462 (VkDeviceQueueCreateInfo *)s_globalMem.allocate((o.queueCreateInfoCount), sizeof(VkDeviceQueueCreateInfo));
6463 Json::Value &obj_pQueueCreateInfos = obj["pQueueCreateInfos"];
6464 if (obj_pQueueCreateInfos.size() == 0)
6465 (o.pQueueCreateInfos) = nullptr;
6466 else
6467 {
6468 for (unsigned int i = 0; i < (o.queueCreateInfoCount); i++)
6469 {
6470 parse_VkDeviceQueueCreateInfo("pQueueCreateInfos", obj_pQueueCreateInfos[i],
6471 const_cast<VkDeviceQueueCreateInfo &>((o.pQueueCreateInfos[i])));
6472 }
6473 }
6474
6475 parse_uint32_t("enabledLayerCount", obj["enabledLayerCount"], (o.enabledLayerCount));
6476
6477 /** TODO: Handle this - ppEnabledLayerNames **/
6478
6479 parse_uint32_t("enabledExtensionCount", obj["enabledExtensionCount"], (o.enabledExtensionCount));
6480
6481 /** TODO: Handle this - ppEnabledExtensionNames **/
6482
6483 {
6484 Json::Value &obj_pEnabledFeatures = obj["pEnabledFeatures"];
6485 const int sz = obj_pEnabledFeatures.size();
6486 if (obj_pEnabledFeatures.size() == 0)
6487 {
6488 (o.pEnabledFeatures) = nullptr;
6489 }
6490 else
6491 {
6492 (o.pEnabledFeatures) =
6493 (VkPhysicalDeviceFeatures *)s_globalMem.allocate(1, sizeof(VkPhysicalDeviceFeatures));
6494 parse_VkPhysicalDeviceFeatures("pEnabledFeatures", obj_pEnabledFeatures,
6495 const_cast<VkPhysicalDeviceFeatures &>(*(o.pEnabledFeatures)));
6496 }
6497 }
6498 }
6499
parse_VkExtensionProperties(const char * s,Json::Value & obj,VkExtensionProperties & o)6500 static void parse_VkExtensionProperties(const char *s, Json::Value &obj, VkExtensionProperties &o)
6501 {
6502
6503 /** TODO: Handle this - extensionName **/
6504
6505 parse_uint32_t("specVersion", obj["specVersion"], (o.specVersion));
6506 }
6507
parse_VkLayerProperties(const char * s,Json::Value & obj,VkLayerProperties & o)6508 static void parse_VkLayerProperties(const char *s, Json::Value &obj, VkLayerProperties &o)
6509 {
6510
6511 /** TODO: Handle this - layerName **/
6512
6513 parse_uint32_t("specVersion", obj["specVersion"], (o.specVersion));
6514
6515 parse_uint32_t("implementationVersion", obj["implementationVersion"], (o.implementationVersion));
6516
6517 /** TODO: Handle this - description **/
6518 }
6519
parse_VkSubmitInfo(const char * s,Json::Value & obj,VkSubmitInfo & o)6520 static void parse_VkSubmitInfo(const char *s, Json::Value &obj, VkSubmitInfo &o)
6521 {
6522
6523 parse_VkStructureType("sType", obj["sType"], (o.sType));
6524
6525 o.pNext = (VkSubmitInfo *)parsePNextChain(obj);
6526
6527 parse_uint32_t("waitSemaphoreCount", obj["waitSemaphoreCount"], (o.waitSemaphoreCount));
6528
6529 (o.pWaitSemaphores) = (VkSemaphore *)s_globalMem.allocate((o.waitSemaphoreCount), sizeof(VkSemaphore));
6530 Json::Value &obj_pWaitSemaphores_arr = obj["pWaitSemaphores"];
6531 for (unsigned int i = 0; i < obj_pWaitSemaphores_arr.size(); i++)
6532 {
6533 parse_VkSemaphore("pWaitSemaphores", obj_pWaitSemaphores_arr[i],
6534 const_cast<VkSemaphore &>((o.pWaitSemaphores[i])));
6535 }
6536
6537 (o.pWaitDstStageMask) =
6538 (VkPipelineStageFlags *)s_globalMem.allocate((o.waitSemaphoreCount), sizeof(VkPipelineStageFlags));
6539 Json::Value &obj_pWaitDstStageMask_arr = obj["pWaitDstStageMask"];
6540 for (unsigned int i = 0; i < obj_pWaitDstStageMask_arr.size(); i++)
6541 {
6542 parse_VkPipelineStageFlags("pWaitDstStageMask", obj_pWaitDstStageMask_arr[i],
6543 const_cast<VkPipelineStageFlags &>((o.pWaitDstStageMask[i])));
6544 }
6545
6546 parse_uint32_t("commandBufferCount", obj["commandBufferCount"], (o.commandBufferCount));
6547
6548 (o.pCommandBuffers) = (VkCommandBuffer *)s_globalMem.allocate((o.commandBufferCount), sizeof(VkCommandBuffer));
6549 Json::Value &obj_pCommandBuffers_arr = obj["pCommandBuffers"];
6550 for (unsigned int i = 0; i < obj_pCommandBuffers_arr.size(); i++)
6551 {
6552 parse_VkCommandBuffer("pCommandBuffers", obj_pCommandBuffers_arr[i],
6553 const_cast<VkCommandBuffer &>((o.pCommandBuffers[i])));
6554 }
6555
6556 parse_uint32_t("signalSemaphoreCount", obj["signalSemaphoreCount"], (o.signalSemaphoreCount));
6557
6558 (o.pSignalSemaphores) = (VkSemaphore *)s_globalMem.allocate((o.signalSemaphoreCount), sizeof(VkSemaphore));
6559 Json::Value &obj_pSignalSemaphores_arr = obj["pSignalSemaphores"];
6560 for (unsigned int i = 0; i < obj_pSignalSemaphores_arr.size(); i++)
6561 {
6562 parse_VkSemaphore("pSignalSemaphores", obj_pSignalSemaphores_arr[i],
6563 const_cast<VkSemaphore &>((o.pSignalSemaphores[i])));
6564 }
6565 }
6566
parse_VkMappedMemoryRange(const char * s,Json::Value & obj,VkMappedMemoryRange & o)6567 static void parse_VkMappedMemoryRange(const char *s, Json::Value &obj, VkMappedMemoryRange &o)
6568 {
6569
6570 parse_VkStructureType("sType", obj["sType"], (o.sType));
6571
6572 o.pNext = (VkMappedMemoryRange *)parsePNextChain(obj);
6573
6574 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
6575
6576 parse_VkDeviceSize("size", obj["size"], (o.size));
6577 }
6578
parse_VkMemoryAllocateInfo(const char * s,Json::Value & obj,VkMemoryAllocateInfo & o)6579 static void parse_VkMemoryAllocateInfo(const char *s, Json::Value &obj, VkMemoryAllocateInfo &o)
6580 {
6581
6582 parse_VkStructureType("sType", obj["sType"], (o.sType));
6583
6584 o.pNext = (VkMemoryAllocateInfo *)parsePNextChain(obj);
6585
6586 parse_VkDeviceSize("allocationSize", obj["allocationSize"], (o.allocationSize));
6587
6588 parse_uint32_t("memoryTypeIndex", obj["memoryTypeIndex"], (o.memoryTypeIndex));
6589 }
6590
parse_VkMemoryRequirements(const char * s,Json::Value & obj,VkMemoryRequirements & o)6591 static void parse_VkMemoryRequirements(const char *s, Json::Value &obj, VkMemoryRequirements &o)
6592 {
6593
6594 parse_VkDeviceSize("size", obj["size"], (o.size));
6595
6596 parse_VkDeviceSize("alignment", obj["alignment"], (o.alignment));
6597
6598 parse_uint32_t("memoryTypeBits", obj["memoryTypeBits"], (o.memoryTypeBits));
6599 }
6600
parse_VkImageSubresource(const char * s,Json::Value & obj,VkImageSubresource & o)6601 static void parse_VkImageSubresource(const char *s, Json::Value &obj, VkImageSubresource &o)
6602 {
6603
6604 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
6605
6606 parse_uint32_t("mipLevel", obj["mipLevel"], (o.mipLevel));
6607
6608 parse_uint32_t("arrayLayer", obj["arrayLayer"], (o.arrayLayer));
6609 }
6610
parse_VkFenceCreateInfo(const char * s,Json::Value & obj,VkFenceCreateInfo & o)6611 static void parse_VkFenceCreateInfo(const char *s, Json::Value &obj, VkFenceCreateInfo &o)
6612 {
6613
6614 parse_VkStructureType("sType", obj["sType"], (o.sType));
6615
6616 o.pNext = (VkFenceCreateInfo *)parsePNextChain(obj);
6617
6618 parse_VkFenceCreateFlags("flags", obj["flags"], (o.flags));
6619 }
6620
parse_VkSemaphoreCreateInfo(const char * s,Json::Value & obj,VkSemaphoreCreateInfo & o)6621 static void parse_VkSemaphoreCreateInfo(const char *s, Json::Value &obj, VkSemaphoreCreateInfo &o)
6622 {
6623
6624 parse_VkStructureType("sType", obj["sType"], (o.sType));
6625
6626 o.pNext = (VkSemaphoreCreateInfo *)parsePNextChain(obj);
6627
6628 parse_VkSemaphoreCreateFlags("flags", obj["flags"], (o.flags));
6629 }
6630
parse_VkEventCreateInfo(const char * s,Json::Value & obj,VkEventCreateInfo & o)6631 static void parse_VkEventCreateInfo(const char *s, Json::Value &obj, VkEventCreateInfo &o)
6632 {
6633
6634 parse_VkStructureType("sType", obj["sType"], (o.sType));
6635
6636 o.pNext = (VkEventCreateInfo *)parsePNextChain(obj);
6637
6638 parse_VkEventCreateFlags("flags", obj["flags"], (o.flags));
6639 }
6640
parse_VkQueryPoolCreateInfo(const char * s,Json::Value & obj,VkQueryPoolCreateInfo & o)6641 static void parse_VkQueryPoolCreateInfo(const char *s, Json::Value &obj, VkQueryPoolCreateInfo &o)
6642 {
6643
6644 parse_VkStructureType("sType", obj["sType"], (o.sType));
6645
6646 o.pNext = (VkQueryPoolCreateInfo *)parsePNextChain(obj);
6647
6648 parse_VkQueryPoolCreateFlags("flags", obj["flags"], (o.flags));
6649
6650 parse_VkQueryType("queryType", obj["queryType"], (o.queryType));
6651
6652 parse_uint32_t("queryCount", obj["queryCount"], (o.queryCount));
6653
6654 parse_VkQueryPipelineStatisticFlags("pipelineStatistics", obj["pipelineStatistics"], (o.pipelineStatistics));
6655 }
6656
parse_VkBufferCreateInfo(const char * s,Json::Value & obj,VkBufferCreateInfo & o)6657 static void parse_VkBufferCreateInfo(const char *s, Json::Value &obj, VkBufferCreateInfo &o)
6658 {
6659
6660 parse_VkStructureType("sType", obj["sType"], (o.sType));
6661
6662 o.pNext = (VkBufferCreateInfo *)parsePNextChain(obj);
6663
6664 parse_VkBufferCreateFlags("flags", obj["flags"], (o.flags));
6665
6666 parse_VkDeviceSize("size", obj["size"], (o.size));
6667
6668 parse_VkBufferUsageFlags("usage", obj["usage"], (o.usage));
6669
6670 parse_VkSharingMode("sharingMode", obj["sharingMode"], (o.sharingMode));
6671
6672 parse_uint32_t("queueFamilyIndexCount", obj["queueFamilyIndexCount"], (o.queueFamilyIndexCount));
6673
6674 (o.pQueueFamilyIndices) = (uint32_t *)s_globalMem.allocate((o.queueFamilyIndexCount), sizeof(uint32_t));
6675 Json::Value &obj_pQueueFamilyIndices_arr = obj["pQueueFamilyIndices"];
6676 for (unsigned int i = 0; i < obj_pQueueFamilyIndices_arr.size(); i++)
6677 {
6678 parse_uint32_t("pQueueFamilyIndices", obj_pQueueFamilyIndices_arr[i],
6679 const_cast<uint32_t &>((o.pQueueFamilyIndices[i])));
6680 }
6681 }
6682
parse_VkBufferViewCreateInfo(const char * s,Json::Value & obj,VkBufferViewCreateInfo & o)6683 static void parse_VkBufferViewCreateInfo(const char *s, Json::Value &obj, VkBufferViewCreateInfo &o)
6684 {
6685
6686 parse_VkStructureType("sType", obj["sType"], (o.sType));
6687
6688 o.pNext = (VkBufferViewCreateInfo *)parsePNextChain(obj);
6689
6690 parse_VkBufferViewCreateFlags("flags", obj["flags"], (o.flags));
6691
6692 parse_VkFormat("format", obj["format"], (o.format));
6693
6694 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
6695
6696 parse_VkDeviceSize("range", obj["range"], (o.range));
6697 }
6698
parse_VkImageCreateInfo(const char * s,Json::Value & obj,VkImageCreateInfo & o)6699 static void parse_VkImageCreateInfo(const char *s, Json::Value &obj, VkImageCreateInfo &o)
6700 {
6701
6702 parse_VkStructureType("sType", obj["sType"], (o.sType));
6703
6704 o.pNext = (VkImageCreateInfo *)parsePNextChain(obj);
6705
6706 parse_VkImageCreateFlags("flags", obj["flags"], (o.flags));
6707
6708 parse_VkImageType("imageType", obj["imageType"], (o.imageType));
6709
6710 parse_VkFormat("format", obj["format"], (o.format));
6711
6712 parse_VkExtent3D("extent", obj["extent"], (o.extent));
6713
6714 parse_uint32_t("mipLevels", obj["mipLevels"], (o.mipLevels));
6715
6716 parse_uint32_t("arrayLayers", obj["arrayLayers"], (o.arrayLayers));
6717
6718 parse_VkSampleCountFlagBits("samples", obj["samples"], (o.samples));
6719
6720 parse_VkImageTiling("tiling", obj["tiling"], (o.tiling));
6721
6722 parse_VkImageUsageFlags("usage", obj["usage"], (o.usage));
6723
6724 parse_VkSharingMode("sharingMode", obj["sharingMode"], (o.sharingMode));
6725
6726 parse_uint32_t("queueFamilyIndexCount", obj["queueFamilyIndexCount"], (o.queueFamilyIndexCount));
6727
6728 (o.pQueueFamilyIndices) = (uint32_t *)s_globalMem.allocate((o.queueFamilyIndexCount), sizeof(uint32_t));
6729 Json::Value &obj_pQueueFamilyIndices_arr = obj["pQueueFamilyIndices"];
6730 for (unsigned int i = 0; i < obj_pQueueFamilyIndices_arr.size(); i++)
6731 {
6732 parse_uint32_t("pQueueFamilyIndices", obj_pQueueFamilyIndices_arr[i],
6733 const_cast<uint32_t &>((o.pQueueFamilyIndices[i])));
6734 }
6735
6736 parse_VkImageLayout("initialLayout", obj["initialLayout"], (o.initialLayout));
6737 }
6738
parse_VkSubresourceLayout(const char * s,Json::Value & obj,VkSubresourceLayout & o)6739 static void parse_VkSubresourceLayout(const char *s, Json::Value &obj, VkSubresourceLayout &o)
6740 {
6741
6742 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
6743
6744 parse_VkDeviceSize("size", obj["size"], (o.size));
6745
6746 parse_VkDeviceSize("rowPitch", obj["rowPitch"], (o.rowPitch));
6747
6748 parse_VkDeviceSize("arrayPitch", obj["arrayPitch"], (o.arrayPitch));
6749
6750 parse_VkDeviceSize("depthPitch", obj["depthPitch"], (o.depthPitch));
6751 }
6752
parse_VkComponentMapping(const char * s,Json::Value & obj,VkComponentMapping & o)6753 static void parse_VkComponentMapping(const char *s, Json::Value &obj, VkComponentMapping &o)
6754 {
6755
6756 parse_VkComponentSwizzle("r", obj["r"], (o.r));
6757
6758 parse_VkComponentSwizzle("g", obj["g"], (o.g));
6759
6760 parse_VkComponentSwizzle("b", obj["b"], (o.b));
6761
6762 parse_VkComponentSwizzle("a", obj["a"], (o.a));
6763 }
6764
parse_VkImageViewCreateInfo(const char * s,Json::Value & obj,VkImageViewCreateInfo & o)6765 static void parse_VkImageViewCreateInfo(const char *s, Json::Value &obj, VkImageViewCreateInfo &o)
6766 {
6767
6768 parse_VkStructureType("sType", obj["sType"], (o.sType));
6769
6770 o.pNext = (VkImageViewCreateInfo *)parsePNextChain(obj);
6771
6772 parse_VkImageViewCreateFlags("flags", obj["flags"], (o.flags));
6773
6774 parse_VkImageViewType("viewType", obj["viewType"], (o.viewType));
6775
6776 parse_VkFormat("format", obj["format"], (o.format));
6777
6778 parse_VkComponentMapping("components", obj["components"], (o.components));
6779
6780 parse_VkImageSubresourceRange("subresourceRange", obj["subresourceRange"], (o.subresourceRange));
6781 }
6782
parse_VkPipelineCacheCreateInfo(const char * s,Json::Value & obj,VkPipelineCacheCreateInfo & o)6783 static void parse_VkPipelineCacheCreateInfo(const char *s, Json::Value &obj, VkPipelineCacheCreateInfo &o)
6784 {
6785
6786 parse_VkStructureType("sType", obj["sType"], (o.sType));
6787
6788 o.pNext = (VkPipelineCacheCreateInfo *)parsePNextChain(obj);
6789
6790 parse_VkPipelineCacheCreateFlags("flags", obj["flags"], (o.flags));
6791
6792 parse_size_t("initialDataSize", obj["initialDataSize"], (o.initialDataSize));
6793
6794 if (o.initialDataSize > 0U)
6795 {
6796 void *data = s_globalMem.allocate(uint32_t(o.initialDataSize));
6797 parse_void_data("pInitialData", obj["pInitialData"], data, int(o.initialDataSize));
6798 o.pInitialData = data;
6799 }
6800 else
6801 o.pInitialData = NULL;
6802 }
6803
parse_VkSpecializationMapEntry(const char * s,Json::Value & obj,VkSpecializationMapEntry & o)6804 static void parse_VkSpecializationMapEntry(const char *s, Json::Value &obj, VkSpecializationMapEntry &o)
6805 {
6806
6807 parse_uint32_t("constantID", obj["constantID"], (o.constantID));
6808
6809 parse_uint32_t("offset", obj["offset"], (o.offset));
6810
6811 parse_size_t("size", obj["size"], (o.size));
6812 }
6813
parse_VkSpecializationInfo(const char * s,Json::Value & obj,VkSpecializationInfo & o)6814 static void parse_VkSpecializationInfo(const char *s, Json::Value &obj, VkSpecializationInfo &o)
6815 {
6816
6817 parse_uint32_t("mapEntryCount", obj["mapEntryCount"], (o.mapEntryCount));
6818
6819 (o.pMapEntries) =
6820 (VkSpecializationMapEntry *)s_globalMem.allocate((o.mapEntryCount), sizeof(VkSpecializationMapEntry));
6821 Json::Value &obj_pMapEntries = obj["pMapEntries"];
6822 if (obj_pMapEntries.size() == 0)
6823 (o.pMapEntries) = nullptr;
6824 else
6825 {
6826 for (unsigned int i = 0; i < (o.mapEntryCount); i++)
6827 {
6828 parse_VkSpecializationMapEntry("pMapEntries", obj_pMapEntries[i],
6829 const_cast<VkSpecializationMapEntry &>((o.pMapEntries[i])));
6830 }
6831 }
6832
6833 parse_size_t("dataSize", obj["dataSize"], (o.dataSize));
6834
6835 if (o.dataSize > 0U)
6836 {
6837 void *data = s_globalMem.allocate(uint32_t(o.dataSize));
6838 parse_void_data("pData", obj["pData"], data, int(o.dataSize));
6839 o.pData = data;
6840 }
6841 else
6842 o.pData = NULL;
6843 }
6844
parse_VkPipelineShaderStageCreateInfo(const char * s,Json::Value & obj,VkPipelineShaderStageCreateInfo & o)6845 static void parse_VkPipelineShaderStageCreateInfo(const char *s, Json::Value &obj, VkPipelineShaderStageCreateInfo &o)
6846 {
6847
6848 parse_VkStructureType("sType", obj["sType"], (o.sType));
6849
6850 o.pNext = (VkPipelineShaderStageCreateInfo *)parsePNextChain(obj);
6851
6852 parse_VkPipelineShaderStageCreateFlags("flags", obj["flags"], (o.flags));
6853
6854 parse_VkShaderStageFlagBits("stage", obj["stage"], (o.stage));
6855
6856 uint64_t moduleInternal = 0;
6857 parse_uint64_t("module", obj["module"], moduleInternal);
6858 o.module = VkShaderModule(moduleInternal);
6859
6860 (o.pName) = (const char *)s_globalMem.allocate(255);
6861 parse_char("pName", obj["pName"], &(o.pName));
6862
6863 {
6864 Json::Value &obj_pSpecializationInfo = obj["pSpecializationInfo"];
6865 const int sz = obj_pSpecializationInfo.size();
6866 if (obj_pSpecializationInfo.size() == 0)
6867 {
6868 (o.pSpecializationInfo) = nullptr;
6869 }
6870 else
6871 {
6872 (o.pSpecializationInfo) = (VkSpecializationInfo *)s_globalMem.allocate(1, sizeof(VkSpecializationInfo));
6873 parse_VkSpecializationInfo("pSpecializationInfo", obj_pSpecializationInfo,
6874 const_cast<VkSpecializationInfo &>(*(o.pSpecializationInfo)));
6875 }
6876 }
6877 }
6878
parse_VkComputePipelineCreateInfo(const char * s,Json::Value & obj,VkComputePipelineCreateInfo & o)6879 static void parse_VkComputePipelineCreateInfo(const char *s, Json::Value &obj, VkComputePipelineCreateInfo &o)
6880 {
6881
6882 parse_VkStructureType("sType", obj["sType"], (o.sType));
6883
6884 o.pNext = (VkComputePipelineCreateInfo *)parsePNextChain(obj);
6885
6886 parse_VkPipelineCreateFlags("flags", obj["flags"], (o.flags));
6887
6888 parse_VkPipelineShaderStageCreateInfo("stage", obj["stage"], (o.stage));
6889
6890 uint64_t layoutInternal = 0;
6891 parse_uint64_t("layout", obj["layout"], layoutInternal);
6892 o.layout = VkPipelineLayout(layoutInternal);
6893
6894 parse_int32_t("basePipelineIndex", obj["basePipelineIndex"], (o.basePipelineIndex));
6895 }
6896
parse_VkVertexInputBindingDescription(const char * s,Json::Value & obj,VkVertexInputBindingDescription & o)6897 static void parse_VkVertexInputBindingDescription(const char *s, Json::Value &obj, VkVertexInputBindingDescription &o)
6898 {
6899
6900 parse_uint32_t("binding", obj["binding"], (o.binding));
6901
6902 parse_uint32_t("stride", obj["stride"], (o.stride));
6903
6904 parse_VkVertexInputRate("inputRate", obj["inputRate"], (o.inputRate));
6905 }
6906
parse_VkVertexInputAttributeDescription(const char * s,Json::Value & obj,VkVertexInputAttributeDescription & o)6907 static void parse_VkVertexInputAttributeDescription(const char *s, Json::Value &obj,
6908 VkVertexInputAttributeDescription &o)
6909 {
6910
6911 parse_uint32_t("location", obj["location"], (o.location));
6912
6913 parse_uint32_t("binding", obj["binding"], (o.binding));
6914
6915 parse_VkFormat("format", obj["format"], (o.format));
6916
6917 parse_uint32_t("offset", obj["offset"], (o.offset));
6918 }
6919
parse_VkPipelineVertexInputStateCreateInfo(const char * s,Json::Value & obj,VkPipelineVertexInputStateCreateInfo & o)6920 static void parse_VkPipelineVertexInputStateCreateInfo(const char *s, Json::Value &obj,
6921 VkPipelineVertexInputStateCreateInfo &o)
6922 {
6923
6924 parse_VkStructureType("sType", obj["sType"], (o.sType));
6925
6926 o.pNext = (VkPipelineVertexInputStateCreateInfo *)parsePNextChain(obj);
6927
6928 parse_VkPipelineVertexInputStateCreateFlags("flags", obj["flags"], (o.flags));
6929
6930 parse_uint32_t("vertexBindingDescriptionCount", obj["vertexBindingDescriptionCount"],
6931 (o.vertexBindingDescriptionCount));
6932
6933 (o.pVertexBindingDescriptions) = (VkVertexInputBindingDescription *)s_globalMem.allocate(
6934 (o.vertexBindingDescriptionCount), sizeof(VkVertexInputBindingDescription));
6935 Json::Value &obj_pVertexBindingDescriptions = obj["pVertexBindingDescriptions"];
6936 if (obj_pVertexBindingDescriptions.size() == 0)
6937 (o.pVertexBindingDescriptions) = nullptr;
6938 else
6939 {
6940 for (unsigned int i = 0; i < (o.vertexBindingDescriptionCount); i++)
6941 {
6942 parse_VkVertexInputBindingDescription(
6943 "pVertexBindingDescriptions", obj_pVertexBindingDescriptions[i],
6944 const_cast<VkVertexInputBindingDescription &>((o.pVertexBindingDescriptions[i])));
6945 }
6946 }
6947
6948 parse_uint32_t("vertexAttributeDescriptionCount", obj["vertexAttributeDescriptionCount"],
6949 (o.vertexAttributeDescriptionCount));
6950
6951 (o.pVertexAttributeDescriptions) = (VkVertexInputAttributeDescription *)s_globalMem.allocate(
6952 (o.vertexAttributeDescriptionCount), sizeof(VkVertexInputAttributeDescription));
6953 Json::Value &obj_pVertexAttributeDescriptions = obj["pVertexAttributeDescriptions"];
6954 if (obj_pVertexAttributeDescriptions.size() == 0)
6955 (o.pVertexAttributeDescriptions) = nullptr;
6956 else
6957 {
6958 for (unsigned int i = 0; i < (o.vertexAttributeDescriptionCount); i++)
6959 {
6960 parse_VkVertexInputAttributeDescription(
6961 "pVertexAttributeDescriptions", obj_pVertexAttributeDescriptions[i],
6962 const_cast<VkVertexInputAttributeDescription &>((o.pVertexAttributeDescriptions[i])));
6963 }
6964 }
6965 }
6966
parse_VkPipelineInputAssemblyStateCreateInfo(const char * s,Json::Value & obj,VkPipelineInputAssemblyStateCreateInfo & o)6967 static void parse_VkPipelineInputAssemblyStateCreateInfo(const char *s, Json::Value &obj,
6968 VkPipelineInputAssemblyStateCreateInfo &o)
6969 {
6970
6971 parse_VkStructureType("sType", obj["sType"], (o.sType));
6972
6973 o.pNext = (VkPipelineInputAssemblyStateCreateInfo *)parsePNextChain(obj);
6974
6975 parse_VkPipelineInputAssemblyStateCreateFlags("flags", obj["flags"], (o.flags));
6976
6977 parse_VkPrimitiveTopology("topology", obj["topology"], (o.topology));
6978
6979 parse_VkBool32("primitiveRestartEnable", obj["primitiveRestartEnable"], (o.primitiveRestartEnable));
6980 }
6981
parse_VkPipelineTessellationStateCreateInfo(const char * s,Json::Value & obj,VkPipelineTessellationStateCreateInfo & o)6982 static void parse_VkPipelineTessellationStateCreateInfo(const char *s, Json::Value &obj,
6983 VkPipelineTessellationStateCreateInfo &o)
6984 {
6985
6986 parse_VkStructureType("sType", obj["sType"], (o.sType));
6987
6988 o.pNext = (VkPipelineTessellationStateCreateInfo *)parsePNextChain(obj);
6989
6990 parse_VkPipelineTessellationStateCreateFlags("flags", obj["flags"], (o.flags));
6991
6992 parse_uint32_t("patchControlPoints", obj["patchControlPoints"], (o.patchControlPoints));
6993 }
6994
parse_VkViewport(const char * s,Json::Value & obj,VkViewport & o)6995 static void parse_VkViewport(const char *s, Json::Value &obj, VkViewport &o)
6996 {
6997
6998 parse_float("x", obj["x"], (o.x));
6999
7000 parse_float("y", obj["y"], (o.y));
7001
7002 parse_float("width", obj["width"], (o.width));
7003
7004 parse_float("height", obj["height"], (o.height));
7005
7006 parse_float("minDepth", obj["minDepth"], (o.minDepth));
7007
7008 parse_float("maxDepth", obj["maxDepth"], (o.maxDepth));
7009 }
7010
parse_VkPipelineViewportStateCreateInfo(const char * s,Json::Value & obj,VkPipelineViewportStateCreateInfo & o)7011 static void parse_VkPipelineViewportStateCreateInfo(const char *s, Json::Value &obj,
7012 VkPipelineViewportStateCreateInfo &o)
7013 {
7014
7015 parse_VkStructureType("sType", obj["sType"], (o.sType));
7016
7017 o.pNext = (VkPipelineViewportStateCreateInfo *)parsePNextChain(obj);
7018
7019 parse_VkPipelineViewportStateCreateFlags("flags", obj["flags"], (o.flags));
7020
7021 parse_uint32_t("viewportCount", obj["viewportCount"], (o.viewportCount));
7022
7023 (o.pViewports) = (VkViewport *)s_globalMem.allocate((o.viewportCount), sizeof(VkViewport));
7024 Json::Value &obj_pViewports = obj["pViewports"];
7025 if (obj_pViewports.size() == 0)
7026 (o.pViewports) = nullptr;
7027 else
7028 {
7029 for (unsigned int i = 0; i < (o.viewportCount); i++)
7030 {
7031 parse_VkViewport("pViewports", obj_pViewports[i], const_cast<VkViewport &>((o.pViewports[i])));
7032 }
7033 }
7034
7035 parse_uint32_t("scissorCount", obj["scissorCount"], (o.scissorCount));
7036
7037 (o.pScissors) = (VkRect2D *)s_globalMem.allocate((o.scissorCount), sizeof(VkRect2D));
7038 Json::Value &obj_pScissors = obj["pScissors"];
7039 if (obj_pScissors.size() == 0)
7040 (o.pScissors) = nullptr;
7041 else
7042 {
7043 for (unsigned int i = 0; i < (o.scissorCount); i++)
7044 {
7045 parse_VkRect2D("pScissors", obj_pScissors[i], const_cast<VkRect2D &>((o.pScissors[i])));
7046 }
7047 }
7048 }
7049
parse_VkPipelineRasterizationStateCreateInfo(const char * s,Json::Value & obj,VkPipelineRasterizationStateCreateInfo & o)7050 static void parse_VkPipelineRasterizationStateCreateInfo(const char *s, Json::Value &obj,
7051 VkPipelineRasterizationStateCreateInfo &o)
7052 {
7053
7054 parse_VkStructureType("sType", obj["sType"], (o.sType));
7055
7056 o.pNext = (VkPipelineRasterizationStateCreateInfo *)parsePNextChain(obj);
7057
7058 parse_VkPipelineRasterizationStateCreateFlags("flags", obj["flags"], (o.flags));
7059
7060 parse_VkBool32("depthClampEnable", obj["depthClampEnable"], (o.depthClampEnable));
7061
7062 parse_VkBool32("rasterizerDiscardEnable", obj["rasterizerDiscardEnable"], (o.rasterizerDiscardEnable));
7063
7064 parse_VkPolygonMode("polygonMode", obj["polygonMode"], (o.polygonMode));
7065
7066 parse_VkCullModeFlags("cullMode", obj["cullMode"], (o.cullMode));
7067
7068 parse_VkFrontFace("frontFace", obj["frontFace"], (o.frontFace));
7069
7070 parse_VkBool32("depthBiasEnable", obj["depthBiasEnable"], (o.depthBiasEnable));
7071
7072 parse_float("depthBiasConstantFactor", obj["depthBiasConstantFactor"], (o.depthBiasConstantFactor));
7073
7074 parse_float("depthBiasClamp", obj["depthBiasClamp"], (o.depthBiasClamp));
7075
7076 parse_float("depthBiasSlopeFactor", obj["depthBiasSlopeFactor"], (o.depthBiasSlopeFactor));
7077
7078 parse_float("lineWidth", obj["lineWidth"], (o.lineWidth));
7079 }
7080
parse_VkPipelineMultisampleStateCreateInfo(const char * s,Json::Value & obj,VkPipelineMultisampleStateCreateInfo & o)7081 static void parse_VkPipelineMultisampleStateCreateInfo(const char *s, Json::Value &obj,
7082 VkPipelineMultisampleStateCreateInfo &o)
7083 {
7084
7085 parse_VkStructureType("sType", obj["sType"], (o.sType));
7086
7087 o.pNext = (VkPipelineMultisampleStateCreateInfo *)parsePNextChain(obj);
7088
7089 parse_VkPipelineMultisampleStateCreateFlags("flags", obj["flags"], (o.flags));
7090
7091 parse_VkSampleCountFlagBits("rasterizationSamples", obj["rasterizationSamples"], (o.rasterizationSamples));
7092
7093 parse_VkBool32("sampleShadingEnable", obj["sampleShadingEnable"], (o.sampleShadingEnable));
7094
7095 parse_float("minSampleShading", obj["minSampleShading"], (o.minSampleShading));
7096
7097 (o.pSampleMask) =
7098 (VkSampleMask *)s_globalMem.allocate((uint32_t(o.rasterizationSamples + 31) / 32), sizeof(VkSampleMask));
7099 Json::Value &obj_pSampleMask = obj["pSampleMask"];
7100 if (o.rasterizationSamples == 0 || obj_pSampleMask.size() == 0)
7101 {
7102 (o.pSampleMask) = nullptr;
7103 }
7104 else
7105 {
7106 for (uint32_t i = 0; i < (uint32_t(o.rasterizationSamples + 31) / 32); i++)
7107 {
7108 parse_uint32_t("pSampleMask", obj_pSampleMask[i], const_cast<VkSampleMask &>((o.pSampleMask[i])));
7109 }
7110 }
7111
7112 parse_VkBool32("alphaToCoverageEnable", obj["alphaToCoverageEnable"], (o.alphaToCoverageEnable));
7113
7114 parse_VkBool32("alphaToOneEnable", obj["alphaToOneEnable"], (o.alphaToOneEnable));
7115 }
7116
parse_VkStencilOpState(const char * s,Json::Value & obj,VkStencilOpState & o)7117 static void parse_VkStencilOpState(const char *s, Json::Value &obj, VkStencilOpState &o)
7118 {
7119
7120 parse_VkStencilOp("failOp", obj["failOp"], (o.failOp));
7121
7122 parse_VkStencilOp("passOp", obj["passOp"], (o.passOp));
7123
7124 parse_VkStencilOp("depthFailOp", obj["depthFailOp"], (o.depthFailOp));
7125
7126 parse_VkCompareOp("compareOp", obj["compareOp"], (o.compareOp));
7127
7128 parse_uint32_t("compareMask", obj["compareMask"], (o.compareMask));
7129
7130 parse_uint32_t("writeMask", obj["writeMask"], (o.writeMask));
7131
7132 parse_uint32_t("reference", obj["reference"], (o.reference));
7133 }
7134
parse_VkPipelineDepthStencilStateCreateInfo(const char * s,Json::Value & obj,VkPipelineDepthStencilStateCreateInfo & o)7135 static void parse_VkPipelineDepthStencilStateCreateInfo(const char *s, Json::Value &obj,
7136 VkPipelineDepthStencilStateCreateInfo &o)
7137 {
7138
7139 parse_VkStructureType("sType", obj["sType"], (o.sType));
7140
7141 o.pNext = (VkPipelineDepthStencilStateCreateInfo *)parsePNextChain(obj);
7142
7143 parse_VkPipelineDepthStencilStateCreateFlags("flags", obj["flags"], (o.flags));
7144
7145 parse_VkBool32("depthTestEnable", obj["depthTestEnable"], (o.depthTestEnable));
7146
7147 parse_VkBool32("depthWriteEnable", obj["depthWriteEnable"], (o.depthWriteEnable));
7148
7149 parse_VkCompareOp("depthCompareOp", obj["depthCompareOp"], (o.depthCompareOp));
7150
7151 parse_VkBool32("depthBoundsTestEnable", obj["depthBoundsTestEnable"], (o.depthBoundsTestEnable));
7152
7153 parse_VkBool32("stencilTestEnable", obj["stencilTestEnable"], (o.stencilTestEnable));
7154
7155 parse_VkStencilOpState("front", obj["front"], (o.front));
7156
7157 parse_VkStencilOpState("back", obj["back"], (o.back));
7158
7159 parse_float("minDepthBounds", obj["minDepthBounds"], (o.minDepthBounds));
7160
7161 parse_float("maxDepthBounds", obj["maxDepthBounds"], (o.maxDepthBounds));
7162 }
7163
parse_VkPipelineColorBlendAttachmentState(const char * s,Json::Value & obj,VkPipelineColorBlendAttachmentState & o)7164 static void parse_VkPipelineColorBlendAttachmentState(const char *s, Json::Value &obj,
7165 VkPipelineColorBlendAttachmentState &o)
7166 {
7167
7168 parse_VkBool32("blendEnable", obj["blendEnable"], (o.blendEnable));
7169
7170 parse_VkBlendFactor("srcColorBlendFactor", obj["srcColorBlendFactor"], (o.srcColorBlendFactor));
7171
7172 parse_VkBlendFactor("dstColorBlendFactor", obj["dstColorBlendFactor"], (o.dstColorBlendFactor));
7173
7174 parse_VkBlendOp("colorBlendOp", obj["colorBlendOp"], (o.colorBlendOp));
7175
7176 parse_VkBlendFactor("srcAlphaBlendFactor", obj["srcAlphaBlendFactor"], (o.srcAlphaBlendFactor));
7177
7178 parse_VkBlendFactor("dstAlphaBlendFactor", obj["dstAlphaBlendFactor"], (o.dstAlphaBlendFactor));
7179
7180 parse_VkBlendOp("alphaBlendOp", obj["alphaBlendOp"], (o.alphaBlendOp));
7181
7182 parse_VkColorComponentFlags("colorWriteMask", obj["colorWriteMask"], (o.colorWriteMask));
7183 }
7184
parse_VkPipelineColorBlendStateCreateInfo(const char * s,Json::Value & obj,VkPipelineColorBlendStateCreateInfo & o)7185 static void parse_VkPipelineColorBlendStateCreateInfo(const char *s, Json::Value &obj,
7186 VkPipelineColorBlendStateCreateInfo &o)
7187 {
7188
7189 parse_VkStructureType("sType", obj["sType"], (o.sType));
7190
7191 o.pNext = (VkPipelineColorBlendStateCreateInfo *)parsePNextChain(obj);
7192
7193 parse_VkPipelineColorBlendStateCreateFlags("flags", obj["flags"], (o.flags));
7194
7195 parse_VkBool32("logicOpEnable", obj["logicOpEnable"], (o.logicOpEnable));
7196
7197 parse_VkLogicOp("logicOp", obj["logicOp"], (o.logicOp));
7198
7199 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
7200
7201 (o.pAttachments) = (VkPipelineColorBlendAttachmentState *)s_globalMem.allocate(
7202 (o.attachmentCount), sizeof(VkPipelineColorBlendAttachmentState));
7203 Json::Value &obj_pAttachments = obj["pAttachments"];
7204 if (obj_pAttachments.size() == 0)
7205 (o.pAttachments) = nullptr;
7206 else
7207 {
7208 for (unsigned int i = 0; i < (o.attachmentCount); i++)
7209 {
7210 parse_VkPipelineColorBlendAttachmentState(
7211 "pAttachments", obj_pAttachments[i],
7212 const_cast<VkPipelineColorBlendAttachmentState &>((o.pAttachments[i])));
7213 }
7214 }
7215
7216 Json::Value &obj_blendConstants_arr = obj["blendConstants"];
7217 for (unsigned int i = 0; i < obj_blendConstants_arr.size(); i++)
7218 {
7219 parse_float("blendConstants", obj_blendConstants_arr[i], const_cast<float &>((o.blendConstants[i])));
7220 }
7221 }
7222
parse_VkPipelineDynamicStateCreateInfo(const char * s,Json::Value & obj,VkPipelineDynamicStateCreateInfo & o)7223 static void parse_VkPipelineDynamicStateCreateInfo(const char *s, Json::Value &obj, VkPipelineDynamicStateCreateInfo &o)
7224 {
7225
7226 parse_VkStructureType("sType", obj["sType"], (o.sType));
7227
7228 o.pNext = (VkPipelineDynamicStateCreateInfo *)parsePNextChain(obj);
7229
7230 parse_VkPipelineDynamicStateCreateFlags("flags", obj["flags"], (o.flags));
7231
7232 parse_uint32_t("dynamicStateCount", obj["dynamicStateCount"], (o.dynamicStateCount));
7233
7234 (o.pDynamicStates) = (VkDynamicState *)s_globalMem.allocate((o.dynamicStateCount), sizeof(VkDynamicState));
7235 Json::Value &obj_pDynamicStates_arr = obj["pDynamicStates"];
7236 for (unsigned int i = 0; i < obj_pDynamicStates_arr.size(); i++)
7237 {
7238 parse_VkDynamicState("pDynamicStates", obj_pDynamicStates_arr[i],
7239 const_cast<VkDynamicState &>((o.pDynamicStates[i])));
7240 }
7241 }
7242
parse_VkGraphicsPipelineCreateInfo(const char * s,Json::Value & obj,VkGraphicsPipelineCreateInfo & o)7243 static void parse_VkGraphicsPipelineCreateInfo(const char *s, Json::Value &obj, VkGraphicsPipelineCreateInfo &o)
7244 {
7245
7246 parse_VkStructureType("sType", obj["sType"], (o.sType));
7247
7248 o.pNext = (VkGraphicsPipelineCreateInfo *)parsePNextChain(obj);
7249
7250 parse_VkPipelineCreateFlags("flags", obj["flags"], (o.flags));
7251
7252 parse_uint32_t("stageCount", obj["stageCount"], (o.stageCount));
7253
7254 (o.pStages) = (VkPipelineShaderStageCreateInfo *)s_globalMem.allocate((o.stageCount),
7255 sizeof(VkPipelineShaderStageCreateInfo));
7256 Json::Value &obj_pStages = obj["pStages"];
7257 if (obj_pStages.size() == 0)
7258 (o.pStages) = nullptr;
7259 else
7260 {
7261 for (unsigned int i = 0; i < (o.stageCount); i++)
7262 {
7263 parse_VkPipelineShaderStageCreateInfo("pStages", obj_pStages[i],
7264 const_cast<VkPipelineShaderStageCreateInfo &>((o.pStages[i])));
7265 }
7266 }
7267
7268 {
7269 Json::Value &obj_pVertexInputState = obj["pVertexInputState"];
7270 const int sz = obj_pVertexInputState.size();
7271 if (obj_pVertexInputState.size() == 0)
7272 {
7273 (o.pVertexInputState) = nullptr;
7274 }
7275 else
7276 {
7277 (o.pVertexInputState) = (VkPipelineVertexInputStateCreateInfo *)s_globalMem.allocate(
7278 1, sizeof(VkPipelineVertexInputStateCreateInfo));
7279 parse_VkPipelineVertexInputStateCreateInfo(
7280 "pVertexInputState", obj_pVertexInputState,
7281 const_cast<VkPipelineVertexInputStateCreateInfo &>(*(o.pVertexInputState)));
7282 }
7283 }
7284
7285 {
7286 Json::Value &obj_pInputAssemblyState = obj["pInputAssemblyState"];
7287 const int sz = obj_pInputAssemblyState.size();
7288 if (obj_pInputAssemblyState.size() == 0)
7289 {
7290 (o.pInputAssemblyState) = nullptr;
7291 }
7292 else
7293 {
7294 (o.pInputAssemblyState) = (VkPipelineInputAssemblyStateCreateInfo *)s_globalMem.allocate(
7295 1, sizeof(VkPipelineInputAssemblyStateCreateInfo));
7296 parse_VkPipelineInputAssemblyStateCreateInfo(
7297 "pInputAssemblyState", obj_pInputAssemblyState,
7298 const_cast<VkPipelineInputAssemblyStateCreateInfo &>(*(o.pInputAssemblyState)));
7299 }
7300 }
7301
7302 {
7303 Json::Value &obj_pTessellationState = obj["pTessellationState"];
7304 const int sz = obj_pTessellationState.size();
7305 if (obj_pTessellationState.size() == 0)
7306 {
7307 (o.pTessellationState) = nullptr;
7308 }
7309 else
7310 {
7311 (o.pTessellationState) = (VkPipelineTessellationStateCreateInfo *)s_globalMem.allocate(
7312 1, sizeof(VkPipelineTessellationStateCreateInfo));
7313 parse_VkPipelineTessellationStateCreateInfo(
7314 "pTessellationState", obj_pTessellationState,
7315 const_cast<VkPipelineTessellationStateCreateInfo &>(*(o.pTessellationState)));
7316 }
7317 }
7318
7319 {
7320 Json::Value &obj_pViewportState = obj["pViewportState"];
7321 const int sz = obj_pViewportState.size();
7322 if (obj_pViewportState.size() == 0)
7323 {
7324 (o.pViewportState) = nullptr;
7325 }
7326 else
7327 {
7328 (o.pViewportState) =
7329 (VkPipelineViewportStateCreateInfo *)s_globalMem.allocate(1, sizeof(VkPipelineViewportStateCreateInfo));
7330 parse_VkPipelineViewportStateCreateInfo(
7331 "pViewportState", obj_pViewportState,
7332 const_cast<VkPipelineViewportStateCreateInfo &>(*(o.pViewportState)));
7333 }
7334 }
7335
7336 {
7337 Json::Value &obj_pRasterizationState = obj["pRasterizationState"];
7338 const int sz = obj_pRasterizationState.size();
7339 if (obj_pRasterizationState.size() == 0)
7340 {
7341 (o.pRasterizationState) = nullptr;
7342 }
7343 else
7344 {
7345 (o.pRasterizationState) = (VkPipelineRasterizationStateCreateInfo *)s_globalMem.allocate(
7346 1, sizeof(VkPipelineRasterizationStateCreateInfo));
7347 parse_VkPipelineRasterizationStateCreateInfo(
7348 "pRasterizationState", obj_pRasterizationState,
7349 const_cast<VkPipelineRasterizationStateCreateInfo &>(*(o.pRasterizationState)));
7350 }
7351 }
7352
7353 {
7354 Json::Value &obj_pMultisampleState = obj["pMultisampleState"];
7355 const int sz = obj_pMultisampleState.size();
7356 if (obj_pMultisampleState.size() == 0)
7357 {
7358 (o.pMultisampleState) = nullptr;
7359 }
7360 else
7361 {
7362 (o.pMultisampleState) = (VkPipelineMultisampleStateCreateInfo *)s_globalMem.allocate(
7363 1, sizeof(VkPipelineMultisampleStateCreateInfo));
7364 parse_VkPipelineMultisampleStateCreateInfo(
7365 "pMultisampleState", obj_pMultisampleState,
7366 const_cast<VkPipelineMultisampleStateCreateInfo &>(*(o.pMultisampleState)));
7367 }
7368 }
7369
7370 {
7371 Json::Value &obj_pDepthStencilState = obj["pDepthStencilState"];
7372 const int sz = obj_pDepthStencilState.size();
7373 if (obj_pDepthStencilState.size() == 0)
7374 {
7375 (o.pDepthStencilState) = nullptr;
7376 }
7377 else
7378 {
7379 (o.pDepthStencilState) = (VkPipelineDepthStencilStateCreateInfo *)s_globalMem.allocate(
7380 1, sizeof(VkPipelineDepthStencilStateCreateInfo));
7381 parse_VkPipelineDepthStencilStateCreateInfo(
7382 "pDepthStencilState", obj_pDepthStencilState,
7383 const_cast<VkPipelineDepthStencilStateCreateInfo &>(*(o.pDepthStencilState)));
7384 }
7385 }
7386
7387 {
7388 Json::Value &obj_pColorBlendState = obj["pColorBlendState"];
7389 const int sz = obj_pColorBlendState.size();
7390 if (obj_pColorBlendState.size() == 0)
7391 {
7392 (o.pColorBlendState) = nullptr;
7393 }
7394 else
7395 {
7396 (o.pColorBlendState) = (VkPipelineColorBlendStateCreateInfo *)s_globalMem.allocate(
7397 1, sizeof(VkPipelineColorBlendStateCreateInfo));
7398 parse_VkPipelineColorBlendStateCreateInfo(
7399 "pColorBlendState", obj_pColorBlendState,
7400 const_cast<VkPipelineColorBlendStateCreateInfo &>(*(o.pColorBlendState)));
7401 }
7402 }
7403
7404 {
7405 Json::Value &obj_pDynamicState = obj["pDynamicState"];
7406 const int sz = obj_pDynamicState.size();
7407 if (obj_pDynamicState.size() == 0)
7408 {
7409 (o.pDynamicState) = nullptr;
7410 }
7411 else
7412 {
7413 (o.pDynamicState) =
7414 (VkPipelineDynamicStateCreateInfo *)s_globalMem.allocate(1, sizeof(VkPipelineDynamicStateCreateInfo));
7415 parse_VkPipelineDynamicStateCreateInfo("pDynamicState", obj_pDynamicState,
7416 const_cast<VkPipelineDynamicStateCreateInfo &>(*(o.pDynamicState)));
7417 }
7418 }
7419
7420 uint64_t layoutInternal = 0;
7421 parse_uint64_t("layout", obj["layout"], layoutInternal);
7422 o.layout = VkPipelineLayout(layoutInternal);
7423
7424 uint64_t renderPassInternal = 0;
7425 parse_uint64_t("renderPass", obj["renderPass"], renderPassInternal);
7426 o.renderPass = VkRenderPass(renderPassInternal);
7427
7428 parse_uint32_t("subpass", obj["subpass"], (o.subpass));
7429
7430 parse_int32_t("basePipelineIndex", obj["basePipelineIndex"], (o.basePipelineIndex));
7431 }
7432
parse_VkPushConstantRange(const char * s,Json::Value & obj,VkPushConstantRange & o)7433 static void parse_VkPushConstantRange(const char *s, Json::Value &obj, VkPushConstantRange &o)
7434 {
7435
7436 parse_VkShaderStageFlags("stageFlags", obj["stageFlags"], (o.stageFlags));
7437
7438 parse_uint32_t("offset", obj["offset"], (o.offset));
7439
7440 parse_uint32_t("size", obj["size"], (o.size));
7441 }
7442
parse_VkPipelineLayoutCreateInfo(const char * s,Json::Value & obj,VkPipelineLayoutCreateInfo & o)7443 static void parse_VkPipelineLayoutCreateInfo(const char *s, Json::Value &obj, VkPipelineLayoutCreateInfo &o)
7444 {
7445
7446 parse_VkStructureType("sType", obj["sType"], (o.sType));
7447
7448 o.pNext = (VkPipelineLayoutCreateInfo *)parsePNextChain(obj);
7449
7450 parse_VkPipelineLayoutCreateFlags("flags", obj["flags"], (o.flags));
7451
7452 parse_uint32_t("setLayoutCount", obj["setLayoutCount"], (o.setLayoutCount));
7453
7454 VkDescriptorSetLayout *pSetLayoutsTab =
7455 (VkDescriptorSetLayout *)s_globalMem.allocate((o.setLayoutCount), sizeof(VkDescriptorSetLayout));
7456 Json::Value &obj_pSetLayouts_arr = obj["pSetLayouts"];
7457 for (unsigned int i = 0; i < obj_pSetLayouts_arr.size(); i++)
7458 {
7459 uint64_t pSetLayoutsInternal = 0;
7460 parse_uint64_t("pSetLayouts", obj_pSetLayouts_arr[i], pSetLayoutsInternal);
7461 pSetLayoutsTab[i] = VkDescriptorSetLayout(pSetLayoutsInternal);
7462 }
7463 o.pSetLayouts = pSetLayoutsTab;
7464
7465 parse_uint32_t("pushConstantRangeCount", obj["pushConstantRangeCount"], (o.pushConstantRangeCount));
7466
7467 (o.pPushConstantRanges) =
7468 (VkPushConstantRange *)s_globalMem.allocate((o.pushConstantRangeCount), sizeof(VkPushConstantRange));
7469 Json::Value &obj_pPushConstantRanges = obj["pPushConstantRanges"];
7470 if (obj_pPushConstantRanges.size() == 0)
7471 (o.pPushConstantRanges) = nullptr;
7472 else
7473 {
7474 for (unsigned int i = 0; i < (o.pushConstantRangeCount); i++)
7475 {
7476 parse_VkPushConstantRange("pPushConstantRanges", obj_pPushConstantRanges[i],
7477 const_cast<VkPushConstantRange &>((o.pPushConstantRanges[i])));
7478 }
7479 }
7480 }
7481
parse_VkSamplerCreateInfo(const char * s,Json::Value & obj,VkSamplerCreateInfo & o)7482 static void parse_VkSamplerCreateInfo(const char *s, Json::Value &obj, VkSamplerCreateInfo &o)
7483 {
7484
7485 parse_VkStructureType("sType", obj["sType"], (o.sType));
7486
7487 o.pNext = (VkSamplerCreateInfo *)parsePNextChain(obj);
7488
7489 parse_VkSamplerCreateFlags("flags", obj["flags"], (o.flags));
7490
7491 parse_VkFilter("magFilter", obj["magFilter"], (o.magFilter));
7492
7493 parse_VkFilter("minFilter", obj["minFilter"], (o.minFilter));
7494
7495 parse_VkSamplerMipmapMode("mipmapMode", obj["mipmapMode"], (o.mipmapMode));
7496
7497 parse_VkSamplerAddressMode("addressModeU", obj["addressModeU"], (o.addressModeU));
7498
7499 parse_VkSamplerAddressMode("addressModeV", obj["addressModeV"], (o.addressModeV));
7500
7501 parse_VkSamplerAddressMode("addressModeW", obj["addressModeW"], (o.addressModeW));
7502
7503 parse_float("mipLodBias", obj["mipLodBias"], (o.mipLodBias));
7504
7505 parse_VkBool32("anisotropyEnable", obj["anisotropyEnable"], (o.anisotropyEnable));
7506
7507 parse_float("maxAnisotropy", obj["maxAnisotropy"], (o.maxAnisotropy));
7508
7509 parse_VkBool32("compareEnable", obj["compareEnable"], (o.compareEnable));
7510
7511 parse_VkCompareOp("compareOp", obj["compareOp"], (o.compareOp));
7512
7513 parse_float("minLod", obj["minLod"], (o.minLod));
7514
7515 parse_float("maxLod", obj["maxLod"], (o.maxLod));
7516
7517 parse_VkBorderColor("borderColor", obj["borderColor"], (o.borderColor));
7518
7519 parse_VkBool32("unnormalizedCoordinates", obj["unnormalizedCoordinates"], (o.unnormalizedCoordinates));
7520 }
7521
parse_VkCopyDescriptorSet(const char * s,Json::Value & obj,VkCopyDescriptorSet & o)7522 static void parse_VkCopyDescriptorSet(const char *s, Json::Value &obj, VkCopyDescriptorSet &o)
7523 {
7524
7525 parse_VkStructureType("sType", obj["sType"], (o.sType));
7526
7527 o.pNext = (VkCopyDescriptorSet *)parsePNextChain(obj);
7528
7529 parse_uint32_t("srcBinding", obj["srcBinding"], (o.srcBinding));
7530
7531 parse_uint32_t("srcArrayElement", obj["srcArrayElement"], (o.srcArrayElement));
7532
7533 parse_uint32_t("dstBinding", obj["dstBinding"], (o.dstBinding));
7534
7535 parse_uint32_t("dstArrayElement", obj["dstArrayElement"], (o.dstArrayElement));
7536
7537 parse_uint32_t("descriptorCount", obj["descriptorCount"], (o.descriptorCount));
7538 }
7539
parse_VkDescriptorBufferInfo(const char * s,Json::Value & obj,VkDescriptorBufferInfo & o)7540 static void parse_VkDescriptorBufferInfo(const char *s, Json::Value &obj, VkDescriptorBufferInfo &o)
7541 {
7542
7543 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
7544
7545 parse_VkDeviceSize("range", obj["range"], (o.range));
7546 }
7547
parse_VkDescriptorImageInfo(const char * s,Json::Value & obj,VkDescriptorImageInfo & o)7548 static void parse_VkDescriptorImageInfo(const char *s, Json::Value &obj, VkDescriptorImageInfo &o)
7549 {
7550
7551 parse_VkImageLayout("imageLayout", obj["imageLayout"], (o.imageLayout));
7552 }
7553
parse_VkDescriptorPoolSize(const char * s,Json::Value & obj,VkDescriptorPoolSize & o)7554 static void parse_VkDescriptorPoolSize(const char *s, Json::Value &obj, VkDescriptorPoolSize &o)
7555 {
7556
7557 parse_VkDescriptorType("type", obj["type"], (o.type));
7558
7559 parse_uint32_t("descriptorCount", obj["descriptorCount"], (o.descriptorCount));
7560 }
7561
parse_VkDescriptorPoolCreateInfo(const char * s,Json::Value & obj,VkDescriptorPoolCreateInfo & o)7562 static void parse_VkDescriptorPoolCreateInfo(const char *s, Json::Value &obj, VkDescriptorPoolCreateInfo &o)
7563 {
7564
7565 parse_VkStructureType("sType", obj["sType"], (o.sType));
7566
7567 o.pNext = (VkDescriptorPoolCreateInfo *)parsePNextChain(obj);
7568
7569 parse_VkDescriptorPoolCreateFlags("flags", obj["flags"], (o.flags));
7570
7571 parse_uint32_t("maxSets", obj["maxSets"], (o.maxSets));
7572
7573 parse_uint32_t("poolSizeCount", obj["poolSizeCount"], (o.poolSizeCount));
7574
7575 (o.pPoolSizes) = (VkDescriptorPoolSize *)s_globalMem.allocate((o.poolSizeCount), sizeof(VkDescriptorPoolSize));
7576 Json::Value &obj_pPoolSizes = obj["pPoolSizes"];
7577 if (obj_pPoolSizes.size() == 0)
7578 (o.pPoolSizes) = nullptr;
7579 else
7580 {
7581 for (unsigned int i = 0; i < (o.poolSizeCount); i++)
7582 {
7583 parse_VkDescriptorPoolSize("pPoolSizes", obj_pPoolSizes[i],
7584 const_cast<VkDescriptorPoolSize &>((o.pPoolSizes[i])));
7585 }
7586 }
7587 }
7588
parse_VkDescriptorSetAllocateInfo(const char * s,Json::Value & obj,VkDescriptorSetAllocateInfo & o)7589 static void parse_VkDescriptorSetAllocateInfo(const char *s, Json::Value &obj, VkDescriptorSetAllocateInfo &o)
7590 {
7591
7592 parse_VkStructureType("sType", obj["sType"], (o.sType));
7593
7594 o.pNext = (VkDescriptorSetAllocateInfo *)parsePNextChain(obj);
7595
7596 parse_uint32_t("descriptorSetCount", obj["descriptorSetCount"], (o.descriptorSetCount));
7597
7598 (o.pSetLayouts) =
7599 (VkDescriptorSetLayout *)s_globalMem.allocate((o.descriptorSetCount), sizeof(VkDescriptorSetLayout));
7600 Json::Value &obj_pSetLayouts_arr = obj["pSetLayouts"];
7601 for (unsigned int i = 0; i < obj_pSetLayouts_arr.size(); i++)
7602 {
7603 parse_VkDescriptorSetLayout("pSetLayouts", obj_pSetLayouts_arr[i],
7604 const_cast<VkDescriptorSetLayout &>((o.pSetLayouts[i])));
7605 }
7606 }
7607
parse_VkDescriptorSetLayoutBinding(const char * s,Json::Value & obj,VkDescriptorSetLayoutBinding & o)7608 static void parse_VkDescriptorSetLayoutBinding(const char *s, Json::Value &obj, VkDescriptorSetLayoutBinding &o)
7609 {
7610
7611 parse_uint32_t("binding", obj["binding"], (o.binding));
7612
7613 parse_VkDescriptorType("descriptorType", obj["descriptorType"], (o.descriptorType));
7614
7615 parse_uint32_t("descriptorCount", obj["descriptorCount"], (o.descriptorCount));
7616
7617 parse_VkShaderStageFlags("stageFlags", obj["stageFlags"], (o.stageFlags));
7618
7619 Json::Value &obj_pImmutableSamplers = obj["pImmutableSamplers"];
7620 if (obj_pImmutableSamplers.empty() ||
7621 (obj_pImmutableSamplers.isString() && obj_pImmutableSamplers.asString() == "NULL"))
7622 o.pImmutableSamplers = nullptr;
7623 else
7624 {
7625 VkSampler *samplers = (VkSampler *)s_globalMem.allocate((o.descriptorCount), sizeof(VkSampler));
7626 for (unsigned int i = 0; i < obj_pImmutableSamplers.size(); i++)
7627 {
7628 uint64_t sInternal = 0;
7629 parse_uint64_t("pImmutableSamplers", obj_pImmutableSamplers[i], sInternal);
7630 samplers[i] = VkSampler(sInternal);
7631 }
7632 o.pImmutableSamplers = samplers;
7633 }
7634 }
7635
parse_VkDescriptorSetLayoutCreateInfo(const char * s,Json::Value & obj,VkDescriptorSetLayoutCreateInfo & o)7636 static void parse_VkDescriptorSetLayoutCreateInfo(const char *s, Json::Value &obj, VkDescriptorSetLayoutCreateInfo &o)
7637 {
7638
7639 parse_VkStructureType("sType", obj["sType"], (o.sType));
7640
7641 o.pNext = (VkDescriptorSetLayoutCreateInfo *)parsePNextChain(obj);
7642
7643 parse_VkDescriptorSetLayoutCreateFlags("flags", obj["flags"], (o.flags));
7644
7645 parse_uint32_t("bindingCount", obj["bindingCount"], (o.bindingCount));
7646
7647 (o.pBindings) =
7648 (VkDescriptorSetLayoutBinding *)s_globalMem.allocate((o.bindingCount), sizeof(VkDescriptorSetLayoutBinding));
7649 Json::Value &obj_pBindings = obj["pBindings"];
7650 if (obj_pBindings.size() == 0)
7651 (o.pBindings) = nullptr;
7652 else
7653 {
7654 for (unsigned int i = 0; i < (o.bindingCount); i++)
7655 {
7656 parse_VkDescriptorSetLayoutBinding("pBindings", obj_pBindings[i],
7657 const_cast<VkDescriptorSetLayoutBinding &>((o.pBindings[i])));
7658 }
7659 }
7660 }
7661
parse_VkWriteDescriptorSet(const char * s,Json::Value & obj,VkWriteDescriptorSet & o)7662 static void parse_VkWriteDescriptorSet(const char *s, Json::Value &obj, VkWriteDescriptorSet &o)
7663 {
7664
7665 parse_VkStructureType("sType", obj["sType"], (o.sType));
7666
7667 o.pNext = (VkWriteDescriptorSet *)parsePNextChain(obj);
7668
7669 parse_uint32_t("dstBinding", obj["dstBinding"], (o.dstBinding));
7670
7671 parse_uint32_t("dstArrayElement", obj["dstArrayElement"], (o.dstArrayElement));
7672
7673 parse_uint32_t("descriptorCount", obj["descriptorCount"], (o.descriptorCount));
7674
7675 parse_VkDescriptorType("descriptorType", obj["descriptorType"], (o.descriptorType));
7676
7677 (o.pImageInfo) = (VkDescriptorImageInfo *)s_globalMem.allocate((o.descriptorCount), sizeof(VkDescriptorImageInfo));
7678 Json::Value &obj_pImageInfo = obj["pImageInfo"];
7679 if (obj_pImageInfo.size() == 0)
7680 (o.pImageInfo) = nullptr;
7681 else
7682 {
7683 for (unsigned int i = 0; i < (o.descriptorCount); i++)
7684 {
7685 parse_VkDescriptorImageInfo("pImageInfo", obj_pImageInfo[i],
7686 const_cast<VkDescriptorImageInfo &>((o.pImageInfo[i])));
7687 }
7688 }
7689
7690 (o.pBufferInfo) =
7691 (VkDescriptorBufferInfo *)s_globalMem.allocate((o.descriptorCount), sizeof(VkDescriptorBufferInfo));
7692 Json::Value &obj_pBufferInfo = obj["pBufferInfo"];
7693 if (obj_pBufferInfo.size() == 0)
7694 (o.pBufferInfo) = nullptr;
7695 else
7696 {
7697 for (unsigned int i = 0; i < (o.descriptorCount); i++)
7698 {
7699 parse_VkDescriptorBufferInfo("pBufferInfo", obj_pBufferInfo[i],
7700 const_cast<VkDescriptorBufferInfo &>((o.pBufferInfo[i])));
7701 }
7702 }
7703
7704 (o.pTexelBufferView) = (VkBufferView *)s_globalMem.allocate((o.descriptorCount), sizeof(VkBufferView));
7705 Json::Value &obj_pTexelBufferView_arr = obj["pTexelBufferView"];
7706 for (unsigned int i = 0; i < obj_pTexelBufferView_arr.size(); i++)
7707 {
7708 parse_VkBufferView("pTexelBufferView", obj_pTexelBufferView_arr[i],
7709 const_cast<VkBufferView &>((o.pTexelBufferView[i])));
7710 }
7711 }
7712
parse_VkAttachmentDescription(const char * s,Json::Value & obj,VkAttachmentDescription & o)7713 static void parse_VkAttachmentDescription(const char *s, Json::Value &obj, VkAttachmentDescription &o)
7714 {
7715
7716 parse_VkAttachmentDescriptionFlags("flags", obj["flags"], (o.flags));
7717
7718 parse_VkFormat("format", obj["format"], (o.format));
7719
7720 parse_VkSampleCountFlagBits("samples", obj["samples"], (o.samples));
7721
7722 parse_VkAttachmentLoadOp("loadOp", obj["loadOp"], (o.loadOp));
7723
7724 parse_VkAttachmentStoreOp("storeOp", obj["storeOp"], (o.storeOp));
7725
7726 parse_VkAttachmentLoadOp("stencilLoadOp", obj["stencilLoadOp"], (o.stencilLoadOp));
7727
7728 parse_VkAttachmentStoreOp("stencilStoreOp", obj["stencilStoreOp"], (o.stencilStoreOp));
7729
7730 parse_VkImageLayout("initialLayout", obj["initialLayout"], (o.initialLayout));
7731
7732 parse_VkImageLayout("finalLayout", obj["finalLayout"], (o.finalLayout));
7733 }
7734
parse_VkAttachmentReference(const char * s,Json::Value & obj,VkAttachmentReference & o)7735 static void parse_VkAttachmentReference(const char *s, Json::Value &obj, VkAttachmentReference &o)
7736 {
7737
7738 parse_uint32_t("attachment", obj["attachment"], (o.attachment));
7739
7740 parse_VkImageLayout("layout", obj["layout"], (o.layout));
7741 }
7742
parse_VkFramebufferCreateInfo(const char * s,Json::Value & obj,VkFramebufferCreateInfo & o)7743 static void parse_VkFramebufferCreateInfo(const char *s, Json::Value &obj, VkFramebufferCreateInfo &o)
7744 {
7745
7746 parse_VkStructureType("sType", obj["sType"], (o.sType));
7747
7748 o.pNext = (VkFramebufferCreateInfo *)parsePNextChain(obj);
7749
7750 parse_VkFramebufferCreateFlags("flags", obj["flags"], (o.flags));
7751
7752 uint64_t renderPassInternal = 0;
7753 parse_uint64_t("renderPass", obj["renderPass"], renderPassInternal);
7754 o.renderPass = VkRenderPass(renderPassInternal);
7755
7756 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
7757
7758 (o.pAttachments) = (VkImageView *)s_globalMem.allocate((o.attachmentCount), sizeof(VkImageView));
7759 Json::Value &obj_pAttachments_arr = obj["pAttachments"];
7760 for (unsigned int i = 0; i < obj_pAttachments_arr.size(); i++)
7761 {
7762 parse_VkImageView("pAttachments", obj_pAttachments_arr[i], const_cast<VkImageView &>((o.pAttachments[i])));
7763 }
7764
7765 parse_uint32_t("width", obj["width"], (o.width));
7766
7767 parse_uint32_t("height", obj["height"], (o.height));
7768
7769 parse_uint32_t("layers", obj["layers"], (o.layers));
7770 }
7771
parse_VkSubpassDescription(const char * s,Json::Value & obj,VkSubpassDescription & o)7772 static void parse_VkSubpassDescription(const char *s, Json::Value &obj, VkSubpassDescription &o)
7773 {
7774
7775 parse_VkSubpassDescriptionFlags("flags", obj["flags"], (o.flags));
7776
7777 parse_VkPipelineBindPoint("pipelineBindPoint", obj["pipelineBindPoint"], (o.pipelineBindPoint));
7778
7779 parse_uint32_t("inputAttachmentCount", obj["inputAttachmentCount"], (o.inputAttachmentCount));
7780
7781 (o.pInputAttachments) =
7782 (VkAttachmentReference *)s_globalMem.allocate((o.inputAttachmentCount), sizeof(VkAttachmentReference));
7783 Json::Value &obj_pInputAttachments = obj["pInputAttachments"];
7784 if (obj_pInputAttachments.size() == 0)
7785 (o.pInputAttachments) = nullptr;
7786 else
7787 {
7788 for (unsigned int i = 0; i < (o.inputAttachmentCount); i++)
7789 {
7790 parse_VkAttachmentReference("pInputAttachments", obj_pInputAttachments[i],
7791 const_cast<VkAttachmentReference &>((o.pInputAttachments[i])));
7792 }
7793 }
7794
7795 parse_uint32_t("colorAttachmentCount", obj["colorAttachmentCount"], (o.colorAttachmentCount));
7796
7797 (o.pColorAttachments) =
7798 (VkAttachmentReference *)s_globalMem.allocate((o.colorAttachmentCount), sizeof(VkAttachmentReference));
7799 Json::Value &obj_pColorAttachments = obj["pColorAttachments"];
7800 if (obj_pColorAttachments.size() == 0)
7801 (o.pColorAttachments) = nullptr;
7802 else
7803 {
7804 for (unsigned int i = 0; i < (o.colorAttachmentCount); i++)
7805 {
7806 parse_VkAttachmentReference("pColorAttachments", obj_pColorAttachments[i],
7807 const_cast<VkAttachmentReference &>((o.pColorAttachments[i])));
7808 }
7809 }
7810
7811 (o.pResolveAttachments) =
7812 (VkAttachmentReference *)s_globalMem.allocate((o.colorAttachmentCount), sizeof(VkAttachmentReference));
7813 Json::Value &obj_pResolveAttachments = obj["pResolveAttachments"];
7814 if (obj_pResolveAttachments.size() == 0)
7815 (o.pResolveAttachments) = nullptr;
7816 else
7817 {
7818 for (unsigned int i = 0; i < (o.colorAttachmentCount); i++)
7819 {
7820 parse_VkAttachmentReference("pResolveAttachments", obj_pResolveAttachments[i],
7821 const_cast<VkAttachmentReference &>((o.pResolveAttachments[i])));
7822 }
7823 }
7824
7825 {
7826 Json::Value &obj_pDepthStencilAttachment = obj["pDepthStencilAttachment"];
7827 const int sz = obj_pDepthStencilAttachment.size();
7828 if (obj_pDepthStencilAttachment.size() == 0)
7829 {
7830 (o.pDepthStencilAttachment) = nullptr;
7831 }
7832 else
7833 {
7834 (o.pDepthStencilAttachment) =
7835 (VkAttachmentReference *)s_globalMem.allocate(1, sizeof(VkAttachmentReference));
7836 parse_VkAttachmentReference("pDepthStencilAttachment", obj_pDepthStencilAttachment,
7837 const_cast<VkAttachmentReference &>(*(o.pDepthStencilAttachment)));
7838 }
7839 }
7840
7841 parse_uint32_t("preserveAttachmentCount", obj["preserveAttachmentCount"], (o.preserveAttachmentCount));
7842
7843 (o.pPreserveAttachments) = (uint32_t *)s_globalMem.allocate((o.preserveAttachmentCount), sizeof(uint32_t));
7844 Json::Value &obj_pPreserveAttachments_arr = obj["pPreserveAttachments"];
7845 for (unsigned int i = 0; i < obj_pPreserveAttachments_arr.size(); i++)
7846 {
7847 parse_uint32_t("pPreserveAttachments", obj_pPreserveAttachments_arr[i],
7848 const_cast<uint32_t &>((o.pPreserveAttachments[i])));
7849 }
7850 }
7851
parse_VkSubpassDependency(const char * s,Json::Value & obj,VkSubpassDependency & o)7852 static void parse_VkSubpassDependency(const char *s, Json::Value &obj, VkSubpassDependency &o)
7853 {
7854
7855 parse_uint32_t("srcSubpass", obj["srcSubpass"], (o.srcSubpass));
7856
7857 parse_uint32_t("dstSubpass", obj["dstSubpass"], (o.dstSubpass));
7858
7859 parse_VkPipelineStageFlags("srcStageMask", obj["srcStageMask"], (o.srcStageMask));
7860
7861 parse_VkPipelineStageFlags("dstStageMask", obj["dstStageMask"], (o.dstStageMask));
7862
7863 parse_VkAccessFlags("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
7864
7865 parse_VkAccessFlags("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
7866
7867 parse_VkDependencyFlags("dependencyFlags", obj["dependencyFlags"], (o.dependencyFlags));
7868 }
7869
parse_VkRenderPassCreateInfo(const char * s,Json::Value & obj,VkRenderPassCreateInfo & o)7870 static void parse_VkRenderPassCreateInfo(const char *s, Json::Value &obj, VkRenderPassCreateInfo &o)
7871 {
7872
7873 parse_VkStructureType("sType", obj["sType"], (o.sType));
7874
7875 o.pNext = (VkRenderPassCreateInfo *)parsePNextChain(obj);
7876
7877 parse_VkRenderPassCreateFlags("flags", obj["flags"], (o.flags));
7878
7879 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
7880
7881 (o.pAttachments) =
7882 (VkAttachmentDescription *)s_globalMem.allocate((o.attachmentCount), sizeof(VkAttachmentDescription));
7883 Json::Value &obj_pAttachments = obj["pAttachments"];
7884 if (obj_pAttachments.size() == 0)
7885 (o.pAttachments) = nullptr;
7886 else
7887 {
7888 for (unsigned int i = 0; i < (o.attachmentCount); i++)
7889 {
7890 parse_VkAttachmentDescription("pAttachments", obj_pAttachments[i],
7891 const_cast<VkAttachmentDescription &>((o.pAttachments[i])));
7892 }
7893 }
7894
7895 parse_uint32_t("subpassCount", obj["subpassCount"], (o.subpassCount));
7896
7897 (o.pSubpasses) = (VkSubpassDescription *)s_globalMem.allocate((o.subpassCount), sizeof(VkSubpassDescription));
7898 Json::Value &obj_pSubpasses = obj["pSubpasses"];
7899 if (obj_pSubpasses.size() == 0)
7900 (o.pSubpasses) = nullptr;
7901 else
7902 {
7903 for (unsigned int i = 0; i < (o.subpassCount); i++)
7904 {
7905 parse_VkSubpassDescription("pSubpasses", obj_pSubpasses[i],
7906 const_cast<VkSubpassDescription &>((o.pSubpasses[i])));
7907 }
7908 }
7909
7910 parse_uint32_t("dependencyCount", obj["dependencyCount"], (o.dependencyCount));
7911
7912 (o.pDependencies) = (VkSubpassDependency *)s_globalMem.allocate((o.dependencyCount), sizeof(VkSubpassDependency));
7913 Json::Value &obj_pDependencies = obj["pDependencies"];
7914 if (obj_pDependencies.size() == 0)
7915 (o.pDependencies) = nullptr;
7916 else
7917 {
7918 for (unsigned int i = 0; i < (o.dependencyCount); i++)
7919 {
7920 parse_VkSubpassDependency("pDependencies", obj_pDependencies[i],
7921 const_cast<VkSubpassDependency &>((o.pDependencies[i])));
7922 }
7923 }
7924 }
7925
parse_VkCommandPoolCreateInfo(const char * s,Json::Value & obj,VkCommandPoolCreateInfo & o)7926 static void parse_VkCommandPoolCreateInfo(const char *s, Json::Value &obj, VkCommandPoolCreateInfo &o)
7927 {
7928
7929 parse_VkStructureType("sType", obj["sType"], (o.sType));
7930
7931 o.pNext = (VkCommandPoolCreateInfo *)parsePNextChain(obj);
7932
7933 parse_VkCommandPoolCreateFlags("flags", obj["flags"], (o.flags));
7934
7935 parse_uint32_t("queueFamilyIndex", obj["queueFamilyIndex"], (o.queueFamilyIndex));
7936 }
7937
parse_VkCommandBufferAllocateInfo(const char * s,Json::Value & obj,VkCommandBufferAllocateInfo & o)7938 static void parse_VkCommandBufferAllocateInfo(const char *s, Json::Value &obj, VkCommandBufferAllocateInfo &o)
7939 {
7940
7941 parse_VkStructureType("sType", obj["sType"], (o.sType));
7942
7943 o.pNext = (VkCommandBufferAllocateInfo *)parsePNextChain(obj);
7944
7945 parse_VkCommandBufferLevel("level", obj["level"], (o.level));
7946
7947 parse_uint32_t("commandBufferCount", obj["commandBufferCount"], (o.commandBufferCount));
7948 }
7949
parse_VkCommandBufferInheritanceInfo(const char * s,Json::Value & obj,VkCommandBufferInheritanceInfo & o)7950 static void parse_VkCommandBufferInheritanceInfo(const char *s, Json::Value &obj, VkCommandBufferInheritanceInfo &o)
7951 {
7952
7953 parse_VkStructureType("sType", obj["sType"], (o.sType));
7954
7955 o.pNext = (VkCommandBufferInheritanceInfo *)parsePNextChain(obj);
7956
7957 uint64_t renderPassInternal = 0;
7958 parse_uint64_t("renderPass", obj["renderPass"], renderPassInternal);
7959 o.renderPass = VkRenderPass(renderPassInternal);
7960
7961 parse_uint32_t("subpass", obj["subpass"], (o.subpass));
7962
7963 parse_VkBool32("occlusionQueryEnable", obj["occlusionQueryEnable"], (o.occlusionQueryEnable));
7964
7965 parse_VkQueryControlFlags("queryFlags", obj["queryFlags"], (o.queryFlags));
7966
7967 parse_VkQueryPipelineStatisticFlags("pipelineStatistics", obj["pipelineStatistics"], (o.pipelineStatistics));
7968 }
7969
parse_VkCommandBufferBeginInfo(const char * s,Json::Value & obj,VkCommandBufferBeginInfo & o)7970 static void parse_VkCommandBufferBeginInfo(const char *s, Json::Value &obj, VkCommandBufferBeginInfo &o)
7971 {
7972
7973 parse_VkStructureType("sType", obj["sType"], (o.sType));
7974
7975 o.pNext = (VkCommandBufferBeginInfo *)parsePNextChain(obj);
7976
7977 parse_VkCommandBufferUsageFlags("flags", obj["flags"], (o.flags));
7978
7979 {
7980 Json::Value &obj_pInheritanceInfo = obj["pInheritanceInfo"];
7981 const int sz = obj_pInheritanceInfo.size();
7982 if (obj_pInheritanceInfo.size() == 0)
7983 {
7984 (o.pInheritanceInfo) = nullptr;
7985 }
7986 else
7987 {
7988 (o.pInheritanceInfo) =
7989 (VkCommandBufferInheritanceInfo *)s_globalMem.allocate(1, sizeof(VkCommandBufferInheritanceInfo));
7990 parse_VkCommandBufferInheritanceInfo("pInheritanceInfo", obj_pInheritanceInfo,
7991 const_cast<VkCommandBufferInheritanceInfo &>(*(o.pInheritanceInfo)));
7992 }
7993 }
7994 }
7995
parse_VkBufferCopy(const char * s,Json::Value & obj,VkBufferCopy & o)7996 static void parse_VkBufferCopy(const char *s, Json::Value &obj, VkBufferCopy &o)
7997 {
7998
7999 parse_VkDeviceSize("srcOffset", obj["srcOffset"], (o.srcOffset));
8000
8001 parse_VkDeviceSize("dstOffset", obj["dstOffset"], (o.dstOffset));
8002
8003 parse_VkDeviceSize("size", obj["size"], (o.size));
8004 }
8005
parse_VkImageSubresourceLayers(const char * s,Json::Value & obj,VkImageSubresourceLayers & o)8006 static void parse_VkImageSubresourceLayers(const char *s, Json::Value &obj, VkImageSubresourceLayers &o)
8007 {
8008
8009 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
8010
8011 parse_uint32_t("mipLevel", obj["mipLevel"], (o.mipLevel));
8012
8013 parse_uint32_t("baseArrayLayer", obj["baseArrayLayer"], (o.baseArrayLayer));
8014
8015 parse_uint32_t("layerCount", obj["layerCount"], (o.layerCount));
8016 }
8017
parse_VkBufferImageCopy(const char * s,Json::Value & obj,VkBufferImageCopy & o)8018 static void parse_VkBufferImageCopy(const char *s, Json::Value &obj, VkBufferImageCopy &o)
8019 {
8020
8021 parse_VkDeviceSize("bufferOffset", obj["bufferOffset"], (o.bufferOffset));
8022
8023 parse_uint32_t("bufferRowLength", obj["bufferRowLength"], (o.bufferRowLength));
8024
8025 parse_uint32_t("bufferImageHeight", obj["bufferImageHeight"], (o.bufferImageHeight));
8026
8027 parse_VkImageSubresourceLayers("imageSubresource", obj["imageSubresource"], (o.imageSubresource));
8028
8029 parse_VkOffset3D("imageOffset", obj["imageOffset"], (o.imageOffset));
8030
8031 parse_VkExtent3D("imageExtent", obj["imageExtent"], (o.imageExtent));
8032 }
8033
parse_VkClearColorValue(const char * s,Json::Value & obj,VkClearColorValue & o)8034 static void parse_VkClearColorValue(const char *s, Json::Value &obj, VkClearColorValue &o)
8035 {
8036
8037 Json::Value &obj_float32_arr = obj["float32"];
8038 for (unsigned int i = 0; i < obj_float32_arr.size(); i++)
8039 {
8040 parse_float("float32", obj_float32_arr[i], const_cast<float &>((o.float32[i])));
8041 }
8042
8043 Json::Value &obj_int32_arr = obj["int32"];
8044 for (unsigned int i = 0; i < obj_int32_arr.size(); i++)
8045 {
8046 parse_int32_t("int32", obj_int32_arr[i], const_cast<int32_t &>((o.int32[i])));
8047 }
8048
8049 Json::Value &obj_uint32_arr = obj["uint32"];
8050 for (unsigned int i = 0; i < obj_uint32_arr.size(); i++)
8051 {
8052 parse_uint32_t("uint32", obj_uint32_arr[i], const_cast<uint32_t &>((o.uint32[i])));
8053 }
8054 }
8055
parse_VkClearDepthStencilValue(const char * s,Json::Value & obj,VkClearDepthStencilValue & o)8056 static void parse_VkClearDepthStencilValue(const char *s, Json::Value &obj, VkClearDepthStencilValue &o)
8057 {
8058
8059 parse_float("depth", obj["depth"], (o.depth));
8060
8061 parse_uint32_t("stencil", obj["stencil"], (o.stencil));
8062 }
8063
parse_VkClearValue(const char * s,Json::Value & obj,VkClearValue & o)8064 static void parse_VkClearValue(const char *s, Json::Value &obj, VkClearValue &o)
8065 {
8066
8067 parse_VkClearColorValue("color", obj["color"], (o.color));
8068
8069 parse_VkClearDepthStencilValue("depthStencil", obj["depthStencil"], (o.depthStencil));
8070 }
8071
parse_VkClearAttachment(const char * s,Json::Value & obj,VkClearAttachment & o)8072 static void parse_VkClearAttachment(const char *s, Json::Value &obj, VkClearAttachment &o)
8073 {
8074
8075 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
8076
8077 parse_uint32_t("colorAttachment", obj["colorAttachment"], (o.colorAttachment));
8078
8079 parse_VkClearValue("clearValue", obj["clearValue"], (o.clearValue));
8080 }
8081
parse_VkClearRect(const char * s,Json::Value & obj,VkClearRect & o)8082 static void parse_VkClearRect(const char *s, Json::Value &obj, VkClearRect &o)
8083 {
8084
8085 parse_VkRect2D("rect", obj["rect"], (o.rect));
8086
8087 parse_uint32_t("baseArrayLayer", obj["baseArrayLayer"], (o.baseArrayLayer));
8088
8089 parse_uint32_t("layerCount", obj["layerCount"], (o.layerCount));
8090 }
8091
parse_VkImageBlit(const char * s,Json::Value & obj,VkImageBlit & o)8092 static void parse_VkImageBlit(const char *s, Json::Value &obj, VkImageBlit &o)
8093 {
8094
8095 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
8096
8097 Json::Value &obj_srcOffsets_arr = obj["srcOffsets"];
8098 for (unsigned int i = 0; i < obj_srcOffsets_arr.size(); i++)
8099 {
8100 parse_VkOffset3D("srcOffsets", obj_srcOffsets_arr[i], const_cast<VkOffset3D &>((o.srcOffsets[i])));
8101 }
8102
8103 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
8104
8105 Json::Value &obj_dstOffsets_arr = obj["dstOffsets"];
8106 for (unsigned int i = 0; i < obj_dstOffsets_arr.size(); i++)
8107 {
8108 parse_VkOffset3D("dstOffsets", obj_dstOffsets_arr[i], const_cast<VkOffset3D &>((o.dstOffsets[i])));
8109 }
8110 }
8111
parse_VkImageCopy(const char * s,Json::Value & obj,VkImageCopy & o)8112 static void parse_VkImageCopy(const char *s, Json::Value &obj, VkImageCopy &o)
8113 {
8114
8115 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
8116
8117 parse_VkOffset3D("srcOffset", obj["srcOffset"], (o.srcOffset));
8118
8119 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
8120
8121 parse_VkOffset3D("dstOffset", obj["dstOffset"], (o.dstOffset));
8122
8123 parse_VkExtent3D("extent", obj["extent"], (o.extent));
8124 }
8125
parse_VkImageResolve(const char * s,Json::Value & obj,VkImageResolve & o)8126 static void parse_VkImageResolve(const char *s, Json::Value &obj, VkImageResolve &o)
8127 {
8128
8129 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
8130
8131 parse_VkOffset3D("srcOffset", obj["srcOffset"], (o.srcOffset));
8132
8133 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
8134
8135 parse_VkOffset3D("dstOffset", obj["dstOffset"], (o.dstOffset));
8136
8137 parse_VkExtent3D("extent", obj["extent"], (o.extent));
8138 }
8139
parse_VkRenderPassBeginInfo(const char * s,Json::Value & obj,VkRenderPassBeginInfo & o)8140 static void parse_VkRenderPassBeginInfo(const char *s, Json::Value &obj, VkRenderPassBeginInfo &o)
8141 {
8142
8143 parse_VkStructureType("sType", obj["sType"], (o.sType));
8144
8145 o.pNext = (VkRenderPassBeginInfo *)parsePNextChain(obj);
8146
8147 uint64_t renderPassInternal = 0;
8148 parse_uint64_t("renderPass", obj["renderPass"], renderPassInternal);
8149 o.renderPass = VkRenderPass(renderPassInternal);
8150
8151 parse_VkRect2D("renderArea", obj["renderArea"], (o.renderArea));
8152
8153 parse_uint32_t("clearValueCount", obj["clearValueCount"], (o.clearValueCount));
8154
8155 (o.pClearValues) = (VkClearValue *)s_globalMem.allocate((o.clearValueCount), sizeof(VkClearValue));
8156 Json::Value &obj_pClearValues_arr = obj["pClearValues"];
8157 for (unsigned int i = 0; i < obj_pClearValues_arr.size(); i++)
8158 {
8159 parse_VkClearValue("pClearValues", obj_pClearValues_arr[i], const_cast<VkClearValue &>((o.pClearValues[i])));
8160 }
8161 }
8162
parse_VkSamplerYcbcrConversion(const char * s,Json::Value & obj,VkSamplerYcbcrConversion & o)8163 static void parse_VkSamplerYcbcrConversion(const char *s, Json::Value &obj, VkSamplerYcbcrConversion &o)
8164 {
8165 // std::string _res = obj.asString();
8166 }
8167
8168 static std::map<std::string, int> VkSubgroupFeatureFlagBits_map = {
8169 std::make_pair("VK_SUBGROUP_FEATURE_BASIC_BIT", 1UL << 0),
8170 std::make_pair("VK_SUBGROUP_FEATURE_VOTE_BIT", 1UL << 1),
8171 std::make_pair("VK_SUBGROUP_FEATURE_ARITHMETIC_BIT", 1UL << 2),
8172 std::make_pair("VK_SUBGROUP_FEATURE_BALLOT_BIT", 1UL << 3),
8173 std::make_pair("VK_SUBGROUP_FEATURE_SHUFFLE_BIT", 1UL << 4),
8174 std::make_pair("VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", 1UL << 5),
8175 std::make_pair("VK_SUBGROUP_FEATURE_CLUSTERED_BIT", 1UL << 6),
8176 std::make_pair("VK_SUBGROUP_FEATURE_QUAD_BIT", 1UL << 7),
8177 std::make_pair("VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV", 1UL << 8),
8178 };
parse_VkSubgroupFeatureFlagBits(const char * s,Json::Value & obj,VkSubgroupFeatureFlagBits & o)8179 static void parse_VkSubgroupFeatureFlagBits(const char *s, Json::Value &obj, VkSubgroupFeatureFlagBits &o)
8180 {
8181 std::string _res = obj.asString();
8182 o = (VkSubgroupFeatureFlagBits)VkSubgroupFeatureFlagBits_map[std::string(_res)];
8183 }
8184
8185 static std::map<std::string, int> VkPeerMemoryFeatureFlagBits_map = {
8186 std::make_pair("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT", 1UL << 0),
8187 std::make_pair("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT", 1UL << 1),
8188 std::make_pair("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT", 1UL << 2),
8189 std::make_pair("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT", 1UL << 3),
8190 };
parse_VkPeerMemoryFeatureFlagBits(const char * s,Json::Value & obj,VkPeerMemoryFeatureFlagBits & o)8191 static void parse_VkPeerMemoryFeatureFlagBits(const char *s, Json::Value &obj, VkPeerMemoryFeatureFlagBits &o)
8192 {
8193 std::string _res = obj.asString();
8194 o = (VkPeerMemoryFeatureFlagBits)VkPeerMemoryFeatureFlagBits_map[std::string(_res)];
8195 }
8196
8197 static std::map<std::string, int> VkMemoryAllocateFlagBits_map = {
8198 std::make_pair("VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT", 1UL << 0),
8199 std::make_pair("VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT", 1UL << 1),
8200 std::make_pair("VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT", 1UL << 2),
8201 };
parse_VkMemoryAllocateFlagBits(const char * s,Json::Value & obj,VkMemoryAllocateFlagBits & o)8202 static void parse_VkMemoryAllocateFlagBits(const char *s, Json::Value &obj, VkMemoryAllocateFlagBits &o)
8203 {
8204 std::string _res = obj.asString();
8205 o = (VkMemoryAllocateFlagBits)VkMemoryAllocateFlagBits_map[std::string(_res)];
8206 }
8207
8208 static std::map<std::string, int> VkPointClippingBehavior_map = {
8209 std::make_pair("VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES", 0),
8210 std::make_pair("VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY", 1),
8211 };
parse_VkPointClippingBehavior(const char * s,Json::Value & obj,VkPointClippingBehavior & o)8212 static void parse_VkPointClippingBehavior(const char *s, Json::Value &obj, VkPointClippingBehavior &o)
8213 {
8214 std::string _res = obj.asString();
8215 o = (VkPointClippingBehavior)VkPointClippingBehavior_map[std::string(_res)];
8216 }
8217
8218 static std::map<std::string, int> VkTessellationDomainOrigin_map = {
8219 std::make_pair("VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT", 0),
8220 std::make_pair("VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT", 1),
8221 };
parse_VkTessellationDomainOrigin(const char * s,Json::Value & obj,VkTessellationDomainOrigin & o)8222 static void parse_VkTessellationDomainOrigin(const char *s, Json::Value &obj, VkTessellationDomainOrigin &o)
8223 {
8224 std::string _res = obj.asString();
8225 o = (VkTessellationDomainOrigin)VkTessellationDomainOrigin_map[std::string(_res)];
8226 }
8227
8228 static std::map<std::string, int> VkSamplerYcbcrModelConversion_map = {
8229 std::make_pair("VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY", 0),
8230 std::make_pair("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY", 1),
8231 std::make_pair("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709", 2),
8232 std::make_pair("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601", 3),
8233 std::make_pair("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020", 4),
8234 };
parse_VkSamplerYcbcrModelConversion(const char * s,Json::Value & obj,VkSamplerYcbcrModelConversion & o)8235 static void parse_VkSamplerYcbcrModelConversion(const char *s, Json::Value &obj, VkSamplerYcbcrModelConversion &o)
8236 {
8237 std::string _res = obj.asString();
8238 o = (VkSamplerYcbcrModelConversion)VkSamplerYcbcrModelConversion_map[std::string(_res)];
8239 }
8240
8241 static std::map<std::string, int> VkSamplerYcbcrRange_map = {
8242 std::make_pair("VK_SAMPLER_YCBCR_RANGE_ITU_FULL", 0),
8243 std::make_pair("VK_SAMPLER_YCBCR_RANGE_ITU_NARROW", 1),
8244 };
parse_VkSamplerYcbcrRange(const char * s,Json::Value & obj,VkSamplerYcbcrRange & o)8245 static void parse_VkSamplerYcbcrRange(const char *s, Json::Value &obj, VkSamplerYcbcrRange &o)
8246 {
8247 std::string _res = obj.asString();
8248 o = (VkSamplerYcbcrRange)VkSamplerYcbcrRange_map[std::string(_res)];
8249 }
8250
8251 static std::map<std::string, int> VkChromaLocation_map = {
8252 std::make_pair("VK_CHROMA_LOCATION_COSITED_EVEN", 0),
8253 std::make_pair("VK_CHROMA_LOCATION_MIDPOINT", 1),
8254 };
parse_VkChromaLocation(const char * s,Json::Value & obj,VkChromaLocation & o)8255 static void parse_VkChromaLocation(const char *s, Json::Value &obj, VkChromaLocation &o)
8256 {
8257 std::string _res = obj.asString();
8258 o = (VkChromaLocation)VkChromaLocation_map[std::string(_res)];
8259 }
8260
8261 static std::map<std::string, int> VkExternalMemoryHandleTypeFlagBits_map = {
8262 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT", 1UL << 0),
8263 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT", 1UL << 1),
8264 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT", 1UL << 2),
8265 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT", 1UL << 3),
8266 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT", 1UL << 4),
8267 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT", 1UL << 5),
8268 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT", 1UL << 6),
8269 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT", 1UL << 9),
8270 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID", 1UL << 10),
8271 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT", 1UL << 7),
8272 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT", 1UL << 8),
8273 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA", 1UL << 11),
8274 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV", 1UL << 12),
8275 std::make_pair("VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV", 1UL << 13),
8276 };
parse_VkExternalMemoryHandleTypeFlagBits(const char * s,Json::Value & obj,VkExternalMemoryHandleTypeFlagBits & o)8277 static void parse_VkExternalMemoryHandleTypeFlagBits(const char *s, Json::Value &obj,
8278 VkExternalMemoryHandleTypeFlagBits &o)
8279 {
8280 std::string _res = obj.asString();
8281 o = (VkExternalMemoryHandleTypeFlagBits)VkExternalMemoryHandleTypeFlagBits_map[std::string(_res)];
8282 }
8283
8284 static std::map<std::string, int> VkExternalMemoryFeatureFlagBits_map = {
8285 std::make_pair("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT", 1UL << 0),
8286 std::make_pair("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT", 1UL << 1),
8287 std::make_pair("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT", 1UL << 2),
8288 };
parse_VkExternalMemoryFeatureFlagBits(const char * s,Json::Value & obj,VkExternalMemoryFeatureFlagBits & o)8289 static void parse_VkExternalMemoryFeatureFlagBits(const char *s, Json::Value &obj, VkExternalMemoryFeatureFlagBits &o)
8290 {
8291 std::string _res = obj.asString();
8292 o = (VkExternalMemoryFeatureFlagBits)VkExternalMemoryFeatureFlagBits_map[std::string(_res)];
8293 }
8294
8295 static std::map<std::string, int> VkExternalFenceHandleTypeFlagBits_map = {
8296 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT", 1UL << 0),
8297 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT", 1UL << 1),
8298 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT", 1UL << 2),
8299 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT", 1UL << 3),
8300 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV", 1UL << 4),
8301 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV", 1UL << 5),
8302 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV", 1UL << 4),
8303 std::make_pair("VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV", 1UL << 5),
8304 };
parse_VkExternalFenceHandleTypeFlagBits(const char * s,Json::Value & obj,VkExternalFenceHandleTypeFlagBits & o)8305 static void parse_VkExternalFenceHandleTypeFlagBits(const char *s, Json::Value &obj,
8306 VkExternalFenceHandleTypeFlagBits &o)
8307 {
8308 std::string _res = obj.asString();
8309 o = (VkExternalFenceHandleTypeFlagBits)VkExternalFenceHandleTypeFlagBits_map[std::string(_res)];
8310 }
8311
8312 static std::map<std::string, int> VkExternalFenceFeatureFlagBits_map = {
8313 std::make_pair("VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT", 1UL << 0),
8314 std::make_pair("VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT", 1UL << 1),
8315 };
parse_VkExternalFenceFeatureFlagBits(const char * s,Json::Value & obj,VkExternalFenceFeatureFlagBits & o)8316 static void parse_VkExternalFenceFeatureFlagBits(const char *s, Json::Value &obj, VkExternalFenceFeatureFlagBits &o)
8317 {
8318 std::string _res = obj.asString();
8319 o = (VkExternalFenceFeatureFlagBits)VkExternalFenceFeatureFlagBits_map[std::string(_res)];
8320 }
8321
8322 static std::map<std::string, int> VkFenceImportFlagBits_map = {
8323 std::make_pair("VK_FENCE_IMPORT_TEMPORARY_BIT", 1UL << 0),
8324 };
parse_VkFenceImportFlagBits(const char * s,Json::Value & obj,VkFenceImportFlagBits & o)8325 static void parse_VkFenceImportFlagBits(const char *s, Json::Value &obj, VkFenceImportFlagBits &o)
8326 {
8327 std::string _res = obj.asString();
8328 o = (VkFenceImportFlagBits)VkFenceImportFlagBits_map[std::string(_res)];
8329 }
8330
8331 static std::map<std::string, int> VkSemaphoreImportFlagBits_map = {
8332 std::make_pair("VK_SEMAPHORE_IMPORT_TEMPORARY_BIT", 1UL << 0),
8333 };
parse_VkSemaphoreImportFlagBits(const char * s,Json::Value & obj,VkSemaphoreImportFlagBits & o)8334 static void parse_VkSemaphoreImportFlagBits(const char *s, Json::Value &obj, VkSemaphoreImportFlagBits &o)
8335 {
8336 std::string _res = obj.asString();
8337 o = (VkSemaphoreImportFlagBits)VkSemaphoreImportFlagBits_map[std::string(_res)];
8338 }
8339
8340 static std::map<std::string, int> VkExternalSemaphoreHandleTypeFlagBits_map = {
8341 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT", 1UL << 0),
8342 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT", 1UL << 1),
8343 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT", 1UL << 2),
8344 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT", 1UL << 3),
8345 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT", 1UL << 4),
8346 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA", 1UL << 7),
8347 std::make_pair("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV", 1UL << 5),
8348 };
parse_VkExternalSemaphoreHandleTypeFlagBits(const char * s,Json::Value & obj,VkExternalSemaphoreHandleTypeFlagBits & o)8349 static void parse_VkExternalSemaphoreHandleTypeFlagBits(const char *s, Json::Value &obj,
8350 VkExternalSemaphoreHandleTypeFlagBits &o)
8351 {
8352 std::string _res = obj.asString();
8353 o = (VkExternalSemaphoreHandleTypeFlagBits)VkExternalSemaphoreHandleTypeFlagBits_map[std::string(_res)];
8354 }
8355
8356 static std::map<std::string, int> VkExternalSemaphoreFeatureFlagBits_map = {
8357 std::make_pair("VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT", 1UL << 0),
8358 std::make_pair("VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT", 1UL << 1),
8359 };
parse_VkExternalSemaphoreFeatureFlagBits(const char * s,Json::Value & obj,VkExternalSemaphoreFeatureFlagBits & o)8360 static void parse_VkExternalSemaphoreFeatureFlagBits(const char *s, Json::Value &obj,
8361 VkExternalSemaphoreFeatureFlagBits &o)
8362 {
8363 std::string _res = obj.asString();
8364 o = (VkExternalSemaphoreFeatureFlagBits)VkExternalSemaphoreFeatureFlagBits_map[std::string(_res)];
8365 }
8366
parse_VkSubgroupFeatureFlags(const char * s,Json::Value & obj,VkSubgroupFeatureFlags & o)8367 static void parse_VkSubgroupFeatureFlags(const char *s, Json::Value &obj, VkSubgroupFeatureFlags &o)
8368 {
8369 o = (VkSubgroupFeatureFlags)0;
8370 std::string _res = obj.asString();
8371 std::vector<std::string> bitmasks;
8372 std::istringstream inputStream(_res);
8373 std::string tempStr;
8374 while (getline(inputStream, tempStr, '|'))
8375 {
8376 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8377 bitmasks.push_back(tempStr);
8378 }
8379 for (auto &it : bitmasks)
8380 {
8381 o |= (VkSubgroupFeatureFlagBits)VkSubgroupFeatureFlagBits_map[it];
8382 }
8383 }
8384
parse_VkPeerMemoryFeatureFlags(const char * s,Json::Value & obj,VkPeerMemoryFeatureFlags & o)8385 static void parse_VkPeerMemoryFeatureFlags(const char *s, Json::Value &obj, VkPeerMemoryFeatureFlags &o)
8386 {
8387 o = (VkPeerMemoryFeatureFlags)0;
8388 std::string _res = obj.asString();
8389 std::vector<std::string> bitmasks;
8390 std::istringstream inputStream(_res);
8391 std::string tempStr;
8392 while (getline(inputStream, tempStr, '|'))
8393 {
8394 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8395 bitmasks.push_back(tempStr);
8396 }
8397 for (auto &it : bitmasks)
8398 {
8399 o |= (VkPeerMemoryFeatureFlagBits)VkPeerMemoryFeatureFlagBits_map[it];
8400 }
8401 }
8402
parse_VkMemoryAllocateFlags(const char * s,Json::Value & obj,VkMemoryAllocateFlags & o)8403 static void parse_VkMemoryAllocateFlags(const char *s, Json::Value &obj, VkMemoryAllocateFlags &o)
8404 {
8405 o = (VkMemoryAllocateFlags)0;
8406 std::string _res = obj.asString();
8407 std::vector<std::string> bitmasks;
8408 std::istringstream inputStream(_res);
8409 std::string tempStr;
8410 while (getline(inputStream, tempStr, '|'))
8411 {
8412 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8413 bitmasks.push_back(tempStr);
8414 }
8415 for (auto &it : bitmasks)
8416 {
8417 o |= (VkMemoryAllocateFlagBits)VkMemoryAllocateFlagBits_map[it];
8418 }
8419 }
8420
parse_VkExternalMemoryHandleTypeFlags(const char * s,Json::Value & obj,VkExternalMemoryHandleTypeFlags & o)8421 static void parse_VkExternalMemoryHandleTypeFlags(const char *s, Json::Value &obj, VkExternalMemoryHandleTypeFlags &o)
8422 {
8423 o = (VkExternalMemoryHandleTypeFlags)0;
8424 std::string _res = obj.asString();
8425 std::vector<std::string> bitmasks;
8426 std::istringstream inputStream(_res);
8427 std::string tempStr;
8428 while (getline(inputStream, tempStr, '|'))
8429 {
8430 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8431 bitmasks.push_back(tempStr);
8432 }
8433 for (auto &it : bitmasks)
8434 {
8435 o |= (VkExternalMemoryHandleTypeFlagBits)VkExternalMemoryHandleTypeFlagBits_map[it];
8436 }
8437 }
8438
parse_VkExternalMemoryFeatureFlags(const char * s,Json::Value & obj,VkExternalMemoryFeatureFlags & o)8439 static void parse_VkExternalMemoryFeatureFlags(const char *s, Json::Value &obj, VkExternalMemoryFeatureFlags &o)
8440 {
8441 o = (VkExternalMemoryFeatureFlags)0;
8442 std::string _res = obj.asString();
8443 std::vector<std::string> bitmasks;
8444 std::istringstream inputStream(_res);
8445 std::string tempStr;
8446 while (getline(inputStream, tempStr, '|'))
8447 {
8448 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8449 bitmasks.push_back(tempStr);
8450 }
8451 for (auto &it : bitmasks)
8452 {
8453 o |= (VkExternalMemoryFeatureFlagBits)VkExternalMemoryFeatureFlagBits_map[it];
8454 }
8455 }
8456
parse_VkExternalFenceHandleTypeFlags(const char * s,Json::Value & obj,VkExternalFenceHandleTypeFlags & o)8457 static void parse_VkExternalFenceHandleTypeFlags(const char *s, Json::Value &obj, VkExternalFenceHandleTypeFlags &o)
8458 {
8459 o = (VkExternalFenceHandleTypeFlags)0;
8460 std::string _res = obj.asString();
8461 std::vector<std::string> bitmasks;
8462 std::istringstream inputStream(_res);
8463 std::string tempStr;
8464 while (getline(inputStream, tempStr, '|'))
8465 {
8466 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8467 bitmasks.push_back(tempStr);
8468 }
8469 for (auto &it : bitmasks)
8470 {
8471 o |= (VkExternalFenceHandleTypeFlagBits)VkExternalFenceHandleTypeFlagBits_map[it];
8472 }
8473 }
8474
parse_VkExternalFenceFeatureFlags(const char * s,Json::Value & obj,VkExternalFenceFeatureFlags & o)8475 static void parse_VkExternalFenceFeatureFlags(const char *s, Json::Value &obj, VkExternalFenceFeatureFlags &o)
8476 {
8477 o = (VkExternalFenceFeatureFlags)0;
8478 std::string _res = obj.asString();
8479 std::vector<std::string> bitmasks;
8480 std::istringstream inputStream(_res);
8481 std::string tempStr;
8482 while (getline(inputStream, tempStr, '|'))
8483 {
8484 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8485 bitmasks.push_back(tempStr);
8486 }
8487 for (auto &it : bitmasks)
8488 {
8489 o |= (VkExternalFenceFeatureFlagBits)VkExternalFenceFeatureFlagBits_map[it];
8490 }
8491 }
8492
parse_VkFenceImportFlags(const char * s,Json::Value & obj,VkFenceImportFlags & o)8493 static void parse_VkFenceImportFlags(const char *s, Json::Value &obj, VkFenceImportFlags &o)
8494 {
8495 o = (VkFenceImportFlags)0;
8496 std::string _res = obj.asString();
8497 std::vector<std::string> bitmasks;
8498 std::istringstream inputStream(_res);
8499 std::string tempStr;
8500 while (getline(inputStream, tempStr, '|'))
8501 {
8502 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8503 bitmasks.push_back(tempStr);
8504 }
8505 for (auto &it : bitmasks)
8506 {
8507 o |= (VkFenceImportFlagBits)VkFenceImportFlagBits_map[it];
8508 }
8509 }
8510
parse_VkSemaphoreImportFlags(const char * s,Json::Value & obj,VkSemaphoreImportFlags & o)8511 static void parse_VkSemaphoreImportFlags(const char *s, Json::Value &obj, VkSemaphoreImportFlags &o)
8512 {
8513 o = (VkSemaphoreImportFlags)0;
8514 std::string _res = obj.asString();
8515 std::vector<std::string> bitmasks;
8516 std::istringstream inputStream(_res);
8517 std::string tempStr;
8518 while (getline(inputStream, tempStr, '|'))
8519 {
8520 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8521 bitmasks.push_back(tempStr);
8522 }
8523 for (auto &it : bitmasks)
8524 {
8525 o |= (VkSemaphoreImportFlagBits)VkSemaphoreImportFlagBits_map[it];
8526 }
8527 }
8528
parse_VkExternalSemaphoreHandleTypeFlags(const char * s,Json::Value & obj,VkExternalSemaphoreHandleTypeFlags & o)8529 static void parse_VkExternalSemaphoreHandleTypeFlags(const char *s, Json::Value &obj,
8530 VkExternalSemaphoreHandleTypeFlags &o)
8531 {
8532 o = (VkExternalSemaphoreHandleTypeFlags)0;
8533 std::string _res = obj.asString();
8534 std::vector<std::string> bitmasks;
8535 std::istringstream inputStream(_res);
8536 std::string tempStr;
8537 while (getline(inputStream, tempStr, '|'))
8538 {
8539 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8540 bitmasks.push_back(tempStr);
8541 }
8542 for (auto &it : bitmasks)
8543 {
8544 o |= (VkExternalSemaphoreHandleTypeFlagBits)VkExternalSemaphoreHandleTypeFlagBits_map[it];
8545 }
8546 }
8547
parse_VkExternalSemaphoreFeatureFlags(const char * s,Json::Value & obj,VkExternalSemaphoreFeatureFlags & o)8548 static void parse_VkExternalSemaphoreFeatureFlags(const char *s, Json::Value &obj, VkExternalSemaphoreFeatureFlags &o)
8549 {
8550 o = (VkExternalSemaphoreFeatureFlags)0;
8551 std::string _res = obj.asString();
8552 std::vector<std::string> bitmasks;
8553 std::istringstream inputStream(_res);
8554 std::string tempStr;
8555 while (getline(inputStream, tempStr, '|'))
8556 {
8557 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
8558 bitmasks.push_back(tempStr);
8559 }
8560 for (auto &it : bitmasks)
8561 {
8562 o |= (VkExternalSemaphoreFeatureFlagBits)VkExternalSemaphoreFeatureFlagBits_map[it];
8563 }
8564 }
8565
parse_VkPhysicalDeviceSubgroupProperties(const char * s,Json::Value & obj,VkPhysicalDeviceSubgroupProperties & o)8566 static void parse_VkPhysicalDeviceSubgroupProperties(const char *s, Json::Value &obj,
8567 VkPhysicalDeviceSubgroupProperties &o)
8568 {
8569
8570 parse_VkStructureType("sType", obj["sType"], (o.sType));
8571
8572 o.pNext = (VkPhysicalDeviceSubgroupProperties *)parsePNextChain(obj);
8573
8574 parse_uint32_t("subgroupSize", obj["subgroupSize"], (o.subgroupSize));
8575
8576 parse_VkShaderStageFlags("supportedStages", obj["supportedStages"], (o.supportedStages));
8577
8578 parse_VkSubgroupFeatureFlags("supportedOperations", obj["supportedOperations"], (o.supportedOperations));
8579
8580 parse_VkBool32("quadOperationsInAllStages", obj["quadOperationsInAllStages"], (o.quadOperationsInAllStages));
8581 }
8582
parse_VkBindBufferMemoryInfo(const char * s,Json::Value & obj,VkBindBufferMemoryInfo & o)8583 static void parse_VkBindBufferMemoryInfo(const char *s, Json::Value &obj, VkBindBufferMemoryInfo &o)
8584 {
8585
8586 parse_VkStructureType("sType", obj["sType"], (o.sType));
8587
8588 o.pNext = (VkBindBufferMemoryInfo *)parsePNextChain(obj);
8589
8590 parse_VkDeviceSize("memoryOffset", obj["memoryOffset"], (o.memoryOffset));
8591 }
8592
parse_VkBindImageMemoryInfo(const char * s,Json::Value & obj,VkBindImageMemoryInfo & o)8593 static void parse_VkBindImageMemoryInfo(const char *s, Json::Value &obj, VkBindImageMemoryInfo &o)
8594 {
8595
8596 parse_VkStructureType("sType", obj["sType"], (o.sType));
8597
8598 o.pNext = (VkBindImageMemoryInfo *)parsePNextChain(obj);
8599
8600 parse_VkDeviceSize("memoryOffset", obj["memoryOffset"], (o.memoryOffset));
8601 }
8602
parse_VkPhysicalDevice16BitStorageFeatures(const char * s,Json::Value & obj,VkPhysicalDevice16BitStorageFeatures & o)8603 static void parse_VkPhysicalDevice16BitStorageFeatures(const char *s, Json::Value &obj,
8604 VkPhysicalDevice16BitStorageFeatures &o)
8605 {
8606
8607 parse_VkStructureType("sType", obj["sType"], (o.sType));
8608
8609 o.pNext = (VkPhysicalDevice16BitStorageFeatures *)parsePNextChain(obj);
8610
8611 parse_VkBool32("storageBuffer16BitAccess", obj["storageBuffer16BitAccess"], (o.storageBuffer16BitAccess));
8612
8613 parse_VkBool32("uniformAndStorageBuffer16BitAccess", obj["uniformAndStorageBuffer16BitAccess"],
8614 (o.uniformAndStorageBuffer16BitAccess));
8615
8616 parse_VkBool32("storagePushConstant16", obj["storagePushConstant16"], (o.storagePushConstant16));
8617
8618 parse_VkBool32("storageInputOutput16", obj["storageInputOutput16"], (o.storageInputOutput16));
8619 }
8620
parse_VkMemoryDedicatedRequirements(const char * s,Json::Value & obj,VkMemoryDedicatedRequirements & o)8621 static void parse_VkMemoryDedicatedRequirements(const char *s, Json::Value &obj, VkMemoryDedicatedRequirements &o)
8622 {
8623
8624 parse_VkStructureType("sType", obj["sType"], (o.sType));
8625
8626 o.pNext = (VkMemoryDedicatedRequirements *)parsePNextChain(obj);
8627
8628 parse_VkBool32("prefersDedicatedAllocation", obj["prefersDedicatedAllocation"], (o.prefersDedicatedAllocation));
8629
8630 parse_VkBool32("requiresDedicatedAllocation", obj["requiresDedicatedAllocation"], (o.requiresDedicatedAllocation));
8631 }
8632
parse_VkMemoryDedicatedAllocateInfo(const char * s,Json::Value & obj,VkMemoryDedicatedAllocateInfo & o)8633 static void parse_VkMemoryDedicatedAllocateInfo(const char *s, Json::Value &obj, VkMemoryDedicatedAllocateInfo &o)
8634 {
8635
8636 parse_VkStructureType("sType", obj["sType"], (o.sType));
8637
8638 o.pNext = (VkMemoryDedicatedAllocateInfo *)parsePNextChain(obj);
8639 }
8640
parse_VkMemoryAllocateFlagsInfo(const char * s,Json::Value & obj,VkMemoryAllocateFlagsInfo & o)8641 static void parse_VkMemoryAllocateFlagsInfo(const char *s, Json::Value &obj, VkMemoryAllocateFlagsInfo &o)
8642 {
8643
8644 parse_VkStructureType("sType", obj["sType"], (o.sType));
8645
8646 o.pNext = (VkMemoryAllocateFlagsInfo *)parsePNextChain(obj);
8647
8648 parse_VkMemoryAllocateFlags("flags", obj["flags"], (o.flags));
8649
8650 parse_uint32_t("deviceMask", obj["deviceMask"], (o.deviceMask));
8651 }
8652
parse_VkDeviceGroupRenderPassBeginInfo(const char * s,Json::Value & obj,VkDeviceGroupRenderPassBeginInfo & o)8653 static void parse_VkDeviceGroupRenderPassBeginInfo(const char *s, Json::Value &obj, VkDeviceGroupRenderPassBeginInfo &o)
8654 {
8655
8656 parse_VkStructureType("sType", obj["sType"], (o.sType));
8657
8658 o.pNext = (VkDeviceGroupRenderPassBeginInfo *)parsePNextChain(obj);
8659
8660 parse_uint32_t("deviceMask", obj["deviceMask"], (o.deviceMask));
8661
8662 parse_uint32_t("deviceRenderAreaCount", obj["deviceRenderAreaCount"], (o.deviceRenderAreaCount));
8663
8664 (o.pDeviceRenderAreas) = (VkRect2D *)s_globalMem.allocate((o.deviceRenderAreaCount), sizeof(VkRect2D));
8665 Json::Value &obj_pDeviceRenderAreas = obj["pDeviceRenderAreas"];
8666 if (obj_pDeviceRenderAreas.size() == 0)
8667 (o.pDeviceRenderAreas) = nullptr;
8668 else
8669 {
8670 for (unsigned int i = 0; i < (o.deviceRenderAreaCount); i++)
8671 {
8672 parse_VkRect2D("pDeviceRenderAreas", obj_pDeviceRenderAreas[i],
8673 const_cast<VkRect2D &>((o.pDeviceRenderAreas[i])));
8674 }
8675 }
8676 }
8677
parse_VkDeviceGroupCommandBufferBeginInfo(const char * s,Json::Value & obj,VkDeviceGroupCommandBufferBeginInfo & o)8678 static void parse_VkDeviceGroupCommandBufferBeginInfo(const char *s, Json::Value &obj,
8679 VkDeviceGroupCommandBufferBeginInfo &o)
8680 {
8681
8682 parse_VkStructureType("sType", obj["sType"], (o.sType));
8683
8684 o.pNext = (VkDeviceGroupCommandBufferBeginInfo *)parsePNextChain(obj);
8685
8686 parse_uint32_t("deviceMask", obj["deviceMask"], (o.deviceMask));
8687 }
8688
parse_VkDeviceGroupSubmitInfo(const char * s,Json::Value & obj,VkDeviceGroupSubmitInfo & o)8689 static void parse_VkDeviceGroupSubmitInfo(const char *s, Json::Value &obj, VkDeviceGroupSubmitInfo &o)
8690 {
8691
8692 parse_VkStructureType("sType", obj["sType"], (o.sType));
8693
8694 o.pNext = (VkDeviceGroupSubmitInfo *)parsePNextChain(obj);
8695
8696 parse_uint32_t("waitSemaphoreCount", obj["waitSemaphoreCount"], (o.waitSemaphoreCount));
8697
8698 (o.pWaitSemaphoreDeviceIndices) = (uint32_t *)s_globalMem.allocate((o.waitSemaphoreCount), sizeof(uint32_t));
8699 Json::Value &obj_pWaitSemaphoreDeviceIndices_arr = obj["pWaitSemaphoreDeviceIndices"];
8700 for (unsigned int i = 0; i < obj_pWaitSemaphoreDeviceIndices_arr.size(); i++)
8701 {
8702 parse_uint32_t("pWaitSemaphoreDeviceIndices", obj_pWaitSemaphoreDeviceIndices_arr[i],
8703 const_cast<uint32_t &>((o.pWaitSemaphoreDeviceIndices[i])));
8704 }
8705
8706 parse_uint32_t("commandBufferCount", obj["commandBufferCount"], (o.commandBufferCount));
8707
8708 (o.pCommandBufferDeviceMasks) = (uint32_t *)s_globalMem.allocate((o.commandBufferCount), sizeof(uint32_t));
8709 Json::Value &obj_pCommandBufferDeviceMasks_arr = obj["pCommandBufferDeviceMasks"];
8710 for (unsigned int i = 0; i < obj_pCommandBufferDeviceMasks_arr.size(); i++)
8711 {
8712 parse_uint32_t("pCommandBufferDeviceMasks", obj_pCommandBufferDeviceMasks_arr[i],
8713 const_cast<uint32_t &>((o.pCommandBufferDeviceMasks[i])));
8714 }
8715
8716 parse_uint32_t("signalSemaphoreCount", obj["signalSemaphoreCount"], (o.signalSemaphoreCount));
8717
8718 (o.pSignalSemaphoreDeviceIndices) = (uint32_t *)s_globalMem.allocate((o.signalSemaphoreCount), sizeof(uint32_t));
8719 Json::Value &obj_pSignalSemaphoreDeviceIndices_arr = obj["pSignalSemaphoreDeviceIndices"];
8720 for (unsigned int i = 0; i < obj_pSignalSemaphoreDeviceIndices_arr.size(); i++)
8721 {
8722 parse_uint32_t("pSignalSemaphoreDeviceIndices", obj_pSignalSemaphoreDeviceIndices_arr[i],
8723 const_cast<uint32_t &>((o.pSignalSemaphoreDeviceIndices[i])));
8724 }
8725 }
8726
parse_VkBindBufferMemoryDeviceGroupInfo(const char * s,Json::Value & obj,VkBindBufferMemoryDeviceGroupInfo & o)8727 static void parse_VkBindBufferMemoryDeviceGroupInfo(const char *s, Json::Value &obj,
8728 VkBindBufferMemoryDeviceGroupInfo &o)
8729 {
8730
8731 parse_VkStructureType("sType", obj["sType"], (o.sType));
8732
8733 o.pNext = (VkBindBufferMemoryDeviceGroupInfo *)parsePNextChain(obj);
8734
8735 parse_uint32_t("deviceIndexCount", obj["deviceIndexCount"], (o.deviceIndexCount));
8736
8737 (o.pDeviceIndices) = (uint32_t *)s_globalMem.allocate((o.deviceIndexCount), sizeof(uint32_t));
8738 Json::Value &obj_pDeviceIndices_arr = obj["pDeviceIndices"];
8739 for (unsigned int i = 0; i < obj_pDeviceIndices_arr.size(); i++)
8740 {
8741 parse_uint32_t("pDeviceIndices", obj_pDeviceIndices_arr[i], const_cast<uint32_t &>((o.pDeviceIndices[i])));
8742 }
8743 }
8744
parse_VkBindImageMemoryDeviceGroupInfo(const char * s,Json::Value & obj,VkBindImageMemoryDeviceGroupInfo & o)8745 static void parse_VkBindImageMemoryDeviceGroupInfo(const char *s, Json::Value &obj, VkBindImageMemoryDeviceGroupInfo &o)
8746 {
8747
8748 parse_VkStructureType("sType", obj["sType"], (o.sType));
8749
8750 o.pNext = (VkBindImageMemoryDeviceGroupInfo *)parsePNextChain(obj);
8751
8752 parse_uint32_t("deviceIndexCount", obj["deviceIndexCount"], (o.deviceIndexCount));
8753
8754 (o.pDeviceIndices) = (uint32_t *)s_globalMem.allocate((o.deviceIndexCount), sizeof(uint32_t));
8755 Json::Value &obj_pDeviceIndices_arr = obj["pDeviceIndices"];
8756 for (unsigned int i = 0; i < obj_pDeviceIndices_arr.size(); i++)
8757 {
8758 parse_uint32_t("pDeviceIndices", obj_pDeviceIndices_arr[i], const_cast<uint32_t &>((o.pDeviceIndices[i])));
8759 }
8760
8761 parse_uint32_t("splitInstanceBindRegionCount", obj["splitInstanceBindRegionCount"],
8762 (o.splitInstanceBindRegionCount));
8763
8764 (o.pSplitInstanceBindRegions) =
8765 (VkRect2D *)s_globalMem.allocate((o.splitInstanceBindRegionCount), sizeof(VkRect2D));
8766 Json::Value &obj_pSplitInstanceBindRegions = obj["pSplitInstanceBindRegions"];
8767 if (obj_pSplitInstanceBindRegions.size() == 0)
8768 (o.pSplitInstanceBindRegions) = nullptr;
8769 else
8770 {
8771 for (unsigned int i = 0; i < (o.splitInstanceBindRegionCount); i++)
8772 {
8773 parse_VkRect2D("pSplitInstanceBindRegions", obj_pSplitInstanceBindRegions[i],
8774 const_cast<VkRect2D &>((o.pSplitInstanceBindRegions[i])));
8775 }
8776 }
8777 }
8778
parse_VkPhysicalDeviceGroupProperties(const char * s,Json::Value & obj,VkPhysicalDeviceGroupProperties & o)8779 static void parse_VkPhysicalDeviceGroupProperties(const char *s, Json::Value &obj, VkPhysicalDeviceGroupProperties &o)
8780 {
8781
8782 parse_VkStructureType("sType", obj["sType"], (o.sType));
8783
8784 o.pNext = (VkPhysicalDeviceGroupProperties *)parsePNextChain(obj);
8785
8786 parse_uint32_t("physicalDeviceCount", obj["physicalDeviceCount"], (o.physicalDeviceCount));
8787
8788 Json::Value &obj_physicalDevices_arr = obj["physicalDevices"];
8789 for (unsigned int i = 0; i < obj_physicalDevices_arr.size(); i++)
8790 {
8791 parse_VkPhysicalDevice("physicalDevices", obj_physicalDevices_arr[i],
8792 const_cast<VkPhysicalDevice &>((o.physicalDevices[i])));
8793 }
8794
8795 parse_VkBool32("subsetAllocation", obj["subsetAllocation"], (o.subsetAllocation));
8796 }
8797
parse_VkDeviceGroupDeviceCreateInfo(const char * s,Json::Value & obj,VkDeviceGroupDeviceCreateInfo & o)8798 static void parse_VkDeviceGroupDeviceCreateInfo(const char *s, Json::Value &obj, VkDeviceGroupDeviceCreateInfo &o)
8799 {
8800
8801 parse_VkStructureType("sType", obj["sType"], (o.sType));
8802
8803 o.pNext = (VkDeviceGroupDeviceCreateInfo *)parsePNextChain(obj);
8804
8805 parse_uint32_t("physicalDeviceCount", obj["physicalDeviceCount"], (o.physicalDeviceCount));
8806
8807 (o.pPhysicalDevices) = (VkPhysicalDevice *)s_globalMem.allocate((o.physicalDeviceCount), sizeof(VkPhysicalDevice));
8808 Json::Value &obj_pPhysicalDevices_arr = obj["pPhysicalDevices"];
8809 for (unsigned int i = 0; i < obj_pPhysicalDevices_arr.size(); i++)
8810 {
8811 parse_VkPhysicalDevice("pPhysicalDevices", obj_pPhysicalDevices_arr[i],
8812 const_cast<VkPhysicalDevice &>((o.pPhysicalDevices[i])));
8813 }
8814 }
8815
parse_VkBufferMemoryRequirementsInfo2(const char * s,Json::Value & obj,VkBufferMemoryRequirementsInfo2 & o)8816 static void parse_VkBufferMemoryRequirementsInfo2(const char *s, Json::Value &obj, VkBufferMemoryRequirementsInfo2 &o)
8817 {
8818
8819 parse_VkStructureType("sType", obj["sType"], (o.sType));
8820
8821 o.pNext = (VkBufferMemoryRequirementsInfo2 *)parsePNextChain(obj);
8822 }
8823
parse_VkImageMemoryRequirementsInfo2(const char * s,Json::Value & obj,VkImageMemoryRequirementsInfo2 & o)8824 static void parse_VkImageMemoryRequirementsInfo2(const char *s, Json::Value &obj, VkImageMemoryRequirementsInfo2 &o)
8825 {
8826
8827 parse_VkStructureType("sType", obj["sType"], (o.sType));
8828
8829 o.pNext = (VkImageMemoryRequirementsInfo2 *)parsePNextChain(obj);
8830 }
8831
parse_VkMemoryRequirements2(const char * s,Json::Value & obj,VkMemoryRequirements2 & o)8832 static void parse_VkMemoryRequirements2(const char *s, Json::Value &obj, VkMemoryRequirements2 &o)
8833 {
8834
8835 parse_VkStructureType("sType", obj["sType"], (o.sType));
8836
8837 o.pNext = (VkMemoryRequirements2 *)parsePNextChain(obj);
8838
8839 parse_VkMemoryRequirements("memoryRequirements", obj["memoryRequirements"], (o.memoryRequirements));
8840 }
8841
parse_VkPhysicalDeviceFeatures2(const char * s,Json::Value & obj,VkPhysicalDeviceFeatures2 & o)8842 static void parse_VkPhysicalDeviceFeatures2(const char *s, Json::Value &obj, VkPhysicalDeviceFeatures2 &o)
8843 {
8844
8845 parse_VkStructureType("sType", obj["sType"], (o.sType));
8846
8847 o.pNext = (VkPhysicalDeviceFeatures2 *)parsePNextChain(obj);
8848
8849 parse_VkPhysicalDeviceFeatures("features", obj["features"], (o.features));
8850 }
8851
parse_VkPhysicalDeviceProperties2(const char * s,Json::Value & obj,VkPhysicalDeviceProperties2 & o)8852 static void parse_VkPhysicalDeviceProperties2(const char *s, Json::Value &obj, VkPhysicalDeviceProperties2 &o)
8853 {
8854
8855 parse_VkStructureType("sType", obj["sType"], (o.sType));
8856
8857 o.pNext = (VkPhysicalDeviceProperties2 *)parsePNextChain(obj);
8858
8859 parse_VkPhysicalDeviceProperties("properties", obj["properties"], (o.properties));
8860 }
8861
parse_VkFormatProperties2(const char * s,Json::Value & obj,VkFormatProperties2 & o)8862 static void parse_VkFormatProperties2(const char *s, Json::Value &obj, VkFormatProperties2 &o)
8863 {
8864
8865 parse_VkStructureType("sType", obj["sType"], (o.sType));
8866
8867 o.pNext = (VkFormatProperties2 *)parsePNextChain(obj);
8868
8869 parse_VkFormatProperties("formatProperties", obj["formatProperties"], (o.formatProperties));
8870 }
8871
parse_VkImageFormatProperties2(const char * s,Json::Value & obj,VkImageFormatProperties2 & o)8872 static void parse_VkImageFormatProperties2(const char *s, Json::Value &obj, VkImageFormatProperties2 &o)
8873 {
8874
8875 parse_VkStructureType("sType", obj["sType"], (o.sType));
8876
8877 o.pNext = (VkImageFormatProperties2 *)parsePNextChain(obj);
8878
8879 parse_VkImageFormatProperties("imageFormatProperties", obj["imageFormatProperties"], (o.imageFormatProperties));
8880 }
8881
parse_VkPhysicalDeviceImageFormatInfo2(const char * s,Json::Value & obj,VkPhysicalDeviceImageFormatInfo2 & o)8882 static void parse_VkPhysicalDeviceImageFormatInfo2(const char *s, Json::Value &obj, VkPhysicalDeviceImageFormatInfo2 &o)
8883 {
8884
8885 parse_VkStructureType("sType", obj["sType"], (o.sType));
8886
8887 o.pNext = (VkPhysicalDeviceImageFormatInfo2 *)parsePNextChain(obj);
8888
8889 parse_VkFormat("format", obj["format"], (o.format));
8890
8891 parse_VkImageType("type", obj["type"], (o.type));
8892
8893 parse_VkImageTiling("tiling", obj["tiling"], (o.tiling));
8894
8895 parse_VkImageUsageFlags("usage", obj["usage"], (o.usage));
8896
8897 parse_VkImageCreateFlags("flags", obj["flags"], (o.flags));
8898 }
8899
parse_VkQueueFamilyProperties2(const char * s,Json::Value & obj,VkQueueFamilyProperties2 & o)8900 static void parse_VkQueueFamilyProperties2(const char *s, Json::Value &obj, VkQueueFamilyProperties2 &o)
8901 {
8902
8903 parse_VkStructureType("sType", obj["sType"], (o.sType));
8904
8905 o.pNext = (VkQueueFamilyProperties2 *)parsePNextChain(obj);
8906
8907 parse_VkQueueFamilyProperties("queueFamilyProperties", obj["queueFamilyProperties"], (o.queueFamilyProperties));
8908 }
8909
parse_VkPhysicalDeviceMemoryProperties2(const char * s,Json::Value & obj,VkPhysicalDeviceMemoryProperties2 & o)8910 static void parse_VkPhysicalDeviceMemoryProperties2(const char *s, Json::Value &obj,
8911 VkPhysicalDeviceMemoryProperties2 &o)
8912 {
8913
8914 parse_VkStructureType("sType", obj["sType"], (o.sType));
8915
8916 o.pNext = (VkPhysicalDeviceMemoryProperties2 *)parsePNextChain(obj);
8917
8918 parse_VkPhysicalDeviceMemoryProperties("memoryProperties", obj["memoryProperties"], (o.memoryProperties));
8919 }
8920
parse_VkPhysicalDevicePointClippingProperties(const char * s,Json::Value & obj,VkPhysicalDevicePointClippingProperties & o)8921 static void parse_VkPhysicalDevicePointClippingProperties(const char *s, Json::Value &obj,
8922 VkPhysicalDevicePointClippingProperties &o)
8923 {
8924
8925 parse_VkStructureType("sType", obj["sType"], (o.sType));
8926
8927 o.pNext = (VkPhysicalDevicePointClippingProperties *)parsePNextChain(obj);
8928
8929 parse_VkPointClippingBehavior("pointClippingBehavior", obj["pointClippingBehavior"], (o.pointClippingBehavior));
8930 }
8931
parse_VkInputAttachmentAspectReference(const char * s,Json::Value & obj,VkInputAttachmentAspectReference & o)8932 static void parse_VkInputAttachmentAspectReference(const char *s, Json::Value &obj, VkInputAttachmentAspectReference &o)
8933 {
8934
8935 parse_uint32_t("subpass", obj["subpass"], (o.subpass));
8936
8937 parse_uint32_t("inputAttachmentIndex", obj["inputAttachmentIndex"], (o.inputAttachmentIndex));
8938
8939 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
8940 }
8941
parse_VkRenderPassInputAttachmentAspectCreateInfo(const char * s,Json::Value & obj,VkRenderPassInputAttachmentAspectCreateInfo & o)8942 static void parse_VkRenderPassInputAttachmentAspectCreateInfo(const char *s, Json::Value &obj,
8943 VkRenderPassInputAttachmentAspectCreateInfo &o)
8944 {
8945
8946 parse_VkStructureType("sType", obj["sType"], (o.sType));
8947
8948 o.pNext = (VkRenderPassInputAttachmentAspectCreateInfo *)parsePNextChain(obj);
8949
8950 parse_uint32_t("aspectReferenceCount", obj["aspectReferenceCount"], (o.aspectReferenceCount));
8951
8952 (o.pAspectReferences) = (VkInputAttachmentAspectReference *)s_globalMem.allocate(
8953 (o.aspectReferenceCount), sizeof(VkInputAttachmentAspectReference));
8954 Json::Value &obj_pAspectReferences = obj["pAspectReferences"];
8955 if (obj_pAspectReferences.size() == 0)
8956 (o.pAspectReferences) = nullptr;
8957 else
8958 {
8959 for (unsigned int i = 0; i < (o.aspectReferenceCount); i++)
8960 {
8961 parse_VkInputAttachmentAspectReference(
8962 "pAspectReferences", obj_pAspectReferences[i],
8963 const_cast<VkInputAttachmentAspectReference &>((o.pAspectReferences[i])));
8964 }
8965 }
8966 }
8967
parse_VkImageViewUsageCreateInfo(const char * s,Json::Value & obj,VkImageViewUsageCreateInfo & o)8968 static void parse_VkImageViewUsageCreateInfo(const char *s, Json::Value &obj, VkImageViewUsageCreateInfo &o)
8969 {
8970
8971 parse_VkStructureType("sType", obj["sType"], (o.sType));
8972
8973 o.pNext = (VkImageViewUsageCreateInfo *)parsePNextChain(obj);
8974
8975 parse_VkImageUsageFlags("usage", obj["usage"], (o.usage));
8976 }
8977
parse_VkPipelineTessellationDomainOriginStateCreateInfo(const char * s,Json::Value & obj,VkPipelineTessellationDomainOriginStateCreateInfo & o)8978 static void parse_VkPipelineTessellationDomainOriginStateCreateInfo(
8979 const char *s, Json::Value &obj, VkPipelineTessellationDomainOriginStateCreateInfo &o)
8980 {
8981
8982 parse_VkStructureType("sType", obj["sType"], (o.sType));
8983
8984 o.pNext = (VkPipelineTessellationDomainOriginStateCreateInfo *)parsePNextChain(obj);
8985
8986 parse_VkTessellationDomainOrigin("domainOrigin", obj["domainOrigin"], (o.domainOrigin));
8987 }
8988
parse_VkRenderPassMultiviewCreateInfo(const char * s,Json::Value & obj,VkRenderPassMultiviewCreateInfo & o)8989 static void parse_VkRenderPassMultiviewCreateInfo(const char *s, Json::Value &obj, VkRenderPassMultiviewCreateInfo &o)
8990 {
8991
8992 parse_VkStructureType("sType", obj["sType"], (o.sType));
8993
8994 o.pNext = (VkRenderPassMultiviewCreateInfo *)parsePNextChain(obj);
8995
8996 parse_uint32_t("subpassCount", obj["subpassCount"], (o.subpassCount));
8997
8998 (o.pViewMasks) = (uint32_t *)s_globalMem.allocate((o.subpassCount), sizeof(uint32_t));
8999 Json::Value &obj_pViewMasks_arr = obj["pViewMasks"];
9000 for (unsigned int i = 0; i < obj_pViewMasks_arr.size(); i++)
9001 {
9002 parse_uint32_t("pViewMasks", obj_pViewMasks_arr[i], const_cast<uint32_t &>((o.pViewMasks[i])));
9003 }
9004
9005 parse_uint32_t("dependencyCount", obj["dependencyCount"], (o.dependencyCount));
9006
9007 (o.pViewOffsets) = (int32_t *)s_globalMem.allocate((o.dependencyCount), sizeof(int32_t));
9008 Json::Value &obj_pViewOffsets_arr = obj["pViewOffsets"];
9009 for (unsigned int i = 0; i < obj_pViewOffsets_arr.size(); i++)
9010 {
9011 parse_int32_t("pViewOffsets", obj_pViewOffsets_arr[i], const_cast<int32_t &>((o.pViewOffsets[i])));
9012 }
9013
9014 parse_uint32_t("correlationMaskCount", obj["correlationMaskCount"], (o.correlationMaskCount));
9015
9016 (o.pCorrelationMasks) = (uint32_t *)s_globalMem.allocate((o.correlationMaskCount), sizeof(uint32_t));
9017 Json::Value &obj_pCorrelationMasks_arr = obj["pCorrelationMasks"];
9018 for (unsigned int i = 0; i < obj_pCorrelationMasks_arr.size(); i++)
9019 {
9020 parse_uint32_t("pCorrelationMasks", obj_pCorrelationMasks_arr[i],
9021 const_cast<uint32_t &>((o.pCorrelationMasks[i])));
9022 }
9023 }
9024
parse_VkPhysicalDeviceMultiviewFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceMultiviewFeatures & o)9025 static void parse_VkPhysicalDeviceMultiviewFeatures(const char *s, Json::Value &obj,
9026 VkPhysicalDeviceMultiviewFeatures &o)
9027 {
9028
9029 parse_VkStructureType("sType", obj["sType"], (o.sType));
9030
9031 o.pNext = (VkPhysicalDeviceMultiviewFeatures *)parsePNextChain(obj);
9032
9033 parse_VkBool32("multiview", obj["multiview"], (o.multiview));
9034
9035 parse_VkBool32("multiviewGeometryShader", obj["multiviewGeometryShader"], (o.multiviewGeometryShader));
9036
9037 parse_VkBool32("multiviewTessellationShader", obj["multiviewTessellationShader"], (o.multiviewTessellationShader));
9038 }
9039
parse_VkPhysicalDeviceMultiviewProperties(const char * s,Json::Value & obj,VkPhysicalDeviceMultiviewProperties & o)9040 static void parse_VkPhysicalDeviceMultiviewProperties(const char *s, Json::Value &obj,
9041 VkPhysicalDeviceMultiviewProperties &o)
9042 {
9043
9044 parse_VkStructureType("sType", obj["sType"], (o.sType));
9045
9046 o.pNext = (VkPhysicalDeviceMultiviewProperties *)parsePNextChain(obj);
9047
9048 parse_uint32_t("maxMultiviewViewCount", obj["maxMultiviewViewCount"], (o.maxMultiviewViewCount));
9049
9050 parse_uint32_t("maxMultiviewInstanceIndex", obj["maxMultiviewInstanceIndex"], (o.maxMultiviewInstanceIndex));
9051 }
9052
parse_VkPhysicalDeviceVariablePointersFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceVariablePointersFeatures & o)9053 static void parse_VkPhysicalDeviceVariablePointersFeatures(const char *s, Json::Value &obj,
9054 VkPhysicalDeviceVariablePointersFeatures &o)
9055 {
9056
9057 parse_VkStructureType("sType", obj["sType"], (o.sType));
9058
9059 o.pNext = (VkPhysicalDeviceVariablePointersFeatures *)parsePNextChain(obj);
9060
9061 parse_VkBool32("variablePointersStorageBuffer", obj["variablePointersStorageBuffer"],
9062 (o.variablePointersStorageBuffer));
9063
9064 parse_VkBool32("variablePointers", obj["variablePointers"], (o.variablePointers));
9065 }
9066
9067 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
9068
parse_VkPhysicalDeviceProtectedMemoryFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceProtectedMemoryFeatures & o)9069 static void parse_VkPhysicalDeviceProtectedMemoryFeatures(const char *s, Json::Value &obj,
9070 VkPhysicalDeviceProtectedMemoryFeatures &o)
9071 {
9072
9073 parse_VkStructureType("sType", obj["sType"], (o.sType));
9074
9075 o.pNext = (VkPhysicalDeviceProtectedMemoryFeatures *)parsePNextChain(obj);
9076
9077 parse_VkBool32("protectedMemory", obj["protectedMemory"], (o.protectedMemory));
9078 }
9079
parse_VkPhysicalDeviceProtectedMemoryProperties(const char * s,Json::Value & obj,VkPhysicalDeviceProtectedMemoryProperties & o)9080 static void parse_VkPhysicalDeviceProtectedMemoryProperties(const char *s, Json::Value &obj,
9081 VkPhysicalDeviceProtectedMemoryProperties &o)
9082 {
9083
9084 parse_VkStructureType("sType", obj["sType"], (o.sType));
9085
9086 o.pNext = (VkPhysicalDeviceProtectedMemoryProperties *)parsePNextChain(obj);
9087
9088 parse_VkBool32("protectedNoFault", obj["protectedNoFault"], (o.protectedNoFault));
9089 }
9090
parse_VkDeviceQueueInfo2(const char * s,Json::Value & obj,VkDeviceQueueInfo2 & o)9091 static void parse_VkDeviceQueueInfo2(const char *s, Json::Value &obj, VkDeviceQueueInfo2 &o)
9092 {
9093
9094 parse_VkStructureType("sType", obj["sType"], (o.sType));
9095
9096 o.pNext = (VkDeviceQueueInfo2 *)parsePNextChain(obj);
9097
9098 parse_VkDeviceQueueCreateFlags("flags", obj["flags"], (o.flags));
9099
9100 parse_uint32_t("queueFamilyIndex", obj["queueFamilyIndex"], (o.queueFamilyIndex));
9101
9102 parse_uint32_t("queueIndex", obj["queueIndex"], (o.queueIndex));
9103 }
9104
parse_VkProtectedSubmitInfo(const char * s,Json::Value & obj,VkProtectedSubmitInfo & o)9105 static void parse_VkProtectedSubmitInfo(const char *s, Json::Value &obj, VkProtectedSubmitInfo &o)
9106 {
9107
9108 parse_VkStructureType("sType", obj["sType"], (o.sType));
9109
9110 o.pNext = (VkProtectedSubmitInfo *)parsePNextChain(obj);
9111
9112 parse_VkBool32("protectedSubmit", obj["protectedSubmit"], (o.protectedSubmit));
9113 }
9114
parse_VkSamplerYcbcrConversionCreateInfo(const char * s,Json::Value & obj,VkSamplerYcbcrConversionCreateInfo & o)9115 static void parse_VkSamplerYcbcrConversionCreateInfo(const char *s, Json::Value &obj,
9116 VkSamplerYcbcrConversionCreateInfo &o)
9117 {
9118
9119 parse_VkStructureType("sType", obj["sType"], (o.sType));
9120
9121 o.pNext = (VkSamplerYcbcrConversionCreateInfo *)parsePNextChain(obj);
9122
9123 parse_VkFormat("format", obj["format"], (o.format));
9124
9125 parse_VkSamplerYcbcrModelConversion("ycbcrModel", obj["ycbcrModel"], (o.ycbcrModel));
9126
9127 parse_VkSamplerYcbcrRange("ycbcrRange", obj["ycbcrRange"], (o.ycbcrRange));
9128
9129 parse_VkComponentMapping("components", obj["components"], (o.components));
9130
9131 parse_VkChromaLocation("xChromaOffset", obj["xChromaOffset"], (o.xChromaOffset));
9132
9133 parse_VkChromaLocation("yChromaOffset", obj["yChromaOffset"], (o.yChromaOffset));
9134
9135 parse_VkFilter("chromaFilter", obj["chromaFilter"], (o.chromaFilter));
9136
9137 parse_VkBool32("forceExplicitReconstruction", obj["forceExplicitReconstruction"], (o.forceExplicitReconstruction));
9138 }
9139
parse_VkSamplerYcbcrConversionInfo(const char * s,Json::Value & obj,VkSamplerYcbcrConversionInfo & o)9140 static void parse_VkSamplerYcbcrConversionInfo(const char *s, Json::Value &obj, VkSamplerYcbcrConversionInfo &o)
9141 {
9142
9143 parse_VkStructureType("sType", obj["sType"], (o.sType));
9144
9145 o.pNext = (VkSamplerYcbcrConversionInfo *)parsePNextChain(obj);
9146
9147 uint64_t conversionInternal = 0;
9148 parse_uint64_t("conversion", obj["conversion"], conversionInternal);
9149 o.conversion = VkSamplerYcbcrConversion(conversionInternal);
9150 }
9151
parse_VkBindImagePlaneMemoryInfo(const char * s,Json::Value & obj,VkBindImagePlaneMemoryInfo & o)9152 static void parse_VkBindImagePlaneMemoryInfo(const char *s, Json::Value &obj, VkBindImagePlaneMemoryInfo &o)
9153 {
9154
9155 parse_VkStructureType("sType", obj["sType"], (o.sType));
9156
9157 o.pNext = (VkBindImagePlaneMemoryInfo *)parsePNextChain(obj);
9158
9159 parse_VkImageAspectFlagBits("planeAspect", obj["planeAspect"], (o.planeAspect));
9160 }
9161
parse_VkImagePlaneMemoryRequirementsInfo(const char * s,Json::Value & obj,VkImagePlaneMemoryRequirementsInfo & o)9162 static void parse_VkImagePlaneMemoryRequirementsInfo(const char *s, Json::Value &obj,
9163 VkImagePlaneMemoryRequirementsInfo &o)
9164 {
9165
9166 parse_VkStructureType("sType", obj["sType"], (o.sType));
9167
9168 o.pNext = (VkImagePlaneMemoryRequirementsInfo *)parsePNextChain(obj);
9169
9170 parse_VkImageAspectFlagBits("planeAspect", obj["planeAspect"], (o.planeAspect));
9171 }
9172
parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceSamplerYcbcrConversionFeatures & o)9173 static void parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const char *s, Json::Value &obj,
9174 VkPhysicalDeviceSamplerYcbcrConversionFeatures &o)
9175 {
9176
9177 parse_VkStructureType("sType", obj["sType"], (o.sType));
9178
9179 o.pNext = (VkPhysicalDeviceSamplerYcbcrConversionFeatures *)parsePNextChain(obj);
9180
9181 parse_VkBool32("samplerYcbcrConversion", obj["samplerYcbcrConversion"], (o.samplerYcbcrConversion));
9182 }
9183
parse_VkSamplerYcbcrConversionImageFormatProperties(const char * s,Json::Value & obj,VkSamplerYcbcrConversionImageFormatProperties & o)9184 static void parse_VkSamplerYcbcrConversionImageFormatProperties(const char *s, Json::Value &obj,
9185 VkSamplerYcbcrConversionImageFormatProperties &o)
9186 {
9187
9188 parse_VkStructureType("sType", obj["sType"], (o.sType));
9189
9190 o.pNext = (VkSamplerYcbcrConversionImageFormatProperties *)parsePNextChain(obj);
9191
9192 parse_uint32_t("combinedImageSamplerDescriptorCount", obj["combinedImageSamplerDescriptorCount"],
9193 (o.combinedImageSamplerDescriptorCount));
9194 }
9195
parse_VkExternalMemoryProperties(const char * s,Json::Value & obj,VkExternalMemoryProperties & o)9196 static void parse_VkExternalMemoryProperties(const char *s, Json::Value &obj, VkExternalMemoryProperties &o)
9197 {
9198
9199 parse_VkExternalMemoryFeatureFlags("externalMemoryFeatures", obj["externalMemoryFeatures"],
9200 (o.externalMemoryFeatures));
9201
9202 parse_VkExternalMemoryHandleTypeFlags("exportFromImportedHandleTypes", obj["exportFromImportedHandleTypes"],
9203 (o.exportFromImportedHandleTypes));
9204
9205 parse_VkExternalMemoryHandleTypeFlags("compatibleHandleTypes", obj["compatibleHandleTypes"],
9206 (o.compatibleHandleTypes));
9207 }
9208
parse_VkPhysicalDeviceExternalImageFormatInfo(const char * s,Json::Value & obj,VkPhysicalDeviceExternalImageFormatInfo & o)9209 static void parse_VkPhysicalDeviceExternalImageFormatInfo(const char *s, Json::Value &obj,
9210 VkPhysicalDeviceExternalImageFormatInfo &o)
9211 {
9212
9213 parse_VkStructureType("sType", obj["sType"], (o.sType));
9214
9215 o.pNext = (VkPhysicalDeviceExternalImageFormatInfo *)parsePNextChain(obj);
9216
9217 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
9218 }
9219
parse_VkExternalImageFormatProperties(const char * s,Json::Value & obj,VkExternalImageFormatProperties & o)9220 static void parse_VkExternalImageFormatProperties(const char *s, Json::Value &obj, VkExternalImageFormatProperties &o)
9221 {
9222
9223 parse_VkStructureType("sType", obj["sType"], (o.sType));
9224
9225 o.pNext = (VkExternalImageFormatProperties *)parsePNextChain(obj);
9226
9227 parse_VkExternalMemoryProperties("externalMemoryProperties", obj["externalMemoryProperties"],
9228 (o.externalMemoryProperties));
9229 }
9230
parse_VkPhysicalDeviceExternalBufferInfo(const char * s,Json::Value & obj,VkPhysicalDeviceExternalBufferInfo & o)9231 static void parse_VkPhysicalDeviceExternalBufferInfo(const char *s, Json::Value &obj,
9232 VkPhysicalDeviceExternalBufferInfo &o)
9233 {
9234
9235 parse_VkStructureType("sType", obj["sType"], (o.sType));
9236
9237 o.pNext = (VkPhysicalDeviceExternalBufferInfo *)parsePNextChain(obj);
9238
9239 parse_VkBufferCreateFlags("flags", obj["flags"], (o.flags));
9240
9241 parse_VkBufferUsageFlags("usage", obj["usage"], (o.usage));
9242
9243 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
9244 }
9245
parse_VkExternalBufferProperties(const char * s,Json::Value & obj,VkExternalBufferProperties & o)9246 static void parse_VkExternalBufferProperties(const char *s, Json::Value &obj, VkExternalBufferProperties &o)
9247 {
9248
9249 parse_VkStructureType("sType", obj["sType"], (o.sType));
9250
9251 o.pNext = (VkExternalBufferProperties *)parsePNextChain(obj);
9252
9253 parse_VkExternalMemoryProperties("externalMemoryProperties", obj["externalMemoryProperties"],
9254 (o.externalMemoryProperties));
9255 }
9256
parse_VkPhysicalDeviceIDProperties(const char * s,Json::Value & obj,VkPhysicalDeviceIDProperties & o)9257 static void parse_VkPhysicalDeviceIDProperties(const char *s, Json::Value &obj, VkPhysicalDeviceIDProperties &o)
9258 {
9259
9260 parse_VkStructureType("sType", obj["sType"], (o.sType));
9261
9262 o.pNext = (VkPhysicalDeviceIDProperties *)parsePNextChain(obj);
9263
9264 Json::Value &obj_deviceUUID_arr = obj["deviceUUID"];
9265 for (unsigned int i = 0; i < obj_deviceUUID_arr.size(); i++)
9266 {
9267 parse_uint8_t("deviceUUID", obj_deviceUUID_arr[i], const_cast<uint8_t &>((o.deviceUUID[i])));
9268 }
9269
9270 Json::Value &obj_driverUUID_arr = obj["driverUUID"];
9271 for (unsigned int i = 0; i < obj_driverUUID_arr.size(); i++)
9272 {
9273 parse_uint8_t("driverUUID", obj_driverUUID_arr[i], const_cast<uint8_t &>((o.driverUUID[i])));
9274 }
9275
9276 Json::Value &obj_deviceLUID_arr = obj["deviceLUID"];
9277 for (unsigned int i = 0; i < obj_deviceLUID_arr.size(); i++)
9278 {
9279 parse_uint8_t("deviceLUID", obj_deviceLUID_arr[i], const_cast<uint8_t &>((o.deviceLUID[i])));
9280 }
9281
9282 parse_uint32_t("deviceNodeMask", obj["deviceNodeMask"], (o.deviceNodeMask));
9283
9284 parse_VkBool32("deviceLUIDValid", obj["deviceLUIDValid"], (o.deviceLUIDValid));
9285 }
9286
parse_VkExternalMemoryImageCreateInfo(const char * s,Json::Value & obj,VkExternalMemoryImageCreateInfo & o)9287 static void parse_VkExternalMemoryImageCreateInfo(const char *s, Json::Value &obj, VkExternalMemoryImageCreateInfo &o)
9288 {
9289
9290 parse_VkStructureType("sType", obj["sType"], (o.sType));
9291
9292 o.pNext = (VkExternalMemoryImageCreateInfo *)parsePNextChain(obj);
9293
9294 parse_VkExternalMemoryHandleTypeFlags("handleTypes", obj["handleTypes"], (o.handleTypes));
9295 }
9296
parse_VkExternalMemoryBufferCreateInfo(const char * s,Json::Value & obj,VkExternalMemoryBufferCreateInfo & o)9297 static void parse_VkExternalMemoryBufferCreateInfo(const char *s, Json::Value &obj, VkExternalMemoryBufferCreateInfo &o)
9298 {
9299
9300 parse_VkStructureType("sType", obj["sType"], (o.sType));
9301
9302 o.pNext = (VkExternalMemoryBufferCreateInfo *)parsePNextChain(obj);
9303
9304 parse_VkExternalMemoryHandleTypeFlags("handleTypes", obj["handleTypes"], (o.handleTypes));
9305 }
9306
parse_VkExportMemoryAllocateInfo(const char * s,Json::Value & obj,VkExportMemoryAllocateInfo & o)9307 static void parse_VkExportMemoryAllocateInfo(const char *s, Json::Value &obj, VkExportMemoryAllocateInfo &o)
9308 {
9309
9310 parse_VkStructureType("sType", obj["sType"], (o.sType));
9311
9312 o.pNext = (VkExportMemoryAllocateInfo *)parsePNextChain(obj);
9313
9314 parse_VkExternalMemoryHandleTypeFlags("handleTypes", obj["handleTypes"], (o.handleTypes));
9315 }
9316
parse_VkPhysicalDeviceExternalFenceInfo(const char * s,Json::Value & obj,VkPhysicalDeviceExternalFenceInfo & o)9317 static void parse_VkPhysicalDeviceExternalFenceInfo(const char *s, Json::Value &obj,
9318 VkPhysicalDeviceExternalFenceInfo &o)
9319 {
9320
9321 parse_VkStructureType("sType", obj["sType"], (o.sType));
9322
9323 o.pNext = (VkPhysicalDeviceExternalFenceInfo *)parsePNextChain(obj);
9324
9325 parse_VkExternalFenceHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
9326 }
9327
parse_VkExternalFenceProperties(const char * s,Json::Value & obj,VkExternalFenceProperties & o)9328 static void parse_VkExternalFenceProperties(const char *s, Json::Value &obj, VkExternalFenceProperties &o)
9329 {
9330
9331 parse_VkStructureType("sType", obj["sType"], (o.sType));
9332
9333 o.pNext = (VkExternalFenceProperties *)parsePNextChain(obj);
9334
9335 parse_VkExternalFenceHandleTypeFlags("exportFromImportedHandleTypes", obj["exportFromImportedHandleTypes"],
9336 (o.exportFromImportedHandleTypes));
9337
9338 parse_VkExternalFenceHandleTypeFlags("compatibleHandleTypes", obj["compatibleHandleTypes"],
9339 (o.compatibleHandleTypes));
9340
9341 parse_VkExternalFenceFeatureFlags("externalFenceFeatures", obj["externalFenceFeatures"], (o.externalFenceFeatures));
9342 }
9343
parse_VkExportFenceCreateInfo(const char * s,Json::Value & obj,VkExportFenceCreateInfo & o)9344 static void parse_VkExportFenceCreateInfo(const char *s, Json::Value &obj, VkExportFenceCreateInfo &o)
9345 {
9346
9347 parse_VkStructureType("sType", obj["sType"], (o.sType));
9348
9349 o.pNext = (VkExportFenceCreateInfo *)parsePNextChain(obj);
9350
9351 parse_VkExternalFenceHandleTypeFlags("handleTypes", obj["handleTypes"], (o.handleTypes));
9352 }
9353
parse_VkExportSemaphoreCreateInfo(const char * s,Json::Value & obj,VkExportSemaphoreCreateInfo & o)9354 static void parse_VkExportSemaphoreCreateInfo(const char *s, Json::Value &obj, VkExportSemaphoreCreateInfo &o)
9355 {
9356
9357 parse_VkStructureType("sType", obj["sType"], (o.sType));
9358
9359 o.pNext = (VkExportSemaphoreCreateInfo *)parsePNextChain(obj);
9360
9361 parse_VkExternalSemaphoreHandleTypeFlags("handleTypes", obj["handleTypes"], (o.handleTypes));
9362 }
9363
parse_VkPhysicalDeviceExternalSemaphoreInfo(const char * s,Json::Value & obj,VkPhysicalDeviceExternalSemaphoreInfo & o)9364 static void parse_VkPhysicalDeviceExternalSemaphoreInfo(const char *s, Json::Value &obj,
9365 VkPhysicalDeviceExternalSemaphoreInfo &o)
9366 {
9367
9368 parse_VkStructureType("sType", obj["sType"], (o.sType));
9369
9370 o.pNext = (VkPhysicalDeviceExternalSemaphoreInfo *)parsePNextChain(obj);
9371
9372 parse_VkExternalSemaphoreHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
9373 }
9374
parse_VkExternalSemaphoreProperties(const char * s,Json::Value & obj,VkExternalSemaphoreProperties & o)9375 static void parse_VkExternalSemaphoreProperties(const char *s, Json::Value &obj, VkExternalSemaphoreProperties &o)
9376 {
9377
9378 parse_VkStructureType("sType", obj["sType"], (o.sType));
9379
9380 o.pNext = (VkExternalSemaphoreProperties *)parsePNextChain(obj);
9381
9382 parse_VkExternalSemaphoreHandleTypeFlags("exportFromImportedHandleTypes", obj["exportFromImportedHandleTypes"],
9383 (o.exportFromImportedHandleTypes));
9384
9385 parse_VkExternalSemaphoreHandleTypeFlags("compatibleHandleTypes", obj["compatibleHandleTypes"],
9386 (o.compatibleHandleTypes));
9387
9388 parse_VkExternalSemaphoreFeatureFlags("externalSemaphoreFeatures", obj["externalSemaphoreFeatures"],
9389 (o.externalSemaphoreFeatures));
9390 }
9391
parse_VkPhysicalDeviceMaintenance3Properties(const char * s,Json::Value & obj,VkPhysicalDeviceMaintenance3Properties & o)9392 static void parse_VkPhysicalDeviceMaintenance3Properties(const char *s, Json::Value &obj,
9393 VkPhysicalDeviceMaintenance3Properties &o)
9394 {
9395
9396 parse_VkStructureType("sType", obj["sType"], (o.sType));
9397
9398 o.pNext = (VkPhysicalDeviceMaintenance3Properties *)parsePNextChain(obj);
9399
9400 parse_uint32_t("maxPerSetDescriptors", obj["maxPerSetDescriptors"], (o.maxPerSetDescriptors));
9401
9402 parse_VkDeviceSize("maxMemoryAllocationSize", obj["maxMemoryAllocationSize"], (o.maxMemoryAllocationSize));
9403 }
9404
parse_VkDescriptorSetLayoutSupport(const char * s,Json::Value & obj,VkDescriptorSetLayoutSupport & o)9405 static void parse_VkDescriptorSetLayoutSupport(const char *s, Json::Value &obj, VkDescriptorSetLayoutSupport &o)
9406 {
9407
9408 parse_VkStructureType("sType", obj["sType"], (o.sType));
9409
9410 o.pNext = (VkDescriptorSetLayoutSupport *)parsePNextChain(obj);
9411
9412 parse_VkBool32("supported", obj["supported"], (o.supported));
9413 }
9414
parse_VkPhysicalDeviceShaderDrawParametersFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceShaderDrawParametersFeatures & o)9415 static void parse_VkPhysicalDeviceShaderDrawParametersFeatures(const char *s, Json::Value &obj,
9416 VkPhysicalDeviceShaderDrawParametersFeatures &o)
9417 {
9418
9419 parse_VkStructureType("sType", obj["sType"], (o.sType));
9420
9421 o.pNext = (VkPhysicalDeviceShaderDrawParametersFeatures *)parsePNextChain(obj);
9422
9423 parse_VkBool32("shaderDrawParameters", obj["shaderDrawParameters"], (o.shaderDrawParameters));
9424 }
9425
9426 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
9427
9428 static std::map<std::string, int> VkDriverId_map = {
9429 std::make_pair("VK_DRIVER_ID_AMD_PROPRIETARY", 1),
9430 std::make_pair("VK_DRIVER_ID_AMD_OPEN_SOURCE", 2),
9431 std::make_pair("VK_DRIVER_ID_MESA_RADV", 3),
9432 std::make_pair("VK_DRIVER_ID_NVIDIA_PROPRIETARY", 4),
9433 std::make_pair("VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS", 5),
9434 std::make_pair("VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA", 6),
9435 std::make_pair("VK_DRIVER_ID_IMAGINATION_PROPRIETARY", 7),
9436 std::make_pair("VK_DRIVER_ID_QUALCOMM_PROPRIETARY", 8),
9437 std::make_pair("VK_DRIVER_ID_ARM_PROPRIETARY", 9),
9438 std::make_pair("VK_DRIVER_ID_GOOGLE_SWIFTSHADER", 10),
9439 std::make_pair("VK_DRIVER_ID_GGP_PROPRIETARY", 11),
9440 std::make_pair("VK_DRIVER_ID_BROADCOM_PROPRIETARY", 12),
9441 std::make_pair("VK_DRIVER_ID_MESA_LLVMPIPE", 13),
9442 std::make_pair("VK_DRIVER_ID_MOLTENVK", 14),
9443 std::make_pair("VK_DRIVER_ID_COREAVI_PROPRIETARY", 15),
9444 std::make_pair("VK_DRIVER_ID_JUICE_PROPRIETARY", 16),
9445 std::make_pair("VK_DRIVER_ID_VERISILICON_PROPRIETARY", 17),
9446 std::make_pair("VK_DRIVER_ID_MESA_TURNIP", 18),
9447 std::make_pair("VK_DRIVER_ID_MESA_V3DV", 19),
9448 std::make_pair("VK_DRIVER_ID_MESA_PANVK", 20),
9449 std::make_pair("VK_DRIVER_ID_SAMSUNG_PROPRIETARY", 21),
9450 };
parse_VkDriverId(const char * s,Json::Value & obj,VkDriverId & o)9451 static void parse_VkDriverId(const char *s, Json::Value &obj, VkDriverId &o)
9452 {
9453 std::string _res = obj.asString();
9454 o = (VkDriverId)VkDriverId_map[std::string(_res)];
9455 }
9456
9457 static std::map<std::string, int> VkShaderFloatControlsIndependence_map = {
9458 std::make_pair("VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY", 0),
9459 std::make_pair("VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL", 1),
9460 std::make_pair("VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE", 2),
9461 };
parse_VkShaderFloatControlsIndependence(const char * s,Json::Value & obj,VkShaderFloatControlsIndependence & o)9462 static void parse_VkShaderFloatControlsIndependence(const char *s, Json::Value &obj,
9463 VkShaderFloatControlsIndependence &o)
9464 {
9465 std::string _res = obj.asString();
9466 o = (VkShaderFloatControlsIndependence)VkShaderFloatControlsIndependence_map[std::string(_res)];
9467 }
9468
9469 static std::map<std::string, int> VkResolveModeFlagBits_map = {
9470 std::make_pair("VK_RESOLVE_MODE_NONE", 0),
9471 std::make_pair("VK_RESOLVE_MODE_SAMPLE_ZERO_BIT", 1UL << 0),
9472 std::make_pair("VK_RESOLVE_MODE_AVERAGE_BIT", 1UL << 1),
9473 std::make_pair("VK_RESOLVE_MODE_MIN_BIT", 1UL << 2),
9474 std::make_pair("VK_RESOLVE_MODE_MAX_BIT", 1UL << 3),
9475 };
parse_VkResolveModeFlagBits(const char * s,Json::Value & obj,VkResolveModeFlagBits & o)9476 static void parse_VkResolveModeFlagBits(const char *s, Json::Value &obj, VkResolveModeFlagBits &o)
9477 {
9478 std::string _res = obj.asString();
9479 o = (VkResolveModeFlagBits)VkResolveModeFlagBits_map[std::string(_res)];
9480 }
9481
9482 static std::map<std::string, int> VkDescriptorBindingFlagBits_map = {
9483 std::make_pair("VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", 1UL << 0),
9484 std::make_pair("VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT", 1UL << 1),
9485 std::make_pair("VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT", 1UL << 2),
9486 std::make_pair("VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT", 1UL << 3),
9487 std::make_pair("VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM", 1UL << 4),
9488 };
parse_VkDescriptorBindingFlagBits(const char * s,Json::Value & obj,VkDescriptorBindingFlagBits & o)9489 static void parse_VkDescriptorBindingFlagBits(const char *s, Json::Value &obj, VkDescriptorBindingFlagBits &o)
9490 {
9491 std::string _res = obj.asString();
9492 o = (VkDescriptorBindingFlagBits)VkDescriptorBindingFlagBits_map[std::string(_res)];
9493 }
9494
9495 static std::map<std::string, int> VkSamplerReductionMode_map = {
9496 std::make_pair("VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE", 0),
9497 std::make_pair("VK_SAMPLER_REDUCTION_MODE_MIN", 1),
9498 std::make_pair("VK_SAMPLER_REDUCTION_MODE_MAX", 2),
9499 };
parse_VkSamplerReductionMode(const char * s,Json::Value & obj,VkSamplerReductionMode & o)9500 static void parse_VkSamplerReductionMode(const char *s, Json::Value &obj, VkSamplerReductionMode &o)
9501 {
9502 std::string _res = obj.asString();
9503 o = (VkSamplerReductionMode)VkSamplerReductionMode_map[std::string(_res)];
9504 }
9505
9506 static std::map<std::string, int> VkSemaphoreType_map = {
9507 std::make_pair("VK_SEMAPHORE_TYPE_BINARY", 0),
9508 std::make_pair("VK_SEMAPHORE_TYPE_TIMELINE", 1),
9509 };
parse_VkSemaphoreType(const char * s,Json::Value & obj,VkSemaphoreType & o)9510 static void parse_VkSemaphoreType(const char *s, Json::Value &obj, VkSemaphoreType &o)
9511 {
9512 std::string _res = obj.asString();
9513 o = (VkSemaphoreType)VkSemaphoreType_map[std::string(_res)];
9514 }
9515
9516 static std::map<std::string, int> VkSemaphoreWaitFlagBits_map = {
9517 std::make_pair("VK_SEMAPHORE_WAIT_ANY_BIT", 1UL << 0),
9518 };
parse_VkSemaphoreWaitFlagBits(const char * s,Json::Value & obj,VkSemaphoreWaitFlagBits & o)9519 static void parse_VkSemaphoreWaitFlagBits(const char *s, Json::Value &obj, VkSemaphoreWaitFlagBits &o)
9520 {
9521 std::string _res = obj.asString();
9522 o = (VkSemaphoreWaitFlagBits)VkSemaphoreWaitFlagBits_map[std::string(_res)];
9523 }
9524
parse_VkResolveModeFlags(const char * s,Json::Value & obj,VkResolveModeFlags & o)9525 static void parse_VkResolveModeFlags(const char *s, Json::Value &obj, VkResolveModeFlags &o)
9526 {
9527 o = (VkResolveModeFlags)0;
9528 std::string _res = obj.asString();
9529 std::vector<std::string> bitmasks;
9530 std::istringstream inputStream(_res);
9531 std::string tempStr;
9532 while (getline(inputStream, tempStr, '|'))
9533 {
9534 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
9535 bitmasks.push_back(tempStr);
9536 }
9537 for (auto &it : bitmasks)
9538 {
9539 o |= (VkResolveModeFlagBits)VkResolveModeFlagBits_map[it];
9540 }
9541 }
9542
parse_VkDescriptorBindingFlags(const char * s,Json::Value & obj,VkDescriptorBindingFlags & o)9543 static void parse_VkDescriptorBindingFlags(const char *s, Json::Value &obj, VkDescriptorBindingFlags &o)
9544 {
9545 o = (VkDescriptorBindingFlags)0;
9546 std::string _res = obj.asString();
9547 std::vector<std::string> bitmasks;
9548 std::istringstream inputStream(_res);
9549 std::string tempStr;
9550 while (getline(inputStream, tempStr, '|'))
9551 {
9552 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
9553 bitmasks.push_back(tempStr);
9554 }
9555 for (auto &it : bitmasks)
9556 {
9557 o |= (VkDescriptorBindingFlagBits)VkDescriptorBindingFlagBits_map[it];
9558 }
9559 }
9560
parse_VkSemaphoreWaitFlags(const char * s,Json::Value & obj,VkSemaphoreWaitFlags & o)9561 static void parse_VkSemaphoreWaitFlags(const char *s, Json::Value &obj, VkSemaphoreWaitFlags &o)
9562 {
9563 o = (VkSemaphoreWaitFlags)0;
9564 std::string _res = obj.asString();
9565 std::vector<std::string> bitmasks;
9566 std::istringstream inputStream(_res);
9567 std::string tempStr;
9568 while (getline(inputStream, tempStr, '|'))
9569 {
9570 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
9571 bitmasks.push_back(tempStr);
9572 }
9573 for (auto &it : bitmasks)
9574 {
9575 o |= (VkSemaphoreWaitFlagBits)VkSemaphoreWaitFlagBits_map[it];
9576 }
9577 }
9578
parse_VkPhysicalDeviceVulkan11Features(const char * s,Json::Value & obj,VkPhysicalDeviceVulkan11Features & o)9579 static void parse_VkPhysicalDeviceVulkan11Features(const char *s, Json::Value &obj, VkPhysicalDeviceVulkan11Features &o)
9580 {
9581
9582 parse_VkStructureType("sType", obj["sType"], (o.sType));
9583
9584 o.pNext = (VkPhysicalDeviceVulkan11Features *)parsePNextChain(obj);
9585
9586 parse_VkBool32("storageBuffer16BitAccess", obj["storageBuffer16BitAccess"], (o.storageBuffer16BitAccess));
9587
9588 parse_VkBool32("uniformAndStorageBuffer16BitAccess", obj["uniformAndStorageBuffer16BitAccess"],
9589 (o.uniformAndStorageBuffer16BitAccess));
9590
9591 parse_VkBool32("storagePushConstant16", obj["storagePushConstant16"], (o.storagePushConstant16));
9592
9593 parse_VkBool32("storageInputOutput16", obj["storageInputOutput16"], (o.storageInputOutput16));
9594
9595 parse_VkBool32("multiview", obj["multiview"], (o.multiview));
9596
9597 parse_VkBool32("multiviewGeometryShader", obj["multiviewGeometryShader"], (o.multiviewGeometryShader));
9598
9599 parse_VkBool32("multiviewTessellationShader", obj["multiviewTessellationShader"], (o.multiviewTessellationShader));
9600
9601 parse_VkBool32("variablePointersStorageBuffer", obj["variablePointersStorageBuffer"],
9602 (o.variablePointersStorageBuffer));
9603
9604 parse_VkBool32("variablePointers", obj["variablePointers"], (o.variablePointers));
9605
9606 parse_VkBool32("protectedMemory", obj["protectedMemory"], (o.protectedMemory));
9607
9608 parse_VkBool32("samplerYcbcrConversion", obj["samplerYcbcrConversion"], (o.samplerYcbcrConversion));
9609
9610 parse_VkBool32("shaderDrawParameters", obj["shaderDrawParameters"], (o.shaderDrawParameters));
9611 }
9612
parse_VkPhysicalDeviceVulkan11Properties(const char * s,Json::Value & obj,VkPhysicalDeviceVulkan11Properties & o)9613 static void parse_VkPhysicalDeviceVulkan11Properties(const char *s, Json::Value &obj,
9614 VkPhysicalDeviceVulkan11Properties &o)
9615 {
9616
9617 parse_VkStructureType("sType", obj["sType"], (o.sType));
9618
9619 o.pNext = (VkPhysicalDeviceVulkan11Properties *)parsePNextChain(obj);
9620
9621 Json::Value &obj_deviceUUID_arr = obj["deviceUUID"];
9622 for (unsigned int i = 0; i < obj_deviceUUID_arr.size(); i++)
9623 {
9624 parse_uint8_t("deviceUUID", obj_deviceUUID_arr[i], const_cast<uint8_t &>((o.deviceUUID[i])));
9625 }
9626
9627 Json::Value &obj_driverUUID_arr = obj["driverUUID"];
9628 for (unsigned int i = 0; i < obj_driverUUID_arr.size(); i++)
9629 {
9630 parse_uint8_t("driverUUID", obj_driverUUID_arr[i], const_cast<uint8_t &>((o.driverUUID[i])));
9631 }
9632
9633 Json::Value &obj_deviceLUID_arr = obj["deviceLUID"];
9634 for (unsigned int i = 0; i < obj_deviceLUID_arr.size(); i++)
9635 {
9636 parse_uint8_t("deviceLUID", obj_deviceLUID_arr[i], const_cast<uint8_t &>((o.deviceLUID[i])));
9637 }
9638
9639 parse_uint32_t("deviceNodeMask", obj["deviceNodeMask"], (o.deviceNodeMask));
9640
9641 parse_VkBool32("deviceLUIDValid", obj["deviceLUIDValid"], (o.deviceLUIDValid));
9642
9643 parse_uint32_t("subgroupSize", obj["subgroupSize"], (o.subgroupSize));
9644
9645 parse_VkShaderStageFlags("subgroupSupportedStages", obj["subgroupSupportedStages"], (o.subgroupSupportedStages));
9646
9647 parse_VkSubgroupFeatureFlags("subgroupSupportedOperations", obj["subgroupSupportedOperations"],
9648 (o.subgroupSupportedOperations));
9649
9650 parse_VkBool32("subgroupQuadOperationsInAllStages", obj["subgroupQuadOperationsInAllStages"],
9651 (o.subgroupQuadOperationsInAllStages));
9652
9653 parse_VkPointClippingBehavior("pointClippingBehavior", obj["pointClippingBehavior"], (o.pointClippingBehavior));
9654
9655 parse_uint32_t("maxMultiviewViewCount", obj["maxMultiviewViewCount"], (o.maxMultiviewViewCount));
9656
9657 parse_uint32_t("maxMultiviewInstanceIndex", obj["maxMultiviewInstanceIndex"], (o.maxMultiviewInstanceIndex));
9658
9659 parse_VkBool32("protectedNoFault", obj["protectedNoFault"], (o.protectedNoFault));
9660
9661 parse_uint32_t("maxPerSetDescriptors", obj["maxPerSetDescriptors"], (o.maxPerSetDescriptors));
9662
9663 parse_VkDeviceSize("maxMemoryAllocationSize", obj["maxMemoryAllocationSize"], (o.maxMemoryAllocationSize));
9664 }
9665
parse_VkPhysicalDeviceVulkan12Features(const char * s,Json::Value & obj,VkPhysicalDeviceVulkan12Features & o)9666 static void parse_VkPhysicalDeviceVulkan12Features(const char *s, Json::Value &obj, VkPhysicalDeviceVulkan12Features &o)
9667 {
9668
9669 parse_VkStructureType("sType", obj["sType"], (o.sType));
9670
9671 o.pNext = (VkPhysicalDeviceVulkan12Features *)parsePNextChain(obj);
9672
9673 parse_VkBool32("samplerMirrorClampToEdge", obj["samplerMirrorClampToEdge"], (o.samplerMirrorClampToEdge));
9674
9675 parse_VkBool32("drawIndirectCount", obj["drawIndirectCount"], (o.drawIndirectCount));
9676
9677 parse_VkBool32("storageBuffer8BitAccess", obj["storageBuffer8BitAccess"], (o.storageBuffer8BitAccess));
9678
9679 parse_VkBool32("uniformAndStorageBuffer8BitAccess", obj["uniformAndStorageBuffer8BitAccess"],
9680 (o.uniformAndStorageBuffer8BitAccess));
9681
9682 parse_VkBool32("storagePushConstant8", obj["storagePushConstant8"], (o.storagePushConstant8));
9683
9684 parse_VkBool32("shaderBufferInt64Atomics", obj["shaderBufferInt64Atomics"], (o.shaderBufferInt64Atomics));
9685
9686 parse_VkBool32("shaderSharedInt64Atomics", obj["shaderSharedInt64Atomics"], (o.shaderSharedInt64Atomics));
9687
9688 parse_VkBool32("shaderFloat16", obj["shaderFloat16"], (o.shaderFloat16));
9689
9690 parse_VkBool32("shaderInt8", obj["shaderInt8"], (o.shaderInt8));
9691
9692 parse_VkBool32("descriptorIndexing", obj["descriptorIndexing"], (o.descriptorIndexing));
9693
9694 parse_VkBool32("shaderInputAttachmentArrayDynamicIndexing", obj["shaderInputAttachmentArrayDynamicIndexing"],
9695 (o.shaderInputAttachmentArrayDynamicIndexing));
9696
9697 parse_VkBool32("shaderUniformTexelBufferArrayDynamicIndexing", obj["shaderUniformTexelBufferArrayDynamicIndexing"],
9698 (o.shaderUniformTexelBufferArrayDynamicIndexing));
9699
9700 parse_VkBool32("shaderStorageTexelBufferArrayDynamicIndexing", obj["shaderStorageTexelBufferArrayDynamicIndexing"],
9701 (o.shaderStorageTexelBufferArrayDynamicIndexing));
9702
9703 parse_VkBool32("shaderUniformBufferArrayNonUniformIndexing", obj["shaderUniformBufferArrayNonUniformIndexing"],
9704 (o.shaderUniformBufferArrayNonUniformIndexing));
9705
9706 parse_VkBool32("shaderSampledImageArrayNonUniformIndexing", obj["shaderSampledImageArrayNonUniformIndexing"],
9707 (o.shaderSampledImageArrayNonUniformIndexing));
9708
9709 parse_VkBool32("shaderStorageBufferArrayNonUniformIndexing", obj["shaderStorageBufferArrayNonUniformIndexing"],
9710 (o.shaderStorageBufferArrayNonUniformIndexing));
9711
9712 parse_VkBool32("shaderStorageImageArrayNonUniformIndexing", obj["shaderStorageImageArrayNonUniformIndexing"],
9713 (o.shaderStorageImageArrayNonUniformIndexing));
9714
9715 parse_VkBool32("shaderInputAttachmentArrayNonUniformIndexing", obj["shaderInputAttachmentArrayNonUniformIndexing"],
9716 (o.shaderInputAttachmentArrayNonUniformIndexing));
9717
9718 parse_VkBool32("shaderUniformTexelBufferArrayNonUniformIndexing",
9719 obj["shaderUniformTexelBufferArrayNonUniformIndexing"],
9720 (o.shaderUniformTexelBufferArrayNonUniformIndexing));
9721
9722 parse_VkBool32("shaderStorageTexelBufferArrayNonUniformIndexing",
9723 obj["shaderStorageTexelBufferArrayNonUniformIndexing"],
9724 (o.shaderStorageTexelBufferArrayNonUniformIndexing));
9725
9726 parse_VkBool32("descriptorBindingUniformBufferUpdateAfterBind",
9727 obj["descriptorBindingUniformBufferUpdateAfterBind"],
9728 (o.descriptorBindingUniformBufferUpdateAfterBind));
9729
9730 parse_VkBool32("descriptorBindingSampledImageUpdateAfterBind", obj["descriptorBindingSampledImageUpdateAfterBind"],
9731 (o.descriptorBindingSampledImageUpdateAfterBind));
9732
9733 parse_VkBool32("descriptorBindingStorageImageUpdateAfterBind", obj["descriptorBindingStorageImageUpdateAfterBind"],
9734 (o.descriptorBindingStorageImageUpdateAfterBind));
9735
9736 parse_VkBool32("descriptorBindingStorageBufferUpdateAfterBind",
9737 obj["descriptorBindingStorageBufferUpdateAfterBind"],
9738 (o.descriptorBindingStorageBufferUpdateAfterBind));
9739
9740 parse_VkBool32("descriptorBindingUniformTexelBufferUpdateAfterBind",
9741 obj["descriptorBindingUniformTexelBufferUpdateAfterBind"],
9742 (o.descriptorBindingUniformTexelBufferUpdateAfterBind));
9743
9744 parse_VkBool32("descriptorBindingStorageTexelBufferUpdateAfterBind",
9745 obj["descriptorBindingStorageTexelBufferUpdateAfterBind"],
9746 (o.descriptorBindingStorageTexelBufferUpdateAfterBind));
9747
9748 parse_VkBool32("descriptorBindingUpdateUnusedWhilePending", obj["descriptorBindingUpdateUnusedWhilePending"],
9749 (o.descriptorBindingUpdateUnusedWhilePending));
9750
9751 parse_VkBool32("descriptorBindingPartiallyBound", obj["descriptorBindingPartiallyBound"],
9752 (o.descriptorBindingPartiallyBound));
9753
9754 parse_VkBool32("descriptorBindingVariableDescriptorCount", obj["descriptorBindingVariableDescriptorCount"],
9755 (o.descriptorBindingVariableDescriptorCount));
9756
9757 parse_VkBool32("runtimeDescriptorArray", obj["runtimeDescriptorArray"], (o.runtimeDescriptorArray));
9758
9759 parse_VkBool32("samplerFilterMinmax", obj["samplerFilterMinmax"], (o.samplerFilterMinmax));
9760
9761 parse_VkBool32("scalarBlockLayout", obj["scalarBlockLayout"], (o.scalarBlockLayout));
9762
9763 parse_VkBool32("imagelessFramebuffer", obj["imagelessFramebuffer"], (o.imagelessFramebuffer));
9764
9765 parse_VkBool32("uniformBufferStandardLayout", obj["uniformBufferStandardLayout"], (o.uniformBufferStandardLayout));
9766
9767 parse_VkBool32("shaderSubgroupExtendedTypes", obj["shaderSubgroupExtendedTypes"], (o.shaderSubgroupExtendedTypes));
9768
9769 parse_VkBool32("separateDepthStencilLayouts", obj["separateDepthStencilLayouts"], (o.separateDepthStencilLayouts));
9770
9771 parse_VkBool32("hostQueryReset", obj["hostQueryReset"], (o.hostQueryReset));
9772
9773 parse_VkBool32("timelineSemaphore", obj["timelineSemaphore"], (o.timelineSemaphore));
9774
9775 parse_VkBool32("bufferDeviceAddress", obj["bufferDeviceAddress"], (o.bufferDeviceAddress));
9776
9777 parse_VkBool32("bufferDeviceAddressCaptureReplay", obj["bufferDeviceAddressCaptureReplay"],
9778 (o.bufferDeviceAddressCaptureReplay));
9779
9780 parse_VkBool32("bufferDeviceAddressMultiDevice", obj["bufferDeviceAddressMultiDevice"],
9781 (o.bufferDeviceAddressMultiDevice));
9782
9783 parse_VkBool32("vulkanMemoryModel", obj["vulkanMemoryModel"], (o.vulkanMemoryModel));
9784
9785 parse_VkBool32("vulkanMemoryModelDeviceScope", obj["vulkanMemoryModelDeviceScope"],
9786 (o.vulkanMemoryModelDeviceScope));
9787
9788 parse_VkBool32("vulkanMemoryModelAvailabilityVisibilityChains",
9789 obj["vulkanMemoryModelAvailabilityVisibilityChains"],
9790 (o.vulkanMemoryModelAvailabilityVisibilityChains));
9791
9792 parse_VkBool32("shaderOutputViewportIndex", obj["shaderOutputViewportIndex"], (o.shaderOutputViewportIndex));
9793
9794 parse_VkBool32("shaderOutputLayer", obj["shaderOutputLayer"], (o.shaderOutputLayer));
9795
9796 parse_VkBool32("subgroupBroadcastDynamicId", obj["subgroupBroadcastDynamicId"], (o.subgroupBroadcastDynamicId));
9797 }
9798
parse_VkConformanceVersion(const char * s,Json::Value & obj,VkConformanceVersion & o)9799 static void parse_VkConformanceVersion(const char *s, Json::Value &obj, VkConformanceVersion &o)
9800 {
9801
9802 parse_uint8_t("major", obj["major"], (o.major));
9803
9804 parse_uint8_t("minor", obj["minor"], (o.minor));
9805
9806 parse_uint8_t("subminor", obj["subminor"], (o.subminor));
9807
9808 parse_uint8_t("patch", obj["patch"], (o.patch));
9809 }
9810
parse_VkPhysicalDeviceVulkan12Properties(const char * s,Json::Value & obj,VkPhysicalDeviceVulkan12Properties & o)9811 static void parse_VkPhysicalDeviceVulkan12Properties(const char *s, Json::Value &obj,
9812 VkPhysicalDeviceVulkan12Properties &o)
9813 {
9814
9815 parse_VkStructureType("sType", obj["sType"], (o.sType));
9816
9817 o.pNext = (VkPhysicalDeviceVulkan12Properties *)parsePNextChain(obj);
9818
9819 parse_VkDriverId("driverID", obj["driverID"], (o.driverID));
9820
9821 /** TODO: Handle this - driverName **/
9822
9823 /** TODO: Handle this - driverInfo **/
9824
9825 parse_VkConformanceVersion("conformanceVersion", obj["conformanceVersion"], (o.conformanceVersion));
9826
9827 parse_VkShaderFloatControlsIndependence("denormBehaviorIndependence", obj["denormBehaviorIndependence"],
9828 (o.denormBehaviorIndependence));
9829
9830 parse_VkShaderFloatControlsIndependence("roundingModeIndependence", obj["roundingModeIndependence"],
9831 (o.roundingModeIndependence));
9832
9833 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat16", obj["shaderSignedZeroInfNanPreserveFloat16"],
9834 (o.shaderSignedZeroInfNanPreserveFloat16));
9835
9836 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat32", obj["shaderSignedZeroInfNanPreserveFloat32"],
9837 (o.shaderSignedZeroInfNanPreserveFloat32));
9838
9839 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat64", obj["shaderSignedZeroInfNanPreserveFloat64"],
9840 (o.shaderSignedZeroInfNanPreserveFloat64));
9841
9842 parse_VkBool32("shaderDenormPreserveFloat16", obj["shaderDenormPreserveFloat16"], (o.shaderDenormPreserveFloat16));
9843
9844 parse_VkBool32("shaderDenormPreserveFloat32", obj["shaderDenormPreserveFloat32"], (o.shaderDenormPreserveFloat32));
9845
9846 parse_VkBool32("shaderDenormPreserveFloat64", obj["shaderDenormPreserveFloat64"], (o.shaderDenormPreserveFloat64));
9847
9848 parse_VkBool32("shaderDenormFlushToZeroFloat16", obj["shaderDenormFlushToZeroFloat16"],
9849 (o.shaderDenormFlushToZeroFloat16));
9850
9851 parse_VkBool32("shaderDenormFlushToZeroFloat32", obj["shaderDenormFlushToZeroFloat32"],
9852 (o.shaderDenormFlushToZeroFloat32));
9853
9854 parse_VkBool32("shaderDenormFlushToZeroFloat64", obj["shaderDenormFlushToZeroFloat64"],
9855 (o.shaderDenormFlushToZeroFloat64));
9856
9857 parse_VkBool32("shaderRoundingModeRTEFloat16", obj["shaderRoundingModeRTEFloat16"],
9858 (o.shaderRoundingModeRTEFloat16));
9859
9860 parse_VkBool32("shaderRoundingModeRTEFloat32", obj["shaderRoundingModeRTEFloat32"],
9861 (o.shaderRoundingModeRTEFloat32));
9862
9863 parse_VkBool32("shaderRoundingModeRTEFloat64", obj["shaderRoundingModeRTEFloat64"],
9864 (o.shaderRoundingModeRTEFloat64));
9865
9866 parse_VkBool32("shaderRoundingModeRTZFloat16", obj["shaderRoundingModeRTZFloat16"],
9867 (o.shaderRoundingModeRTZFloat16));
9868
9869 parse_VkBool32("shaderRoundingModeRTZFloat32", obj["shaderRoundingModeRTZFloat32"],
9870 (o.shaderRoundingModeRTZFloat32));
9871
9872 parse_VkBool32("shaderRoundingModeRTZFloat64", obj["shaderRoundingModeRTZFloat64"],
9873 (o.shaderRoundingModeRTZFloat64));
9874
9875 parse_uint32_t("maxUpdateAfterBindDescriptorsInAllPools", obj["maxUpdateAfterBindDescriptorsInAllPools"],
9876 (o.maxUpdateAfterBindDescriptorsInAllPools));
9877
9878 parse_VkBool32("shaderUniformBufferArrayNonUniformIndexingNative",
9879 obj["shaderUniformBufferArrayNonUniformIndexingNative"],
9880 (o.shaderUniformBufferArrayNonUniformIndexingNative));
9881
9882 parse_VkBool32("shaderSampledImageArrayNonUniformIndexingNative",
9883 obj["shaderSampledImageArrayNonUniformIndexingNative"],
9884 (o.shaderSampledImageArrayNonUniformIndexingNative));
9885
9886 parse_VkBool32("shaderStorageBufferArrayNonUniformIndexingNative",
9887 obj["shaderStorageBufferArrayNonUniformIndexingNative"],
9888 (o.shaderStorageBufferArrayNonUniformIndexingNative));
9889
9890 parse_VkBool32("shaderStorageImageArrayNonUniformIndexingNative",
9891 obj["shaderStorageImageArrayNonUniformIndexingNative"],
9892 (o.shaderStorageImageArrayNonUniformIndexingNative));
9893
9894 parse_VkBool32("shaderInputAttachmentArrayNonUniformIndexingNative",
9895 obj["shaderInputAttachmentArrayNonUniformIndexingNative"],
9896 (o.shaderInputAttachmentArrayNonUniformIndexingNative));
9897
9898 parse_VkBool32("robustBufferAccessUpdateAfterBind", obj["robustBufferAccessUpdateAfterBind"],
9899 (o.robustBufferAccessUpdateAfterBind));
9900
9901 parse_VkBool32("quadDivergentImplicitLod", obj["quadDivergentImplicitLod"], (o.quadDivergentImplicitLod));
9902
9903 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindSamplers", obj["maxPerStageDescriptorUpdateAfterBindSamplers"],
9904 (o.maxPerStageDescriptorUpdateAfterBindSamplers));
9905
9906 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindUniformBuffers",
9907 obj["maxPerStageDescriptorUpdateAfterBindUniformBuffers"],
9908 (o.maxPerStageDescriptorUpdateAfterBindUniformBuffers));
9909
9910 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindStorageBuffers",
9911 obj["maxPerStageDescriptorUpdateAfterBindStorageBuffers"],
9912 (o.maxPerStageDescriptorUpdateAfterBindStorageBuffers));
9913
9914 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindSampledImages",
9915 obj["maxPerStageDescriptorUpdateAfterBindSampledImages"],
9916 (o.maxPerStageDescriptorUpdateAfterBindSampledImages));
9917
9918 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindStorageImages",
9919 obj["maxPerStageDescriptorUpdateAfterBindStorageImages"],
9920 (o.maxPerStageDescriptorUpdateAfterBindStorageImages));
9921
9922 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindInputAttachments",
9923 obj["maxPerStageDescriptorUpdateAfterBindInputAttachments"],
9924 (o.maxPerStageDescriptorUpdateAfterBindInputAttachments));
9925
9926 parse_uint32_t("maxPerStageUpdateAfterBindResources", obj["maxPerStageUpdateAfterBindResources"],
9927 (o.maxPerStageUpdateAfterBindResources));
9928
9929 parse_uint32_t("maxDescriptorSetUpdateAfterBindSamplers", obj["maxDescriptorSetUpdateAfterBindSamplers"],
9930 (o.maxDescriptorSetUpdateAfterBindSamplers));
9931
9932 parse_uint32_t("maxDescriptorSetUpdateAfterBindUniformBuffers",
9933 obj["maxDescriptorSetUpdateAfterBindUniformBuffers"],
9934 (o.maxDescriptorSetUpdateAfterBindUniformBuffers));
9935
9936 parse_uint32_t("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
9937 obj["maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"],
9938 (o.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic));
9939
9940 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageBuffers",
9941 obj["maxDescriptorSetUpdateAfterBindStorageBuffers"],
9942 (o.maxDescriptorSetUpdateAfterBindStorageBuffers));
9943
9944 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
9945 obj["maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"],
9946 (o.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic));
9947
9948 parse_uint32_t("maxDescriptorSetUpdateAfterBindSampledImages", obj["maxDescriptorSetUpdateAfterBindSampledImages"],
9949 (o.maxDescriptorSetUpdateAfterBindSampledImages));
9950
9951 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageImages", obj["maxDescriptorSetUpdateAfterBindStorageImages"],
9952 (o.maxDescriptorSetUpdateAfterBindStorageImages));
9953
9954 parse_uint32_t("maxDescriptorSetUpdateAfterBindInputAttachments",
9955 obj["maxDescriptorSetUpdateAfterBindInputAttachments"],
9956 (o.maxDescriptorSetUpdateAfterBindInputAttachments));
9957
9958 parse_VkResolveModeFlags("supportedDepthResolveModes", obj["supportedDepthResolveModes"],
9959 (o.supportedDepthResolveModes));
9960
9961 parse_VkResolveModeFlags("supportedStencilResolveModes", obj["supportedStencilResolveModes"],
9962 (o.supportedStencilResolveModes));
9963
9964 parse_VkBool32("independentResolveNone", obj["independentResolveNone"], (o.independentResolveNone));
9965
9966 parse_VkBool32("independentResolve", obj["independentResolve"], (o.independentResolve));
9967
9968 parse_VkBool32("filterMinmaxSingleComponentFormats", obj["filterMinmaxSingleComponentFormats"],
9969 (o.filterMinmaxSingleComponentFormats));
9970
9971 parse_VkBool32("filterMinmaxImageComponentMapping", obj["filterMinmaxImageComponentMapping"],
9972 (o.filterMinmaxImageComponentMapping));
9973
9974 parse_uint64_t("maxTimelineSemaphoreValueDifference", obj["maxTimelineSemaphoreValueDifference"],
9975 (o.maxTimelineSemaphoreValueDifference));
9976
9977 parse_VkSampleCountFlags("framebufferIntegerColorSampleCounts", obj["framebufferIntegerColorSampleCounts"],
9978 (o.framebufferIntegerColorSampleCounts));
9979 }
9980
parse_VkImageFormatListCreateInfo(const char * s,Json::Value & obj,VkImageFormatListCreateInfo & o)9981 static void parse_VkImageFormatListCreateInfo(const char *s, Json::Value &obj, VkImageFormatListCreateInfo &o)
9982 {
9983
9984 parse_VkStructureType("sType", obj["sType"], (o.sType));
9985
9986 o.pNext = (VkImageFormatListCreateInfo *)parsePNextChain(obj);
9987
9988 parse_uint32_t("viewFormatCount", obj["viewFormatCount"], (o.viewFormatCount));
9989
9990 (o.pViewFormats) = (VkFormat *)s_globalMem.allocate((o.viewFormatCount), sizeof(VkFormat));
9991 Json::Value &obj_pViewFormats_arr = obj["pViewFormats"];
9992 for (unsigned int i = 0; i < obj_pViewFormats_arr.size(); i++)
9993 {
9994 parse_VkFormat("pViewFormats", obj_pViewFormats_arr[i], const_cast<VkFormat &>((o.pViewFormats[i])));
9995 }
9996 }
9997
parse_VkAttachmentDescription2(const char * s,Json::Value & obj,VkAttachmentDescription2 & o)9998 static void parse_VkAttachmentDescription2(const char *s, Json::Value &obj, VkAttachmentDescription2 &o)
9999 {
10000
10001 parse_VkStructureType("sType", obj["sType"], (o.sType));
10002
10003 o.pNext = (VkAttachmentDescription2 *)parsePNextChain(obj);
10004
10005 parse_VkAttachmentDescriptionFlags("flags", obj["flags"], (o.flags));
10006
10007 parse_VkFormat("format", obj["format"], (o.format));
10008
10009 parse_VkSampleCountFlagBits("samples", obj["samples"], (o.samples));
10010
10011 parse_VkAttachmentLoadOp("loadOp", obj["loadOp"], (o.loadOp));
10012
10013 parse_VkAttachmentStoreOp("storeOp", obj["storeOp"], (o.storeOp));
10014
10015 parse_VkAttachmentLoadOp("stencilLoadOp", obj["stencilLoadOp"], (o.stencilLoadOp));
10016
10017 parse_VkAttachmentStoreOp("stencilStoreOp", obj["stencilStoreOp"], (o.stencilStoreOp));
10018
10019 parse_VkImageLayout("initialLayout", obj["initialLayout"], (o.initialLayout));
10020
10021 parse_VkImageLayout("finalLayout", obj["finalLayout"], (o.finalLayout));
10022 }
10023
parse_VkAttachmentReference2(const char * s,Json::Value & obj,VkAttachmentReference2 & o)10024 static void parse_VkAttachmentReference2(const char *s, Json::Value &obj, VkAttachmentReference2 &o)
10025 {
10026
10027 parse_VkStructureType("sType", obj["sType"], (o.sType));
10028
10029 o.pNext = (VkAttachmentReference2 *)parsePNextChain(obj);
10030
10031 parse_uint32_t("attachment", obj["attachment"], (o.attachment));
10032
10033 parse_VkImageLayout("layout", obj["layout"], (o.layout));
10034
10035 parse_VkImageAspectFlags("aspectMask", obj["aspectMask"], (o.aspectMask));
10036 }
10037
parse_VkSubpassDescription2(const char * s,Json::Value & obj,VkSubpassDescription2 & o)10038 static void parse_VkSubpassDescription2(const char *s, Json::Value &obj, VkSubpassDescription2 &o)
10039 {
10040
10041 parse_VkStructureType("sType", obj["sType"], (o.sType));
10042
10043 o.pNext = (VkSubpassDescription2 *)parsePNextChain(obj);
10044
10045 parse_VkSubpassDescriptionFlags("flags", obj["flags"], (o.flags));
10046
10047 parse_VkPipelineBindPoint("pipelineBindPoint", obj["pipelineBindPoint"], (o.pipelineBindPoint));
10048
10049 parse_uint32_t("viewMask", obj["viewMask"], (o.viewMask));
10050
10051 parse_uint32_t("inputAttachmentCount", obj["inputAttachmentCount"], (o.inputAttachmentCount));
10052
10053 (o.pInputAttachments) =
10054 (VkAttachmentReference2 *)s_globalMem.allocate((o.inputAttachmentCount), sizeof(VkAttachmentReference2));
10055 Json::Value &obj_pInputAttachments = obj["pInputAttachments"];
10056 if (obj_pInputAttachments.size() == 0)
10057 (o.pInputAttachments) = nullptr;
10058 else
10059 {
10060 for (unsigned int i = 0; i < (o.inputAttachmentCount); i++)
10061 {
10062 parse_VkAttachmentReference2("pInputAttachments", obj_pInputAttachments[i],
10063 const_cast<VkAttachmentReference2 &>((o.pInputAttachments[i])));
10064 }
10065 }
10066
10067 parse_uint32_t("colorAttachmentCount", obj["colorAttachmentCount"], (o.colorAttachmentCount));
10068
10069 (o.pColorAttachments) =
10070 (VkAttachmentReference2 *)s_globalMem.allocate((o.colorAttachmentCount), sizeof(VkAttachmentReference2));
10071 Json::Value &obj_pColorAttachments = obj["pColorAttachments"];
10072 if (obj_pColorAttachments.size() == 0)
10073 (o.pColorAttachments) = nullptr;
10074 else
10075 {
10076 for (unsigned int i = 0; i < (o.colorAttachmentCount); i++)
10077 {
10078 parse_VkAttachmentReference2("pColorAttachments", obj_pColorAttachments[i],
10079 const_cast<VkAttachmentReference2 &>((o.pColorAttachments[i])));
10080 }
10081 }
10082
10083 (o.pResolveAttachments) =
10084 (VkAttachmentReference2 *)s_globalMem.allocate((o.colorAttachmentCount), sizeof(VkAttachmentReference2));
10085 Json::Value &obj_pResolveAttachments = obj["pResolveAttachments"];
10086 if (obj_pResolveAttachments.size() == 0)
10087 (o.pResolveAttachments) = nullptr;
10088 else
10089 {
10090 for (unsigned int i = 0; i < (o.colorAttachmentCount); i++)
10091 {
10092 parse_VkAttachmentReference2("pResolveAttachments", obj_pResolveAttachments[i],
10093 const_cast<VkAttachmentReference2 &>((o.pResolveAttachments[i])));
10094 }
10095 }
10096
10097 {
10098 Json::Value &obj_pDepthStencilAttachment = obj["pDepthStencilAttachment"];
10099 const int sz = obj_pDepthStencilAttachment.size();
10100 if (obj_pDepthStencilAttachment.size() == 0)
10101 {
10102 (o.pDepthStencilAttachment) = nullptr;
10103 }
10104 else
10105 {
10106 (o.pDepthStencilAttachment) =
10107 (VkAttachmentReference2 *)s_globalMem.allocate(1, sizeof(VkAttachmentReference2));
10108 parse_VkAttachmentReference2("pDepthStencilAttachment", obj_pDepthStencilAttachment,
10109 const_cast<VkAttachmentReference2 &>(*(o.pDepthStencilAttachment)));
10110 }
10111 }
10112
10113 parse_uint32_t("preserveAttachmentCount", obj["preserveAttachmentCount"], (o.preserveAttachmentCount));
10114
10115 (o.pPreserveAttachments) = (uint32_t *)s_globalMem.allocate((o.preserveAttachmentCount), sizeof(uint32_t));
10116 Json::Value &obj_pPreserveAttachments_arr = obj["pPreserveAttachments"];
10117 for (unsigned int i = 0; i < obj_pPreserveAttachments_arr.size(); i++)
10118 {
10119 parse_uint32_t("pPreserveAttachments", obj_pPreserveAttachments_arr[i],
10120 const_cast<uint32_t &>((o.pPreserveAttachments[i])));
10121 }
10122 }
10123
parse_VkSubpassDependency2(const char * s,Json::Value & obj,VkSubpassDependency2 & o)10124 static void parse_VkSubpassDependency2(const char *s, Json::Value &obj, VkSubpassDependency2 &o)
10125 {
10126
10127 parse_VkStructureType("sType", obj["sType"], (o.sType));
10128
10129 o.pNext = (VkSubpassDependency2 *)parsePNextChain(obj);
10130
10131 parse_uint32_t("srcSubpass", obj["srcSubpass"], (o.srcSubpass));
10132
10133 parse_uint32_t("dstSubpass", obj["dstSubpass"], (o.dstSubpass));
10134
10135 parse_VkPipelineStageFlags("srcStageMask", obj["srcStageMask"], (o.srcStageMask));
10136
10137 parse_VkPipelineStageFlags("dstStageMask", obj["dstStageMask"], (o.dstStageMask));
10138
10139 parse_VkAccessFlags("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
10140
10141 parse_VkAccessFlags("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
10142
10143 parse_VkDependencyFlags("dependencyFlags", obj["dependencyFlags"], (o.dependencyFlags));
10144
10145 parse_int32_t("viewOffset", obj["viewOffset"], (o.viewOffset));
10146 }
10147
parse_VkRenderPassCreateInfo2(const char * s,Json::Value & obj,VkRenderPassCreateInfo2 & o)10148 static void parse_VkRenderPassCreateInfo2(const char *s, Json::Value &obj, VkRenderPassCreateInfo2 &o)
10149 {
10150
10151 parse_VkStructureType("sType", obj["sType"], (o.sType));
10152
10153 o.pNext = (VkRenderPassCreateInfo2 *)parsePNextChain(obj);
10154
10155 parse_VkRenderPassCreateFlags("flags", obj["flags"], (o.flags));
10156
10157 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
10158
10159 (o.pAttachments) =
10160 (VkAttachmentDescription2 *)s_globalMem.allocate((o.attachmentCount), sizeof(VkAttachmentDescription2));
10161 Json::Value &obj_pAttachments = obj["pAttachments"];
10162 if (obj_pAttachments.size() == 0)
10163 (o.pAttachments) = nullptr;
10164 else
10165 {
10166 for (unsigned int i = 0; i < (o.attachmentCount); i++)
10167 {
10168 parse_VkAttachmentDescription2("pAttachments", obj_pAttachments[i],
10169 const_cast<VkAttachmentDescription2 &>((o.pAttachments[i])));
10170 }
10171 }
10172
10173 parse_uint32_t("subpassCount", obj["subpassCount"], (o.subpassCount));
10174
10175 (o.pSubpasses) = (VkSubpassDescription2 *)s_globalMem.allocate((o.subpassCount), sizeof(VkSubpassDescription2));
10176 Json::Value &obj_pSubpasses = obj["pSubpasses"];
10177 if (obj_pSubpasses.size() == 0)
10178 (o.pSubpasses) = nullptr;
10179 else
10180 {
10181 for (unsigned int i = 0; i < (o.subpassCount); i++)
10182 {
10183 parse_VkSubpassDescription2("pSubpasses", obj_pSubpasses[i],
10184 const_cast<VkSubpassDescription2 &>((o.pSubpasses[i])));
10185 }
10186 }
10187
10188 parse_uint32_t("dependencyCount", obj["dependencyCount"], (o.dependencyCount));
10189
10190 (o.pDependencies) = (VkSubpassDependency2 *)s_globalMem.allocate((o.dependencyCount), sizeof(VkSubpassDependency2));
10191 Json::Value &obj_pDependencies = obj["pDependencies"];
10192 if (obj_pDependencies.size() == 0)
10193 (o.pDependencies) = nullptr;
10194 else
10195 {
10196 for (unsigned int i = 0; i < (o.dependencyCount); i++)
10197 {
10198 parse_VkSubpassDependency2("pDependencies", obj_pDependencies[i],
10199 const_cast<VkSubpassDependency2 &>((o.pDependencies[i])));
10200 }
10201 }
10202
10203 parse_uint32_t("correlatedViewMaskCount", obj["correlatedViewMaskCount"], (o.correlatedViewMaskCount));
10204
10205 (o.pCorrelatedViewMasks) = (uint32_t *)s_globalMem.allocate((o.correlatedViewMaskCount), sizeof(uint32_t));
10206 Json::Value &obj_pCorrelatedViewMasks_arr = obj["pCorrelatedViewMasks"];
10207 for (unsigned int i = 0; i < obj_pCorrelatedViewMasks_arr.size(); i++)
10208 {
10209 parse_uint32_t("pCorrelatedViewMasks", obj_pCorrelatedViewMasks_arr[i],
10210 const_cast<uint32_t &>((o.pCorrelatedViewMasks[i])));
10211 }
10212 }
10213
parse_VkSubpassBeginInfo(const char * s,Json::Value & obj,VkSubpassBeginInfo & o)10214 static void parse_VkSubpassBeginInfo(const char *s, Json::Value &obj, VkSubpassBeginInfo &o)
10215 {
10216
10217 parse_VkStructureType("sType", obj["sType"], (o.sType));
10218
10219 o.pNext = (VkSubpassBeginInfo *)parsePNextChain(obj);
10220
10221 parse_VkSubpassContents("contents", obj["contents"], (o.contents));
10222 }
10223
parse_VkSubpassEndInfo(const char * s,Json::Value & obj,VkSubpassEndInfo & o)10224 static void parse_VkSubpassEndInfo(const char *s, Json::Value &obj, VkSubpassEndInfo &o)
10225 {
10226
10227 parse_VkStructureType("sType", obj["sType"], (o.sType));
10228
10229 o.pNext = (VkSubpassEndInfo *)parsePNextChain(obj);
10230 }
10231
parse_VkPhysicalDevice8BitStorageFeatures(const char * s,Json::Value & obj,VkPhysicalDevice8BitStorageFeatures & o)10232 static void parse_VkPhysicalDevice8BitStorageFeatures(const char *s, Json::Value &obj,
10233 VkPhysicalDevice8BitStorageFeatures &o)
10234 {
10235
10236 parse_VkStructureType("sType", obj["sType"], (o.sType));
10237
10238 o.pNext = (VkPhysicalDevice8BitStorageFeatures *)parsePNextChain(obj);
10239
10240 parse_VkBool32("storageBuffer8BitAccess", obj["storageBuffer8BitAccess"], (o.storageBuffer8BitAccess));
10241
10242 parse_VkBool32("uniformAndStorageBuffer8BitAccess", obj["uniformAndStorageBuffer8BitAccess"],
10243 (o.uniformAndStorageBuffer8BitAccess));
10244
10245 parse_VkBool32("storagePushConstant8", obj["storagePushConstant8"], (o.storagePushConstant8));
10246 }
10247
parse_VkPhysicalDeviceDriverProperties(const char * s,Json::Value & obj,VkPhysicalDeviceDriverProperties & o)10248 static void parse_VkPhysicalDeviceDriverProperties(const char *s, Json::Value &obj, VkPhysicalDeviceDriverProperties &o)
10249 {
10250
10251 parse_VkStructureType("sType", obj["sType"], (o.sType));
10252
10253 o.pNext = (VkPhysicalDeviceDriverProperties *)parsePNextChain(obj);
10254
10255 parse_VkDriverId("driverID", obj["driverID"], (o.driverID));
10256
10257 /** TODO: Handle this - driverName **/
10258
10259 /** TODO: Handle this - driverInfo **/
10260
10261 parse_VkConformanceVersion("conformanceVersion", obj["conformanceVersion"], (o.conformanceVersion));
10262 }
10263
parse_VkPhysicalDeviceShaderAtomicInt64Features(const char * s,Json::Value & obj,VkPhysicalDeviceShaderAtomicInt64Features & o)10264 static void parse_VkPhysicalDeviceShaderAtomicInt64Features(const char *s, Json::Value &obj,
10265 VkPhysicalDeviceShaderAtomicInt64Features &o)
10266 {
10267
10268 parse_VkStructureType("sType", obj["sType"], (o.sType));
10269
10270 o.pNext = (VkPhysicalDeviceShaderAtomicInt64Features *)parsePNextChain(obj);
10271
10272 parse_VkBool32("shaderBufferInt64Atomics", obj["shaderBufferInt64Atomics"], (o.shaderBufferInt64Atomics));
10273
10274 parse_VkBool32("shaderSharedInt64Atomics", obj["shaderSharedInt64Atomics"], (o.shaderSharedInt64Atomics));
10275 }
10276
parse_VkPhysicalDeviceShaderFloat16Int8Features(const char * s,Json::Value & obj,VkPhysicalDeviceShaderFloat16Int8Features & o)10277 static void parse_VkPhysicalDeviceShaderFloat16Int8Features(const char *s, Json::Value &obj,
10278 VkPhysicalDeviceShaderFloat16Int8Features &o)
10279 {
10280
10281 parse_VkStructureType("sType", obj["sType"], (o.sType));
10282
10283 o.pNext = (VkPhysicalDeviceShaderFloat16Int8Features *)parsePNextChain(obj);
10284
10285 parse_VkBool32("shaderFloat16", obj["shaderFloat16"], (o.shaderFloat16));
10286
10287 parse_VkBool32("shaderInt8", obj["shaderInt8"], (o.shaderInt8));
10288 }
10289
parse_VkPhysicalDeviceFloatControlsProperties(const char * s,Json::Value & obj,VkPhysicalDeviceFloatControlsProperties & o)10290 static void parse_VkPhysicalDeviceFloatControlsProperties(const char *s, Json::Value &obj,
10291 VkPhysicalDeviceFloatControlsProperties &o)
10292 {
10293
10294 parse_VkStructureType("sType", obj["sType"], (o.sType));
10295
10296 o.pNext = (VkPhysicalDeviceFloatControlsProperties *)parsePNextChain(obj);
10297
10298 parse_VkShaderFloatControlsIndependence("denormBehaviorIndependence", obj["denormBehaviorIndependence"],
10299 (o.denormBehaviorIndependence));
10300
10301 parse_VkShaderFloatControlsIndependence("roundingModeIndependence", obj["roundingModeIndependence"],
10302 (o.roundingModeIndependence));
10303
10304 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat16", obj["shaderSignedZeroInfNanPreserveFloat16"],
10305 (o.shaderSignedZeroInfNanPreserveFloat16));
10306
10307 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat32", obj["shaderSignedZeroInfNanPreserveFloat32"],
10308 (o.shaderSignedZeroInfNanPreserveFloat32));
10309
10310 parse_VkBool32("shaderSignedZeroInfNanPreserveFloat64", obj["shaderSignedZeroInfNanPreserveFloat64"],
10311 (o.shaderSignedZeroInfNanPreserveFloat64));
10312
10313 parse_VkBool32("shaderDenormPreserveFloat16", obj["shaderDenormPreserveFloat16"], (o.shaderDenormPreserveFloat16));
10314
10315 parse_VkBool32("shaderDenormPreserveFloat32", obj["shaderDenormPreserveFloat32"], (o.shaderDenormPreserveFloat32));
10316
10317 parse_VkBool32("shaderDenormPreserveFloat64", obj["shaderDenormPreserveFloat64"], (o.shaderDenormPreserveFloat64));
10318
10319 parse_VkBool32("shaderDenormFlushToZeroFloat16", obj["shaderDenormFlushToZeroFloat16"],
10320 (o.shaderDenormFlushToZeroFloat16));
10321
10322 parse_VkBool32("shaderDenormFlushToZeroFloat32", obj["shaderDenormFlushToZeroFloat32"],
10323 (o.shaderDenormFlushToZeroFloat32));
10324
10325 parse_VkBool32("shaderDenormFlushToZeroFloat64", obj["shaderDenormFlushToZeroFloat64"],
10326 (o.shaderDenormFlushToZeroFloat64));
10327
10328 parse_VkBool32("shaderRoundingModeRTEFloat16", obj["shaderRoundingModeRTEFloat16"],
10329 (o.shaderRoundingModeRTEFloat16));
10330
10331 parse_VkBool32("shaderRoundingModeRTEFloat32", obj["shaderRoundingModeRTEFloat32"],
10332 (o.shaderRoundingModeRTEFloat32));
10333
10334 parse_VkBool32("shaderRoundingModeRTEFloat64", obj["shaderRoundingModeRTEFloat64"],
10335 (o.shaderRoundingModeRTEFloat64));
10336
10337 parse_VkBool32("shaderRoundingModeRTZFloat16", obj["shaderRoundingModeRTZFloat16"],
10338 (o.shaderRoundingModeRTZFloat16));
10339
10340 parse_VkBool32("shaderRoundingModeRTZFloat32", obj["shaderRoundingModeRTZFloat32"],
10341 (o.shaderRoundingModeRTZFloat32));
10342
10343 parse_VkBool32("shaderRoundingModeRTZFloat64", obj["shaderRoundingModeRTZFloat64"],
10344 (o.shaderRoundingModeRTZFloat64));
10345 }
10346
parse_VkDescriptorSetLayoutBindingFlagsCreateInfo(const char * s,Json::Value & obj,VkDescriptorSetLayoutBindingFlagsCreateInfo & o)10347 static void parse_VkDescriptorSetLayoutBindingFlagsCreateInfo(const char *s, Json::Value &obj,
10348 VkDescriptorSetLayoutBindingFlagsCreateInfo &o)
10349 {
10350
10351 parse_VkStructureType("sType", obj["sType"], (o.sType));
10352
10353 o.pNext = (VkDescriptorSetLayoutBindingFlagsCreateInfo *)parsePNextChain(obj);
10354
10355 parse_uint32_t("bindingCount", obj["bindingCount"], (o.bindingCount));
10356
10357 (o.pBindingFlags) =
10358 (VkDescriptorBindingFlags *)s_globalMem.allocate((o.bindingCount), sizeof(VkDescriptorBindingFlags));
10359 Json::Value &obj_pBindingFlags_arr = obj["pBindingFlags"];
10360 for (unsigned int i = 0; i < obj_pBindingFlags_arr.size(); i++)
10361 {
10362 parse_VkDescriptorBindingFlags("pBindingFlags", obj_pBindingFlags_arr[i],
10363 const_cast<VkDescriptorBindingFlags &>((o.pBindingFlags[i])));
10364 }
10365 }
10366
parse_VkPhysicalDeviceDescriptorIndexingFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceDescriptorIndexingFeatures & o)10367 static void parse_VkPhysicalDeviceDescriptorIndexingFeatures(const char *s, Json::Value &obj,
10368 VkPhysicalDeviceDescriptorIndexingFeatures &o)
10369 {
10370
10371 parse_VkStructureType("sType", obj["sType"], (o.sType));
10372
10373 o.pNext = (VkPhysicalDeviceDescriptorIndexingFeatures *)parsePNextChain(obj);
10374
10375 parse_VkBool32("shaderInputAttachmentArrayDynamicIndexing", obj["shaderInputAttachmentArrayDynamicIndexing"],
10376 (o.shaderInputAttachmentArrayDynamicIndexing));
10377
10378 parse_VkBool32("shaderUniformTexelBufferArrayDynamicIndexing", obj["shaderUniformTexelBufferArrayDynamicIndexing"],
10379 (o.shaderUniformTexelBufferArrayDynamicIndexing));
10380
10381 parse_VkBool32("shaderStorageTexelBufferArrayDynamicIndexing", obj["shaderStorageTexelBufferArrayDynamicIndexing"],
10382 (o.shaderStorageTexelBufferArrayDynamicIndexing));
10383
10384 parse_VkBool32("shaderUniformBufferArrayNonUniformIndexing", obj["shaderUniformBufferArrayNonUniformIndexing"],
10385 (o.shaderUniformBufferArrayNonUniformIndexing));
10386
10387 parse_VkBool32("shaderSampledImageArrayNonUniformIndexing", obj["shaderSampledImageArrayNonUniformIndexing"],
10388 (o.shaderSampledImageArrayNonUniformIndexing));
10389
10390 parse_VkBool32("shaderStorageBufferArrayNonUniformIndexing", obj["shaderStorageBufferArrayNonUniformIndexing"],
10391 (o.shaderStorageBufferArrayNonUniformIndexing));
10392
10393 parse_VkBool32("shaderStorageImageArrayNonUniformIndexing", obj["shaderStorageImageArrayNonUniformIndexing"],
10394 (o.shaderStorageImageArrayNonUniformIndexing));
10395
10396 parse_VkBool32("shaderInputAttachmentArrayNonUniformIndexing", obj["shaderInputAttachmentArrayNonUniformIndexing"],
10397 (o.shaderInputAttachmentArrayNonUniformIndexing));
10398
10399 parse_VkBool32("shaderUniformTexelBufferArrayNonUniformIndexing",
10400 obj["shaderUniformTexelBufferArrayNonUniformIndexing"],
10401 (o.shaderUniformTexelBufferArrayNonUniformIndexing));
10402
10403 parse_VkBool32("shaderStorageTexelBufferArrayNonUniformIndexing",
10404 obj["shaderStorageTexelBufferArrayNonUniformIndexing"],
10405 (o.shaderStorageTexelBufferArrayNonUniformIndexing));
10406
10407 parse_VkBool32("descriptorBindingUniformBufferUpdateAfterBind",
10408 obj["descriptorBindingUniformBufferUpdateAfterBind"],
10409 (o.descriptorBindingUniformBufferUpdateAfterBind));
10410
10411 parse_VkBool32("descriptorBindingSampledImageUpdateAfterBind", obj["descriptorBindingSampledImageUpdateAfterBind"],
10412 (o.descriptorBindingSampledImageUpdateAfterBind));
10413
10414 parse_VkBool32("descriptorBindingStorageImageUpdateAfterBind", obj["descriptorBindingStorageImageUpdateAfterBind"],
10415 (o.descriptorBindingStorageImageUpdateAfterBind));
10416
10417 parse_VkBool32("descriptorBindingStorageBufferUpdateAfterBind",
10418 obj["descriptorBindingStorageBufferUpdateAfterBind"],
10419 (o.descriptorBindingStorageBufferUpdateAfterBind));
10420
10421 parse_VkBool32("descriptorBindingUniformTexelBufferUpdateAfterBind",
10422 obj["descriptorBindingUniformTexelBufferUpdateAfterBind"],
10423 (o.descriptorBindingUniformTexelBufferUpdateAfterBind));
10424
10425 parse_VkBool32("descriptorBindingStorageTexelBufferUpdateAfterBind",
10426 obj["descriptorBindingStorageTexelBufferUpdateAfterBind"],
10427 (o.descriptorBindingStorageTexelBufferUpdateAfterBind));
10428
10429 parse_VkBool32("descriptorBindingUpdateUnusedWhilePending", obj["descriptorBindingUpdateUnusedWhilePending"],
10430 (o.descriptorBindingUpdateUnusedWhilePending));
10431
10432 parse_VkBool32("descriptorBindingPartiallyBound", obj["descriptorBindingPartiallyBound"],
10433 (o.descriptorBindingPartiallyBound));
10434
10435 parse_VkBool32("descriptorBindingVariableDescriptorCount", obj["descriptorBindingVariableDescriptorCount"],
10436 (o.descriptorBindingVariableDescriptorCount));
10437
10438 parse_VkBool32("runtimeDescriptorArray", obj["runtimeDescriptorArray"], (o.runtimeDescriptorArray));
10439 }
10440
parse_VkPhysicalDeviceDescriptorIndexingProperties(const char * s,Json::Value & obj,VkPhysicalDeviceDescriptorIndexingProperties & o)10441 static void parse_VkPhysicalDeviceDescriptorIndexingProperties(const char *s, Json::Value &obj,
10442 VkPhysicalDeviceDescriptorIndexingProperties &o)
10443 {
10444
10445 parse_VkStructureType("sType", obj["sType"], (o.sType));
10446
10447 o.pNext = (VkPhysicalDeviceDescriptorIndexingProperties *)parsePNextChain(obj);
10448
10449 parse_uint32_t("maxUpdateAfterBindDescriptorsInAllPools", obj["maxUpdateAfterBindDescriptorsInAllPools"],
10450 (o.maxUpdateAfterBindDescriptorsInAllPools));
10451
10452 parse_VkBool32("shaderUniformBufferArrayNonUniformIndexingNative",
10453 obj["shaderUniformBufferArrayNonUniformIndexingNative"],
10454 (o.shaderUniformBufferArrayNonUniformIndexingNative));
10455
10456 parse_VkBool32("shaderSampledImageArrayNonUniformIndexingNative",
10457 obj["shaderSampledImageArrayNonUniformIndexingNative"],
10458 (o.shaderSampledImageArrayNonUniformIndexingNative));
10459
10460 parse_VkBool32("shaderStorageBufferArrayNonUniformIndexingNative",
10461 obj["shaderStorageBufferArrayNonUniformIndexingNative"],
10462 (o.shaderStorageBufferArrayNonUniformIndexingNative));
10463
10464 parse_VkBool32("shaderStorageImageArrayNonUniformIndexingNative",
10465 obj["shaderStorageImageArrayNonUniformIndexingNative"],
10466 (o.shaderStorageImageArrayNonUniformIndexingNative));
10467
10468 parse_VkBool32("shaderInputAttachmentArrayNonUniformIndexingNative",
10469 obj["shaderInputAttachmentArrayNonUniformIndexingNative"],
10470 (o.shaderInputAttachmentArrayNonUniformIndexingNative));
10471
10472 parse_VkBool32("robustBufferAccessUpdateAfterBind", obj["robustBufferAccessUpdateAfterBind"],
10473 (o.robustBufferAccessUpdateAfterBind));
10474
10475 parse_VkBool32("quadDivergentImplicitLod", obj["quadDivergentImplicitLod"], (o.quadDivergentImplicitLod));
10476
10477 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindSamplers", obj["maxPerStageDescriptorUpdateAfterBindSamplers"],
10478 (o.maxPerStageDescriptorUpdateAfterBindSamplers));
10479
10480 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindUniformBuffers",
10481 obj["maxPerStageDescriptorUpdateAfterBindUniformBuffers"],
10482 (o.maxPerStageDescriptorUpdateAfterBindUniformBuffers));
10483
10484 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindStorageBuffers",
10485 obj["maxPerStageDescriptorUpdateAfterBindStorageBuffers"],
10486 (o.maxPerStageDescriptorUpdateAfterBindStorageBuffers));
10487
10488 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindSampledImages",
10489 obj["maxPerStageDescriptorUpdateAfterBindSampledImages"],
10490 (o.maxPerStageDescriptorUpdateAfterBindSampledImages));
10491
10492 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindStorageImages",
10493 obj["maxPerStageDescriptorUpdateAfterBindStorageImages"],
10494 (o.maxPerStageDescriptorUpdateAfterBindStorageImages));
10495
10496 parse_uint32_t("maxPerStageDescriptorUpdateAfterBindInputAttachments",
10497 obj["maxPerStageDescriptorUpdateAfterBindInputAttachments"],
10498 (o.maxPerStageDescriptorUpdateAfterBindInputAttachments));
10499
10500 parse_uint32_t("maxPerStageUpdateAfterBindResources", obj["maxPerStageUpdateAfterBindResources"],
10501 (o.maxPerStageUpdateAfterBindResources));
10502
10503 parse_uint32_t("maxDescriptorSetUpdateAfterBindSamplers", obj["maxDescriptorSetUpdateAfterBindSamplers"],
10504 (o.maxDescriptorSetUpdateAfterBindSamplers));
10505
10506 parse_uint32_t("maxDescriptorSetUpdateAfterBindUniformBuffers",
10507 obj["maxDescriptorSetUpdateAfterBindUniformBuffers"],
10508 (o.maxDescriptorSetUpdateAfterBindUniformBuffers));
10509
10510 parse_uint32_t("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
10511 obj["maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"],
10512 (o.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic));
10513
10514 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageBuffers",
10515 obj["maxDescriptorSetUpdateAfterBindStorageBuffers"],
10516 (o.maxDescriptorSetUpdateAfterBindStorageBuffers));
10517
10518 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
10519 obj["maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"],
10520 (o.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic));
10521
10522 parse_uint32_t("maxDescriptorSetUpdateAfterBindSampledImages", obj["maxDescriptorSetUpdateAfterBindSampledImages"],
10523 (o.maxDescriptorSetUpdateAfterBindSampledImages));
10524
10525 parse_uint32_t("maxDescriptorSetUpdateAfterBindStorageImages", obj["maxDescriptorSetUpdateAfterBindStorageImages"],
10526 (o.maxDescriptorSetUpdateAfterBindStorageImages));
10527
10528 parse_uint32_t("maxDescriptorSetUpdateAfterBindInputAttachments",
10529 obj["maxDescriptorSetUpdateAfterBindInputAttachments"],
10530 (o.maxDescriptorSetUpdateAfterBindInputAttachments));
10531 }
10532
parse_VkDescriptorSetVariableDescriptorCountAllocateInfo(const char * s,Json::Value & obj,VkDescriptorSetVariableDescriptorCountAllocateInfo & o)10533 static void parse_VkDescriptorSetVariableDescriptorCountAllocateInfo(
10534 const char *s, Json::Value &obj, VkDescriptorSetVariableDescriptorCountAllocateInfo &o)
10535 {
10536
10537 parse_VkStructureType("sType", obj["sType"], (o.sType));
10538
10539 o.pNext = (VkDescriptorSetVariableDescriptorCountAllocateInfo *)parsePNextChain(obj);
10540
10541 parse_uint32_t("descriptorSetCount", obj["descriptorSetCount"], (o.descriptorSetCount));
10542
10543 (o.pDescriptorCounts) = (uint32_t *)s_globalMem.allocate((o.descriptorSetCount), sizeof(uint32_t));
10544 Json::Value &obj_pDescriptorCounts_arr = obj["pDescriptorCounts"];
10545 for (unsigned int i = 0; i < obj_pDescriptorCounts_arr.size(); i++)
10546 {
10547 parse_uint32_t("pDescriptorCounts", obj_pDescriptorCounts_arr[i],
10548 const_cast<uint32_t &>((o.pDescriptorCounts[i])));
10549 }
10550 }
10551
parse_VkDescriptorSetVariableDescriptorCountLayoutSupport(const char * s,Json::Value & obj,VkDescriptorSetVariableDescriptorCountLayoutSupport & o)10552 static void parse_VkDescriptorSetVariableDescriptorCountLayoutSupport(
10553 const char *s, Json::Value &obj, VkDescriptorSetVariableDescriptorCountLayoutSupport &o)
10554 {
10555
10556 parse_VkStructureType("sType", obj["sType"], (o.sType));
10557
10558 o.pNext = (VkDescriptorSetVariableDescriptorCountLayoutSupport *)parsePNextChain(obj);
10559
10560 parse_uint32_t("maxVariableDescriptorCount", obj["maxVariableDescriptorCount"], (o.maxVariableDescriptorCount));
10561 }
10562
parse_VkSubpassDescriptionDepthStencilResolve(const char * s,Json::Value & obj,VkSubpassDescriptionDepthStencilResolve & o)10563 static void parse_VkSubpassDescriptionDepthStencilResolve(const char *s, Json::Value &obj,
10564 VkSubpassDescriptionDepthStencilResolve &o)
10565 {
10566
10567 parse_VkStructureType("sType", obj["sType"], (o.sType));
10568
10569 o.pNext = (VkSubpassDescriptionDepthStencilResolve *)parsePNextChain(obj);
10570
10571 parse_VkResolveModeFlagBits("depthResolveMode", obj["depthResolveMode"], (o.depthResolveMode));
10572
10573 parse_VkResolveModeFlagBits("stencilResolveMode", obj["stencilResolveMode"], (o.stencilResolveMode));
10574
10575 {
10576 Json::Value &obj_pDepthStencilResolveAttachment = obj["pDepthStencilResolveAttachment"];
10577 const int sz = obj_pDepthStencilResolveAttachment.size();
10578 if (obj_pDepthStencilResolveAttachment.size() == 0)
10579 {
10580 (o.pDepthStencilResolveAttachment) = nullptr;
10581 }
10582 else
10583 {
10584 (o.pDepthStencilResolveAttachment) =
10585 (VkAttachmentReference2 *)s_globalMem.allocate(1, sizeof(VkAttachmentReference2));
10586 parse_VkAttachmentReference2("pDepthStencilResolveAttachment", obj_pDepthStencilResolveAttachment,
10587 const_cast<VkAttachmentReference2 &>(*(o.pDepthStencilResolveAttachment)));
10588 }
10589 }
10590 }
10591
parse_VkPhysicalDeviceDepthStencilResolveProperties(const char * s,Json::Value & obj,VkPhysicalDeviceDepthStencilResolveProperties & o)10592 static void parse_VkPhysicalDeviceDepthStencilResolveProperties(const char *s, Json::Value &obj,
10593 VkPhysicalDeviceDepthStencilResolveProperties &o)
10594 {
10595
10596 parse_VkStructureType("sType", obj["sType"], (o.sType));
10597
10598 o.pNext = (VkPhysicalDeviceDepthStencilResolveProperties *)parsePNextChain(obj);
10599
10600 parse_VkResolveModeFlags("supportedDepthResolveModes", obj["supportedDepthResolveModes"],
10601 (o.supportedDepthResolveModes));
10602
10603 parse_VkResolveModeFlags("supportedStencilResolveModes", obj["supportedStencilResolveModes"],
10604 (o.supportedStencilResolveModes));
10605
10606 parse_VkBool32("independentResolveNone", obj["independentResolveNone"], (o.independentResolveNone));
10607
10608 parse_VkBool32("independentResolve", obj["independentResolve"], (o.independentResolve));
10609 }
10610
parse_VkPhysicalDeviceScalarBlockLayoutFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceScalarBlockLayoutFeatures & o)10611 static void parse_VkPhysicalDeviceScalarBlockLayoutFeatures(const char *s, Json::Value &obj,
10612 VkPhysicalDeviceScalarBlockLayoutFeatures &o)
10613 {
10614
10615 parse_VkStructureType("sType", obj["sType"], (o.sType));
10616
10617 o.pNext = (VkPhysicalDeviceScalarBlockLayoutFeatures *)parsePNextChain(obj);
10618
10619 parse_VkBool32("scalarBlockLayout", obj["scalarBlockLayout"], (o.scalarBlockLayout));
10620 }
10621
parse_VkImageStencilUsageCreateInfo(const char * s,Json::Value & obj,VkImageStencilUsageCreateInfo & o)10622 static void parse_VkImageStencilUsageCreateInfo(const char *s, Json::Value &obj, VkImageStencilUsageCreateInfo &o)
10623 {
10624
10625 parse_VkStructureType("sType", obj["sType"], (o.sType));
10626
10627 o.pNext = (VkImageStencilUsageCreateInfo *)parsePNextChain(obj);
10628
10629 parse_VkImageUsageFlags("stencilUsage", obj["stencilUsage"], (o.stencilUsage));
10630 }
10631
parse_VkSamplerReductionModeCreateInfo(const char * s,Json::Value & obj,VkSamplerReductionModeCreateInfo & o)10632 static void parse_VkSamplerReductionModeCreateInfo(const char *s, Json::Value &obj, VkSamplerReductionModeCreateInfo &o)
10633 {
10634
10635 parse_VkStructureType("sType", obj["sType"], (o.sType));
10636
10637 o.pNext = (VkSamplerReductionModeCreateInfo *)parsePNextChain(obj);
10638
10639 parse_VkSamplerReductionMode("reductionMode", obj["reductionMode"], (o.reductionMode));
10640 }
10641
parse_VkPhysicalDeviceSamplerFilterMinmaxProperties(const char * s,Json::Value & obj,VkPhysicalDeviceSamplerFilterMinmaxProperties & o)10642 static void parse_VkPhysicalDeviceSamplerFilterMinmaxProperties(const char *s, Json::Value &obj,
10643 VkPhysicalDeviceSamplerFilterMinmaxProperties &o)
10644 {
10645
10646 parse_VkStructureType("sType", obj["sType"], (o.sType));
10647
10648 o.pNext = (VkPhysicalDeviceSamplerFilterMinmaxProperties *)parsePNextChain(obj);
10649
10650 parse_VkBool32("filterMinmaxSingleComponentFormats", obj["filterMinmaxSingleComponentFormats"],
10651 (o.filterMinmaxSingleComponentFormats));
10652
10653 parse_VkBool32("filterMinmaxImageComponentMapping", obj["filterMinmaxImageComponentMapping"],
10654 (o.filterMinmaxImageComponentMapping));
10655 }
10656
parse_VkPhysicalDeviceVulkanMemoryModelFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceVulkanMemoryModelFeatures & o)10657 static void parse_VkPhysicalDeviceVulkanMemoryModelFeatures(const char *s, Json::Value &obj,
10658 VkPhysicalDeviceVulkanMemoryModelFeatures &o)
10659 {
10660
10661 parse_VkStructureType("sType", obj["sType"], (o.sType));
10662
10663 o.pNext = (VkPhysicalDeviceVulkanMemoryModelFeatures *)parsePNextChain(obj);
10664
10665 parse_VkBool32("vulkanMemoryModel", obj["vulkanMemoryModel"], (o.vulkanMemoryModel));
10666
10667 parse_VkBool32("vulkanMemoryModelDeviceScope", obj["vulkanMemoryModelDeviceScope"],
10668 (o.vulkanMemoryModelDeviceScope));
10669
10670 parse_VkBool32("vulkanMemoryModelAvailabilityVisibilityChains",
10671 obj["vulkanMemoryModelAvailabilityVisibilityChains"],
10672 (o.vulkanMemoryModelAvailabilityVisibilityChains));
10673 }
10674
parse_VkPhysicalDeviceImagelessFramebufferFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceImagelessFramebufferFeatures & o)10675 static void parse_VkPhysicalDeviceImagelessFramebufferFeatures(const char *s, Json::Value &obj,
10676 VkPhysicalDeviceImagelessFramebufferFeatures &o)
10677 {
10678
10679 parse_VkStructureType("sType", obj["sType"], (o.sType));
10680
10681 o.pNext = (VkPhysicalDeviceImagelessFramebufferFeatures *)parsePNextChain(obj);
10682
10683 parse_VkBool32("imagelessFramebuffer", obj["imagelessFramebuffer"], (o.imagelessFramebuffer));
10684 }
10685
parse_VkFramebufferAttachmentImageInfo(const char * s,Json::Value & obj,VkFramebufferAttachmentImageInfo & o)10686 static void parse_VkFramebufferAttachmentImageInfo(const char *s, Json::Value &obj, VkFramebufferAttachmentImageInfo &o)
10687 {
10688
10689 parse_VkStructureType("sType", obj["sType"], (o.sType));
10690
10691 o.pNext = (VkFramebufferAttachmentImageInfo *)parsePNextChain(obj);
10692
10693 parse_VkImageCreateFlags("flags", obj["flags"], (o.flags));
10694
10695 parse_VkImageUsageFlags("usage", obj["usage"], (o.usage));
10696
10697 parse_uint32_t("width", obj["width"], (o.width));
10698
10699 parse_uint32_t("height", obj["height"], (o.height));
10700
10701 parse_uint32_t("layerCount", obj["layerCount"], (o.layerCount));
10702
10703 parse_uint32_t("viewFormatCount", obj["viewFormatCount"], (o.viewFormatCount));
10704
10705 (o.pViewFormats) = (VkFormat *)s_globalMem.allocate((o.viewFormatCount), sizeof(VkFormat));
10706 Json::Value &obj_pViewFormats_arr = obj["pViewFormats"];
10707 for (unsigned int i = 0; i < obj_pViewFormats_arr.size(); i++)
10708 {
10709 parse_VkFormat("pViewFormats", obj_pViewFormats_arr[i], const_cast<VkFormat &>((o.pViewFormats[i])));
10710 }
10711 }
10712
parse_VkFramebufferAttachmentsCreateInfo(const char * s,Json::Value & obj,VkFramebufferAttachmentsCreateInfo & o)10713 static void parse_VkFramebufferAttachmentsCreateInfo(const char *s, Json::Value &obj,
10714 VkFramebufferAttachmentsCreateInfo &o)
10715 {
10716
10717 parse_VkStructureType("sType", obj["sType"], (o.sType));
10718
10719 o.pNext = (VkFramebufferAttachmentsCreateInfo *)parsePNextChain(obj);
10720
10721 parse_uint32_t("attachmentImageInfoCount", obj["attachmentImageInfoCount"], (o.attachmentImageInfoCount));
10722
10723 (o.pAttachmentImageInfos) = (VkFramebufferAttachmentImageInfo *)s_globalMem.allocate(
10724 (o.attachmentImageInfoCount), sizeof(VkFramebufferAttachmentImageInfo));
10725 Json::Value &obj_pAttachmentImageInfos = obj["pAttachmentImageInfos"];
10726 if (obj_pAttachmentImageInfos.size() == 0)
10727 (o.pAttachmentImageInfos) = nullptr;
10728 else
10729 {
10730 for (unsigned int i = 0; i < (o.attachmentImageInfoCount); i++)
10731 {
10732 parse_VkFramebufferAttachmentImageInfo(
10733 "pAttachmentImageInfos", obj_pAttachmentImageInfos[i],
10734 const_cast<VkFramebufferAttachmentImageInfo &>((o.pAttachmentImageInfos[i])));
10735 }
10736 }
10737 }
10738
parse_VkRenderPassAttachmentBeginInfo(const char * s,Json::Value & obj,VkRenderPassAttachmentBeginInfo & o)10739 static void parse_VkRenderPassAttachmentBeginInfo(const char *s, Json::Value &obj, VkRenderPassAttachmentBeginInfo &o)
10740 {
10741
10742 parse_VkStructureType("sType", obj["sType"], (o.sType));
10743
10744 o.pNext = (VkRenderPassAttachmentBeginInfo *)parsePNextChain(obj);
10745
10746 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
10747
10748 (o.pAttachments) = (VkImageView *)s_globalMem.allocate((o.attachmentCount), sizeof(VkImageView));
10749 Json::Value &obj_pAttachments_arr = obj["pAttachments"];
10750 for (unsigned int i = 0; i < obj_pAttachments_arr.size(); i++)
10751 {
10752 parse_VkImageView("pAttachments", obj_pAttachments_arr[i], const_cast<VkImageView &>((o.pAttachments[i])));
10753 }
10754 }
10755
parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceUniformBufferStandardLayoutFeatures & o)10756 static void parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
10757 const char *s, Json::Value &obj, VkPhysicalDeviceUniformBufferStandardLayoutFeatures &o)
10758 {
10759
10760 parse_VkStructureType("sType", obj["sType"], (o.sType));
10761
10762 o.pNext = (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)parsePNextChain(obj);
10763
10764 parse_VkBool32("uniformBufferStandardLayout", obj["uniformBufferStandardLayout"], (o.uniformBufferStandardLayout));
10765 }
10766
parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures & o)10767 static void parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
10768 const char *s, Json::Value &obj, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &o)
10769 {
10770
10771 parse_VkStructureType("sType", obj["sType"], (o.sType));
10772
10773 o.pNext = (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *)parsePNextChain(obj);
10774
10775 parse_VkBool32("shaderSubgroupExtendedTypes", obj["shaderSubgroupExtendedTypes"], (o.shaderSubgroupExtendedTypes));
10776 }
10777
parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures & o)10778 static void parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
10779 const char *s, Json::Value &obj, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &o)
10780 {
10781
10782 parse_VkStructureType("sType", obj["sType"], (o.sType));
10783
10784 o.pNext = (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)parsePNextChain(obj);
10785
10786 parse_VkBool32("separateDepthStencilLayouts", obj["separateDepthStencilLayouts"], (o.separateDepthStencilLayouts));
10787 }
10788
parse_VkAttachmentReferenceStencilLayout(const char * s,Json::Value & obj,VkAttachmentReferenceStencilLayout & o)10789 static void parse_VkAttachmentReferenceStencilLayout(const char *s, Json::Value &obj,
10790 VkAttachmentReferenceStencilLayout &o)
10791 {
10792
10793 parse_VkStructureType("sType", obj["sType"], (o.sType));
10794
10795 o.pNext = (VkAttachmentReferenceStencilLayout *)parsePNextChain(obj);
10796
10797 parse_VkImageLayout("stencilLayout", obj["stencilLayout"], (o.stencilLayout));
10798 }
10799
parse_VkAttachmentDescriptionStencilLayout(const char * s,Json::Value & obj,VkAttachmentDescriptionStencilLayout & o)10800 static void parse_VkAttachmentDescriptionStencilLayout(const char *s, Json::Value &obj,
10801 VkAttachmentDescriptionStencilLayout &o)
10802 {
10803
10804 parse_VkStructureType("sType", obj["sType"], (o.sType));
10805
10806 o.pNext = (VkAttachmentDescriptionStencilLayout *)parsePNextChain(obj);
10807
10808 parse_VkImageLayout("stencilInitialLayout", obj["stencilInitialLayout"], (o.stencilInitialLayout));
10809
10810 parse_VkImageLayout("stencilFinalLayout", obj["stencilFinalLayout"], (o.stencilFinalLayout));
10811 }
10812
parse_VkPhysicalDeviceHostQueryResetFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceHostQueryResetFeatures & o)10813 static void parse_VkPhysicalDeviceHostQueryResetFeatures(const char *s, Json::Value &obj,
10814 VkPhysicalDeviceHostQueryResetFeatures &o)
10815 {
10816
10817 parse_VkStructureType("sType", obj["sType"], (o.sType));
10818
10819 o.pNext = (VkPhysicalDeviceHostQueryResetFeatures *)parsePNextChain(obj);
10820
10821 parse_VkBool32("hostQueryReset", obj["hostQueryReset"], (o.hostQueryReset));
10822 }
10823
parse_VkPhysicalDeviceTimelineSemaphoreFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceTimelineSemaphoreFeatures & o)10824 static void parse_VkPhysicalDeviceTimelineSemaphoreFeatures(const char *s, Json::Value &obj,
10825 VkPhysicalDeviceTimelineSemaphoreFeatures &o)
10826 {
10827
10828 parse_VkStructureType("sType", obj["sType"], (o.sType));
10829
10830 o.pNext = (VkPhysicalDeviceTimelineSemaphoreFeatures *)parsePNextChain(obj);
10831
10832 parse_VkBool32("timelineSemaphore", obj["timelineSemaphore"], (o.timelineSemaphore));
10833 }
10834
parse_VkPhysicalDeviceTimelineSemaphoreProperties(const char * s,Json::Value & obj,VkPhysicalDeviceTimelineSemaphoreProperties & o)10835 static void parse_VkPhysicalDeviceTimelineSemaphoreProperties(const char *s, Json::Value &obj,
10836 VkPhysicalDeviceTimelineSemaphoreProperties &o)
10837 {
10838
10839 parse_VkStructureType("sType", obj["sType"], (o.sType));
10840
10841 o.pNext = (VkPhysicalDeviceTimelineSemaphoreProperties *)parsePNextChain(obj);
10842
10843 parse_uint64_t("maxTimelineSemaphoreValueDifference", obj["maxTimelineSemaphoreValueDifference"],
10844 (o.maxTimelineSemaphoreValueDifference));
10845 }
10846
parse_VkSemaphoreTypeCreateInfo(const char * s,Json::Value & obj,VkSemaphoreTypeCreateInfo & o)10847 static void parse_VkSemaphoreTypeCreateInfo(const char *s, Json::Value &obj, VkSemaphoreTypeCreateInfo &o)
10848 {
10849
10850 parse_VkStructureType("sType", obj["sType"], (o.sType));
10851
10852 o.pNext = (VkSemaphoreTypeCreateInfo *)parsePNextChain(obj);
10853
10854 parse_VkSemaphoreType("semaphoreType", obj["semaphoreType"], (o.semaphoreType));
10855
10856 parse_uint64_t("initialValue", obj["initialValue"], (o.initialValue));
10857 }
10858
parse_VkTimelineSemaphoreSubmitInfo(const char * s,Json::Value & obj,VkTimelineSemaphoreSubmitInfo & o)10859 static void parse_VkTimelineSemaphoreSubmitInfo(const char *s, Json::Value &obj, VkTimelineSemaphoreSubmitInfo &o)
10860 {
10861
10862 parse_VkStructureType("sType", obj["sType"], (o.sType));
10863
10864 o.pNext = (VkTimelineSemaphoreSubmitInfo *)parsePNextChain(obj);
10865
10866 parse_uint32_t("waitSemaphoreValueCount", obj["waitSemaphoreValueCount"], (o.waitSemaphoreValueCount));
10867
10868 parse_uint32_t("signalSemaphoreValueCount", obj["signalSemaphoreValueCount"], (o.signalSemaphoreValueCount));
10869 }
10870
parse_VkSemaphoreWaitInfo(const char * s,Json::Value & obj,VkSemaphoreWaitInfo & o)10871 static void parse_VkSemaphoreWaitInfo(const char *s, Json::Value &obj, VkSemaphoreWaitInfo &o)
10872 {
10873
10874 parse_VkStructureType("sType", obj["sType"], (o.sType));
10875
10876 o.pNext = (VkSemaphoreWaitInfo *)parsePNextChain(obj);
10877
10878 parse_VkSemaphoreWaitFlags("flags", obj["flags"], (o.flags));
10879
10880 parse_uint32_t("semaphoreCount", obj["semaphoreCount"], (o.semaphoreCount));
10881
10882 (o.pSemaphores) = (VkSemaphore *)s_globalMem.allocate((o.semaphoreCount), sizeof(VkSemaphore));
10883 Json::Value &obj_pSemaphores_arr = obj["pSemaphores"];
10884 for (unsigned int i = 0; i < obj_pSemaphores_arr.size(); i++)
10885 {
10886 parse_VkSemaphore("pSemaphores", obj_pSemaphores_arr[i], const_cast<VkSemaphore &>((o.pSemaphores[i])));
10887 }
10888
10889 (o.pValues) = (uint64_t *)s_globalMem.allocate((o.semaphoreCount), sizeof(uint64_t));
10890 Json::Value &obj_pValues_arr = obj["pValues"];
10891 for (unsigned int i = 0; i < obj_pValues_arr.size(); i++)
10892 {
10893 parse_uint64_t("pValues", obj_pValues_arr[i], const_cast<uint64_t &>((o.pValues[i])));
10894 }
10895 }
10896
parse_VkSemaphoreSignalInfo(const char * s,Json::Value & obj,VkSemaphoreSignalInfo & o)10897 static void parse_VkSemaphoreSignalInfo(const char *s, Json::Value &obj, VkSemaphoreSignalInfo &o)
10898 {
10899
10900 parse_VkStructureType("sType", obj["sType"], (o.sType));
10901
10902 o.pNext = (VkSemaphoreSignalInfo *)parsePNextChain(obj);
10903
10904 parse_uint64_t("value", obj["value"], (o.value));
10905 }
10906
parse_VkPhysicalDeviceBufferDeviceAddressFeatures(const char * s,Json::Value & obj,VkPhysicalDeviceBufferDeviceAddressFeatures & o)10907 static void parse_VkPhysicalDeviceBufferDeviceAddressFeatures(const char *s, Json::Value &obj,
10908 VkPhysicalDeviceBufferDeviceAddressFeatures &o)
10909 {
10910
10911 parse_VkStructureType("sType", obj["sType"], (o.sType));
10912
10913 o.pNext = (VkPhysicalDeviceBufferDeviceAddressFeatures *)parsePNextChain(obj);
10914
10915 parse_VkBool32("bufferDeviceAddress", obj["bufferDeviceAddress"], (o.bufferDeviceAddress));
10916
10917 parse_VkBool32("bufferDeviceAddressCaptureReplay", obj["bufferDeviceAddressCaptureReplay"],
10918 (o.bufferDeviceAddressCaptureReplay));
10919
10920 parse_VkBool32("bufferDeviceAddressMultiDevice", obj["bufferDeviceAddressMultiDevice"],
10921 (o.bufferDeviceAddressMultiDevice));
10922 }
10923
parse_VkBufferDeviceAddressInfo(const char * s,Json::Value & obj,VkBufferDeviceAddressInfo & o)10924 static void parse_VkBufferDeviceAddressInfo(const char *s, Json::Value &obj, VkBufferDeviceAddressInfo &o)
10925 {
10926
10927 parse_VkStructureType("sType", obj["sType"], (o.sType));
10928
10929 o.pNext = (VkBufferDeviceAddressInfo *)parsePNextChain(obj);
10930 }
10931
parse_VkBufferOpaqueCaptureAddressCreateInfo(const char * s,Json::Value & obj,VkBufferOpaqueCaptureAddressCreateInfo & o)10932 static void parse_VkBufferOpaqueCaptureAddressCreateInfo(const char *s, Json::Value &obj,
10933 VkBufferOpaqueCaptureAddressCreateInfo &o)
10934 {
10935
10936 parse_VkStructureType("sType", obj["sType"], (o.sType));
10937
10938 o.pNext = (VkBufferOpaqueCaptureAddressCreateInfo *)parsePNextChain(obj);
10939
10940 parse_uint64_t("opaqueCaptureAddress", obj["opaqueCaptureAddress"], (o.opaqueCaptureAddress));
10941 }
10942
parse_VkMemoryOpaqueCaptureAddressAllocateInfo(const char * s,Json::Value & obj,VkMemoryOpaqueCaptureAddressAllocateInfo & o)10943 static void parse_VkMemoryOpaqueCaptureAddressAllocateInfo(const char *s, Json::Value &obj,
10944 VkMemoryOpaqueCaptureAddressAllocateInfo &o)
10945 {
10946
10947 parse_VkStructureType("sType", obj["sType"], (o.sType));
10948
10949 o.pNext = (VkMemoryOpaqueCaptureAddressAllocateInfo *)parsePNextChain(obj);
10950
10951 parse_uint64_t("opaqueCaptureAddress", obj["opaqueCaptureAddress"], (o.opaqueCaptureAddress));
10952 }
10953
parse_VkDeviceMemoryOpaqueCaptureAddressInfo(const char * s,Json::Value & obj,VkDeviceMemoryOpaqueCaptureAddressInfo & o)10954 static void parse_VkDeviceMemoryOpaqueCaptureAddressInfo(const char *s, Json::Value &obj,
10955 VkDeviceMemoryOpaqueCaptureAddressInfo &o)
10956 {
10957
10958 parse_VkStructureType("sType", obj["sType"], (o.sType));
10959
10960 o.pNext = (VkDeviceMemoryOpaqueCaptureAddressInfo *)parsePNextChain(obj);
10961 }
10962
10963 static std::map<std::string, int> VkFaultLevel_map = {
10964 std::make_pair("VK_FAULT_LEVEL_UNASSIGNED", 0),
10965 std::make_pair("VK_FAULT_LEVEL_CRITICAL", 1),
10966 std::make_pair("VK_FAULT_LEVEL_RECOVERABLE", 2),
10967 std::make_pair("VK_FAULT_LEVEL_WARNING", 3),
10968 };
parse_VkFaultLevel(const char * s,Json::Value & obj,VkFaultLevel & o)10969 static void parse_VkFaultLevel(const char *s, Json::Value &obj, VkFaultLevel &o)
10970 {
10971 std::string _res = obj.asString();
10972 o = (VkFaultLevel)VkFaultLevel_map[std::string(_res)];
10973 }
10974
10975 static std::map<std::string, int> VkFaultType_map = {
10976 std::make_pair("VK_FAULT_TYPE_INVALID", 0), std::make_pair("VK_FAULT_TYPE_UNASSIGNED", 1),
10977 std::make_pair("VK_FAULT_TYPE_IMPLEMENTATION", 2), std::make_pair("VK_FAULT_TYPE_SYSTEM", 3),
10978 std::make_pair("VK_FAULT_TYPE_PHYSICAL_DEVICE", 4), std::make_pair("VK_FAULT_TYPE_COMMAND_BUFFER_FULL", 5),
10979 std::make_pair("VK_FAULT_TYPE_INVALID_API_USAGE", 6),
10980 };
parse_VkFaultType(const char * s,Json::Value & obj,VkFaultType & o)10981 static void parse_VkFaultType(const char *s, Json::Value &obj, VkFaultType &o)
10982 {
10983 std::string _res = obj.asString();
10984 o = (VkFaultType)VkFaultType_map[std::string(_res)];
10985 }
10986
10987 static std::map<std::string, int> VkFaultQueryBehavior_map = {
10988 std::make_pair("VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS", 0),
10989 };
parse_VkFaultQueryBehavior(const char * s,Json::Value & obj,VkFaultQueryBehavior & o)10990 static void parse_VkFaultQueryBehavior(const char *s, Json::Value &obj, VkFaultQueryBehavior &o)
10991 {
10992 std::string _res = obj.asString();
10993 o = (VkFaultQueryBehavior)VkFaultQueryBehavior_map[std::string(_res)];
10994 }
10995
10996 static std::map<std::string, int> VkPipelineMatchControl_map = {
10997 std::make_pair("VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH", 0),
10998 };
parse_VkPipelineMatchControl(const char * s,Json::Value & obj,VkPipelineMatchControl & o)10999 static void parse_VkPipelineMatchControl(const char *s, Json::Value &obj, VkPipelineMatchControl &o)
11000 {
11001 std::string _res = obj.asString();
11002 o = (VkPipelineMatchControl)VkPipelineMatchControl_map[std::string(_res)];
11003 }
11004
11005 static std::map<std::string, int> VkPipelineCacheValidationVersion_map = {
11006 std::make_pair("VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE", 1),
11007 };
parse_VkPipelineCacheValidationVersion(const char * s,Json::Value & obj,VkPipelineCacheValidationVersion & o)11008 static void parse_VkPipelineCacheValidationVersion(const char *s, Json::Value &obj, VkPipelineCacheValidationVersion &o)
11009 {
11010 std::string _res = obj.asString();
11011 o = (VkPipelineCacheValidationVersion)VkPipelineCacheValidationVersion_map[std::string(_res)];
11012 }
11013
parse_VkPhysicalDeviceVulkanSC10Features(const char * s,Json::Value & obj,VkPhysicalDeviceVulkanSC10Features & o)11014 static void parse_VkPhysicalDeviceVulkanSC10Features(const char *s, Json::Value &obj,
11015 VkPhysicalDeviceVulkanSC10Features &o)
11016 {
11017
11018 parse_VkStructureType("sType", obj["sType"], (o.sType));
11019
11020 o.pNext = (VkPhysicalDeviceVulkanSC10Features *)parsePNextChain(obj);
11021
11022 parse_VkBool32("shaderAtomicInstructions", obj["shaderAtomicInstructions"], (o.shaderAtomicInstructions));
11023 }
11024
parse_VkPhysicalDeviceVulkanSC10Properties(const char * s,Json::Value & obj,VkPhysicalDeviceVulkanSC10Properties & o)11025 static void parse_VkPhysicalDeviceVulkanSC10Properties(const char *s, Json::Value &obj,
11026 VkPhysicalDeviceVulkanSC10Properties &o)
11027 {
11028
11029 parse_VkStructureType("sType", obj["sType"], (o.sType));
11030
11031 o.pNext = (VkPhysicalDeviceVulkanSC10Properties *)parsePNextChain(obj);
11032
11033 parse_VkBool32("deviceNoDynamicHostAllocations", obj["deviceNoDynamicHostAllocations"],
11034 (o.deviceNoDynamicHostAllocations));
11035
11036 parse_VkBool32("deviceDestroyFreesMemory", obj["deviceDestroyFreesMemory"], (o.deviceDestroyFreesMemory));
11037
11038 parse_VkBool32("commandPoolMultipleCommandBuffersRecording", obj["commandPoolMultipleCommandBuffersRecording"],
11039 (o.commandPoolMultipleCommandBuffersRecording));
11040
11041 parse_VkBool32("commandPoolResetCommandBuffer", obj["commandPoolResetCommandBuffer"],
11042 (o.commandPoolResetCommandBuffer));
11043
11044 parse_VkBool32("commandBufferSimultaneousUse", obj["commandBufferSimultaneousUse"],
11045 (o.commandBufferSimultaneousUse));
11046
11047 parse_VkBool32("secondaryCommandBufferNullOrImagelessFramebuffer",
11048 obj["secondaryCommandBufferNullOrImagelessFramebuffer"],
11049 (o.secondaryCommandBufferNullOrImagelessFramebuffer));
11050
11051 parse_VkBool32("recycleDescriptorSetMemory", obj["recycleDescriptorSetMemory"], (o.recycleDescriptorSetMemory));
11052
11053 parse_VkBool32("recyclePipelineMemory", obj["recyclePipelineMemory"], (o.recyclePipelineMemory));
11054
11055 parse_uint32_t("maxRenderPassSubpasses", obj["maxRenderPassSubpasses"], (o.maxRenderPassSubpasses));
11056
11057 parse_uint32_t("maxRenderPassDependencies", obj["maxRenderPassDependencies"], (o.maxRenderPassDependencies));
11058
11059 parse_uint32_t("maxSubpassInputAttachments", obj["maxSubpassInputAttachments"], (o.maxSubpassInputAttachments));
11060
11061 parse_uint32_t("maxSubpassPreserveAttachments", obj["maxSubpassPreserveAttachments"],
11062 (o.maxSubpassPreserveAttachments));
11063
11064 parse_uint32_t("maxFramebufferAttachments", obj["maxFramebufferAttachments"], (o.maxFramebufferAttachments));
11065
11066 parse_uint32_t("maxDescriptorSetLayoutBindings", obj["maxDescriptorSetLayoutBindings"],
11067 (o.maxDescriptorSetLayoutBindings));
11068
11069 parse_uint32_t("maxQueryFaultCount", obj["maxQueryFaultCount"], (o.maxQueryFaultCount));
11070
11071 parse_uint32_t("maxCallbackFaultCount", obj["maxCallbackFaultCount"], (o.maxCallbackFaultCount));
11072
11073 parse_uint32_t("maxCommandPoolCommandBuffers", obj["maxCommandPoolCommandBuffers"],
11074 (o.maxCommandPoolCommandBuffers));
11075
11076 parse_VkDeviceSize("maxCommandBufferSize", obj["maxCommandBufferSize"], (o.maxCommandBufferSize));
11077 }
11078
parse_VkPipelinePoolSize(const char * s,Json::Value & obj,VkPipelinePoolSize & o)11079 static void parse_VkPipelinePoolSize(const char *s, Json::Value &obj, VkPipelinePoolSize &o)
11080 {
11081
11082 parse_VkStructureType("sType", obj["sType"], (o.sType));
11083
11084 o.pNext = (VkPipelinePoolSize *)parsePNextChain(obj);
11085
11086 parse_VkDeviceSize("poolEntrySize", obj["poolEntrySize"], (o.poolEntrySize));
11087
11088 parse_uint32_t("poolEntryCount", obj["poolEntryCount"], (o.poolEntryCount));
11089 }
11090
parse_VkDeviceObjectReservationCreateInfo(const char * s,Json::Value & obj,VkDeviceObjectReservationCreateInfo & o)11091 static void parse_VkDeviceObjectReservationCreateInfo(const char *s, Json::Value &obj,
11092 VkDeviceObjectReservationCreateInfo &o)
11093 {
11094
11095 parse_VkStructureType("sType", obj["sType"], (o.sType));
11096
11097 o.pNext = (VkDeviceObjectReservationCreateInfo *)parsePNextChain(obj);
11098
11099 parse_uint32_t("pipelineCacheCreateInfoCount", obj["pipelineCacheCreateInfoCount"],
11100 (o.pipelineCacheCreateInfoCount));
11101
11102 (o.pPipelineCacheCreateInfos) = (VkPipelineCacheCreateInfo *)s_globalMem.allocate(
11103 (o.pipelineCacheCreateInfoCount), sizeof(VkPipelineCacheCreateInfo));
11104 Json::Value &obj_pPipelineCacheCreateInfos = obj["pPipelineCacheCreateInfos"];
11105 if (obj_pPipelineCacheCreateInfos.size() == 0)
11106 (o.pPipelineCacheCreateInfos) = nullptr;
11107 else
11108 {
11109 for (unsigned int i = 0; i < (o.pipelineCacheCreateInfoCount); i++)
11110 {
11111 parse_VkPipelineCacheCreateInfo("pPipelineCacheCreateInfos", obj_pPipelineCacheCreateInfos[i],
11112 const_cast<VkPipelineCacheCreateInfo &>((o.pPipelineCacheCreateInfos[i])));
11113 }
11114 }
11115
11116 parse_uint32_t("pipelinePoolSizeCount", obj["pipelinePoolSizeCount"], (o.pipelinePoolSizeCount));
11117
11118 (o.pPipelinePoolSizes) =
11119 (VkPipelinePoolSize *)s_globalMem.allocate((o.pipelinePoolSizeCount), sizeof(VkPipelinePoolSize));
11120 Json::Value &obj_pPipelinePoolSizes = obj["pPipelinePoolSizes"];
11121 if (obj_pPipelinePoolSizes.size() == 0)
11122 (o.pPipelinePoolSizes) = nullptr;
11123 else
11124 {
11125 for (unsigned int i = 0; i < (o.pipelinePoolSizeCount); i++)
11126 {
11127 parse_VkPipelinePoolSize("pPipelinePoolSizes", obj_pPipelinePoolSizes[i],
11128 const_cast<VkPipelinePoolSize &>((o.pPipelinePoolSizes[i])));
11129 }
11130 }
11131
11132 parse_uint32_t("semaphoreRequestCount", obj["semaphoreRequestCount"], (o.semaphoreRequestCount));
11133
11134 parse_uint32_t("commandBufferRequestCount", obj["commandBufferRequestCount"], (o.commandBufferRequestCount));
11135
11136 parse_uint32_t("fenceRequestCount", obj["fenceRequestCount"], (o.fenceRequestCount));
11137
11138 parse_uint32_t("deviceMemoryRequestCount", obj["deviceMemoryRequestCount"], (o.deviceMemoryRequestCount));
11139
11140 parse_uint32_t("bufferRequestCount", obj["bufferRequestCount"], (o.bufferRequestCount));
11141
11142 parse_uint32_t("imageRequestCount", obj["imageRequestCount"], (o.imageRequestCount));
11143
11144 parse_uint32_t("eventRequestCount", obj["eventRequestCount"], (o.eventRequestCount));
11145
11146 parse_uint32_t("queryPoolRequestCount", obj["queryPoolRequestCount"], (o.queryPoolRequestCount));
11147
11148 parse_uint32_t("bufferViewRequestCount", obj["bufferViewRequestCount"], (o.bufferViewRequestCount));
11149
11150 parse_uint32_t("imageViewRequestCount", obj["imageViewRequestCount"], (o.imageViewRequestCount));
11151
11152 parse_uint32_t("layeredImageViewRequestCount", obj["layeredImageViewRequestCount"],
11153 (o.layeredImageViewRequestCount));
11154
11155 parse_uint32_t("pipelineCacheRequestCount", obj["pipelineCacheRequestCount"], (o.pipelineCacheRequestCount));
11156
11157 parse_uint32_t("pipelineLayoutRequestCount", obj["pipelineLayoutRequestCount"], (o.pipelineLayoutRequestCount));
11158
11159 parse_uint32_t("renderPassRequestCount", obj["renderPassRequestCount"], (o.renderPassRequestCount));
11160
11161 parse_uint32_t("graphicsPipelineRequestCount", obj["graphicsPipelineRequestCount"],
11162 (o.graphicsPipelineRequestCount));
11163
11164 parse_uint32_t("computePipelineRequestCount", obj["computePipelineRequestCount"], (o.computePipelineRequestCount));
11165
11166 parse_uint32_t("descriptorSetLayoutRequestCount", obj["descriptorSetLayoutRequestCount"],
11167 (o.descriptorSetLayoutRequestCount));
11168
11169 parse_uint32_t("samplerRequestCount", obj["samplerRequestCount"], (o.samplerRequestCount));
11170
11171 parse_uint32_t("descriptorPoolRequestCount", obj["descriptorPoolRequestCount"], (o.descriptorPoolRequestCount));
11172
11173 parse_uint32_t("descriptorSetRequestCount", obj["descriptorSetRequestCount"], (o.descriptorSetRequestCount));
11174
11175 parse_uint32_t("framebufferRequestCount", obj["framebufferRequestCount"], (o.framebufferRequestCount));
11176
11177 parse_uint32_t("commandPoolRequestCount", obj["commandPoolRequestCount"], (o.commandPoolRequestCount));
11178
11179 parse_uint32_t("samplerYcbcrConversionRequestCount", obj["samplerYcbcrConversionRequestCount"],
11180 (o.samplerYcbcrConversionRequestCount));
11181
11182 parse_uint32_t("surfaceRequestCount", obj["surfaceRequestCount"], (o.surfaceRequestCount));
11183
11184 parse_uint32_t("swapchainRequestCount", obj["swapchainRequestCount"], (o.swapchainRequestCount));
11185
11186 parse_uint32_t("displayModeRequestCount", obj["displayModeRequestCount"], (o.displayModeRequestCount));
11187
11188 parse_uint32_t("subpassDescriptionRequestCount", obj["subpassDescriptionRequestCount"],
11189 (o.subpassDescriptionRequestCount));
11190
11191 parse_uint32_t("attachmentDescriptionRequestCount", obj["attachmentDescriptionRequestCount"],
11192 (o.attachmentDescriptionRequestCount));
11193
11194 parse_uint32_t("descriptorSetLayoutBindingRequestCount", obj["descriptorSetLayoutBindingRequestCount"],
11195 (o.descriptorSetLayoutBindingRequestCount));
11196
11197 parse_uint32_t("descriptorSetLayoutBindingLimit", obj["descriptorSetLayoutBindingLimit"],
11198 (o.descriptorSetLayoutBindingLimit));
11199
11200 parse_uint32_t("maxImageViewMipLevels", obj["maxImageViewMipLevels"], (o.maxImageViewMipLevels));
11201
11202 parse_uint32_t("maxImageViewArrayLayers", obj["maxImageViewArrayLayers"], (o.maxImageViewArrayLayers));
11203
11204 parse_uint32_t("maxLayeredImageViewMipLevels", obj["maxLayeredImageViewMipLevels"],
11205 (o.maxLayeredImageViewMipLevels));
11206
11207 parse_uint32_t("maxOcclusionQueriesPerPool", obj["maxOcclusionQueriesPerPool"], (o.maxOcclusionQueriesPerPool));
11208
11209 parse_uint32_t("maxPipelineStatisticsQueriesPerPool", obj["maxPipelineStatisticsQueriesPerPool"],
11210 (o.maxPipelineStatisticsQueriesPerPool));
11211
11212 parse_uint32_t("maxTimestampQueriesPerPool", obj["maxTimestampQueriesPerPool"], (o.maxTimestampQueriesPerPool));
11213
11214 parse_uint32_t("maxImmutableSamplersPerDescriptorSetLayout", obj["maxImmutableSamplersPerDescriptorSetLayout"],
11215 (o.maxImmutableSamplersPerDescriptorSetLayout));
11216 }
11217
parse_VkCommandPoolMemoryReservationCreateInfo(const char * s,Json::Value & obj,VkCommandPoolMemoryReservationCreateInfo & o)11218 static void parse_VkCommandPoolMemoryReservationCreateInfo(const char *s, Json::Value &obj,
11219 VkCommandPoolMemoryReservationCreateInfo &o)
11220 {
11221
11222 parse_VkStructureType("sType", obj["sType"], (o.sType));
11223
11224 o.pNext = (VkCommandPoolMemoryReservationCreateInfo *)parsePNextChain(obj);
11225
11226 parse_VkDeviceSize("commandPoolReservedSize", obj["commandPoolReservedSize"], (o.commandPoolReservedSize));
11227
11228 parse_uint32_t("commandPoolMaxCommandBuffers", obj["commandPoolMaxCommandBuffers"],
11229 (o.commandPoolMaxCommandBuffers));
11230 }
11231
parse_VkCommandPoolMemoryConsumption(const char * s,Json::Value & obj,VkCommandPoolMemoryConsumption & o)11232 static void parse_VkCommandPoolMemoryConsumption(const char *s, Json::Value &obj, VkCommandPoolMemoryConsumption &o)
11233 {
11234
11235 parse_VkStructureType("sType", obj["sType"], (o.sType));
11236
11237 o.pNext = (VkCommandPoolMemoryConsumption *)parsePNextChain(obj);
11238
11239 parse_VkDeviceSize("commandPoolAllocated", obj["commandPoolAllocated"], (o.commandPoolAllocated));
11240
11241 parse_VkDeviceSize("commandPoolReservedSize", obj["commandPoolReservedSize"], (o.commandPoolReservedSize));
11242
11243 parse_VkDeviceSize("commandBufferAllocated", obj["commandBufferAllocated"], (o.commandBufferAllocated));
11244 }
11245
parse_VkFaultData(const char * s,Json::Value & obj,VkFaultData & o)11246 static void parse_VkFaultData(const char *s, Json::Value &obj, VkFaultData &o)
11247 {
11248
11249 parse_VkStructureType("sType", obj["sType"], (o.sType));
11250
11251 o.pNext = (VkFaultData *)parsePNextChain(obj);
11252
11253 parse_VkFaultLevel("faultLevel", obj["faultLevel"], (o.faultLevel));
11254
11255 parse_VkFaultType("faultType", obj["faultType"], (o.faultType));
11256 }
11257
parse_VkFaultCallbackInfo(const char * s,Json::Value & obj,VkFaultCallbackInfo & o)11258 static void parse_VkFaultCallbackInfo(const char *s, Json::Value &obj, VkFaultCallbackInfo &o)
11259 {
11260
11261 parse_VkStructureType("sType", obj["sType"], (o.sType));
11262
11263 o.pNext = (VkFaultCallbackInfo *)parsePNextChain(obj);
11264
11265 parse_uint32_t("faultCount", obj["faultCount"], (o.faultCount));
11266
11267 (o.pFaults) = (VkFaultData *)s_globalMem.allocate((o.faultCount), sizeof(VkFaultData));
11268 Json::Value &obj_pFaults = obj["pFaults"];
11269 if (obj_pFaults.size() == 0)
11270 (o.pFaults) = nullptr;
11271 else
11272 {
11273 for (unsigned int i = 0; i < (o.faultCount); i++)
11274 {
11275 parse_VkFaultData("pFaults", obj_pFaults[i], const_cast<VkFaultData &>((o.pFaults[i])));
11276 }
11277 }
11278
11279 /** Note: Ignoring function pointer (PFN_vkFaultCallbackFunction). **/
11280 }
11281
parse_VkPipelineOfflineCreateInfo(const char * s,Json::Value & obj,VkPipelineOfflineCreateInfo & o)11282 static void parse_VkPipelineOfflineCreateInfo(const char *s, Json::Value &obj, VkPipelineOfflineCreateInfo &o)
11283 {
11284
11285 parse_VkStructureType("sType", obj["sType"], (o.sType));
11286
11287 o.pNext = (VkPipelineOfflineCreateInfo *)parsePNextChain(obj);
11288
11289 Json::Value &obj_pipelineIdentifier_arr = obj["pipelineIdentifier"];
11290 for (unsigned int i = 0; i < obj_pipelineIdentifier_arr.size(); i++)
11291 {
11292 parse_uint8_t("pipelineIdentifier", obj_pipelineIdentifier_arr[i],
11293 const_cast<uint8_t &>((o.pipelineIdentifier[i])));
11294 }
11295
11296 parse_VkPipelineMatchControl("matchControl", obj["matchControl"], (o.matchControl));
11297
11298 parse_VkDeviceSize("poolEntrySize", obj["poolEntrySize"], (o.poolEntrySize));
11299 }
11300
parse_VkPipelineCacheStageValidationIndexEntry(const char * s,Json::Value & obj,VkPipelineCacheStageValidationIndexEntry & o)11301 static void parse_VkPipelineCacheStageValidationIndexEntry(const char *s, Json::Value &obj,
11302 VkPipelineCacheStageValidationIndexEntry &o)
11303 {
11304
11305 parse_uint64_t("codeSize", obj["codeSize"], (o.codeSize));
11306
11307 parse_uint64_t("codeOffset", obj["codeOffset"], (o.codeOffset));
11308 }
11309
parse_VkPipelineCacheSafetyCriticalIndexEntry(const char * s,Json::Value & obj,VkPipelineCacheSafetyCriticalIndexEntry & o)11310 static void parse_VkPipelineCacheSafetyCriticalIndexEntry(const char *s, Json::Value &obj,
11311 VkPipelineCacheSafetyCriticalIndexEntry &o)
11312 {
11313
11314 Json::Value &obj_pipelineIdentifier_arr = obj["pipelineIdentifier"];
11315 for (unsigned int i = 0; i < obj_pipelineIdentifier_arr.size(); i++)
11316 {
11317 parse_uint8_t("pipelineIdentifier", obj_pipelineIdentifier_arr[i],
11318 const_cast<uint8_t &>((o.pipelineIdentifier[i])));
11319 }
11320
11321 parse_uint64_t("pipelineMemorySize", obj["pipelineMemorySize"], (o.pipelineMemorySize));
11322
11323 parse_uint64_t("jsonSize", obj["jsonSize"], (o.jsonSize));
11324
11325 parse_uint64_t("jsonOffset", obj["jsonOffset"], (o.jsonOffset));
11326
11327 parse_uint32_t("stageIndexCount", obj["stageIndexCount"], (o.stageIndexCount));
11328
11329 parse_uint32_t("stageIndexStride", obj["stageIndexStride"], (o.stageIndexStride));
11330
11331 parse_uint64_t("stageIndexOffset", obj["stageIndexOffset"], (o.stageIndexOffset));
11332 }
11333
parse_VkPipelineCacheHeaderVersionSafetyCriticalOne(const char * s,Json::Value & obj,VkPipelineCacheHeaderVersionSafetyCriticalOne & o)11334 static void parse_VkPipelineCacheHeaderVersionSafetyCriticalOne(const char *s, Json::Value &obj,
11335 VkPipelineCacheHeaderVersionSafetyCriticalOne &o)
11336 {
11337
11338 parse_VkPipelineCacheHeaderVersionOne("headerVersionOne", obj["headerVersionOne"], (o.headerVersionOne));
11339
11340 parse_VkPipelineCacheValidationVersion("validationVersion", obj["validationVersion"], (o.validationVersion));
11341
11342 parse_uint32_t("implementationData", obj["implementationData"], (o.implementationData));
11343
11344 parse_uint32_t("pipelineIndexCount", obj["pipelineIndexCount"], (o.pipelineIndexCount));
11345
11346 parse_uint32_t("pipelineIndexStride", obj["pipelineIndexStride"], (o.pipelineIndexStride));
11347
11348 parse_uint64_t("pipelineIndexOffset", obj["pipelineIndexOffset"], (o.pipelineIndexOffset));
11349 }
11350
parse_VkSurfaceKHR(const char * s,Json::Value & obj,VkSurfaceKHR & o)11351 static void parse_VkSurfaceKHR(const char *s, Json::Value &obj, VkSurfaceKHR &o)
11352 {
11353 // std::string _res = obj.asString();
11354 }
11355
11356 static std::map<std::string, int> VkSurfaceTransformFlagBitsKHR_map = {
11357 std::make_pair("VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR", 1UL << 0),
11358 std::make_pair("VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR", 1UL << 1),
11359 std::make_pair("VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR", 1UL << 2),
11360 std::make_pair("VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR", 1UL << 3),
11361 std::make_pair("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR", 1UL << 4),
11362 std::make_pair("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR", 1UL << 5),
11363 std::make_pair("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR", 1UL << 6),
11364 std::make_pair("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR", 1UL << 7),
11365 std::make_pair("VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR", 1UL << 8),
11366 };
parse_VkSurfaceTransformFlagBitsKHR(const char * s,Json::Value & obj,VkSurfaceTransformFlagBitsKHR & o)11367 static void parse_VkSurfaceTransformFlagBitsKHR(const char *s, Json::Value &obj, VkSurfaceTransformFlagBitsKHR &o)
11368 {
11369 std::string _res = obj.asString();
11370 o = (VkSurfaceTransformFlagBitsKHR)VkSurfaceTransformFlagBitsKHR_map[std::string(_res)];
11371 }
11372
11373 static std::map<std::string, int> VkPresentModeKHR_map = {
11374 std::make_pair("VK_PRESENT_MODE_IMMEDIATE_KHR", 0),
11375 std::make_pair("VK_PRESENT_MODE_MAILBOX_KHR", 1),
11376 std::make_pair("VK_PRESENT_MODE_FIFO_KHR", 2),
11377 std::make_pair("VK_PRESENT_MODE_FIFO_RELAXED_KHR", 3),
11378 std::make_pair("VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR", 1000111000),
11379 std::make_pair("VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR", 1000111001),
11380 };
parse_VkPresentModeKHR(const char * s,Json::Value & obj,VkPresentModeKHR & o)11381 static void parse_VkPresentModeKHR(const char *s, Json::Value &obj, VkPresentModeKHR &o)
11382 {
11383 std::string _res = obj.asString();
11384 o = (VkPresentModeKHR)VkPresentModeKHR_map[std::string(_res)];
11385 }
11386
11387 static std::map<std::string, int> VkColorSpaceKHR_map = {
11388 std::make_pair("VK_COLOR_SPACE_SRGB_NONLINEAR_KHR", 0),
11389 std::make_pair("VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT", 1000104001),
11390 std::make_pair("VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT", 1000104002),
11391 std::make_pair("VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT", 1000104003),
11392 std::make_pair("VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT", 1000104004),
11393 std::make_pair("VK_COLOR_SPACE_BT709_LINEAR_EXT", 1000104005),
11394 std::make_pair("VK_COLOR_SPACE_BT709_NONLINEAR_EXT", 1000104006),
11395 std::make_pair("VK_COLOR_SPACE_BT2020_LINEAR_EXT", 1000104007),
11396 std::make_pair("VK_COLOR_SPACE_HDR10_ST2084_EXT", 1000104008),
11397 std::make_pair("VK_COLOR_SPACE_DOLBYVISION_EXT", 1000104009),
11398 std::make_pair("VK_COLOR_SPACE_HDR10_HLG_EXT", 1000104010),
11399 std::make_pair("VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT", 1000104011),
11400 std::make_pair("VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT", 1000104012),
11401 std::make_pair("VK_COLOR_SPACE_PASS_THROUGH_EXT", 1000104013),
11402 std::make_pair("VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT", 1000104014),
11403 std::make_pair("VK_COLOR_SPACE_DISPLAY_NATIVE_AMD", 1000213000),
11404 };
parse_VkColorSpaceKHR(const char * s,Json::Value & obj,VkColorSpaceKHR & o)11405 static void parse_VkColorSpaceKHR(const char *s, Json::Value &obj, VkColorSpaceKHR &o)
11406 {
11407 std::string _res = obj.asString();
11408 o = (VkColorSpaceKHR)VkColorSpaceKHR_map[std::string(_res)];
11409 }
11410
11411 static std::map<std::string, int> VkCompositeAlphaFlagBitsKHR_map = {
11412 std::make_pair("VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR", 1UL << 0),
11413 std::make_pair("VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR", 1UL << 1),
11414 std::make_pair("VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR", 1UL << 2),
11415 std::make_pair("VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR", 1UL << 3),
11416 };
parse_VkCompositeAlphaFlagBitsKHR(const char * s,Json::Value & obj,VkCompositeAlphaFlagBitsKHR & o)11417 static void parse_VkCompositeAlphaFlagBitsKHR(const char *s, Json::Value &obj, VkCompositeAlphaFlagBitsKHR &o)
11418 {
11419 std::string _res = obj.asString();
11420 o = (VkCompositeAlphaFlagBitsKHR)VkCompositeAlphaFlagBitsKHR_map[std::string(_res)];
11421 }
11422
parse_VkCompositeAlphaFlagsKHR(const char * s,Json::Value & obj,VkCompositeAlphaFlagsKHR & o)11423 static void parse_VkCompositeAlphaFlagsKHR(const char *s, Json::Value &obj, VkCompositeAlphaFlagsKHR &o)
11424 {
11425 o = (VkCompositeAlphaFlagsKHR)0;
11426 std::string _res = obj.asString();
11427 std::vector<std::string> bitmasks;
11428 std::istringstream inputStream(_res);
11429 std::string tempStr;
11430 while (getline(inputStream, tempStr, '|'))
11431 {
11432 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
11433 bitmasks.push_back(tempStr);
11434 }
11435 for (auto &it : bitmasks)
11436 {
11437 o |= (VkCompositeAlphaFlagBitsKHR)VkCompositeAlphaFlagBitsKHR_map[it];
11438 }
11439 }
11440
parse_VkSurfaceTransformFlagsKHR(const char * s,Json::Value & obj,VkSurfaceTransformFlagsKHR & o)11441 static void parse_VkSurfaceTransformFlagsKHR(const char *s, Json::Value &obj, VkSurfaceTransformFlagsKHR &o)
11442 {
11443 o = (VkSurfaceTransformFlagsKHR)0;
11444 std::string _res = obj.asString();
11445 std::vector<std::string> bitmasks;
11446 std::istringstream inputStream(_res);
11447 std::string tempStr;
11448 while (getline(inputStream, tempStr, '|'))
11449 {
11450 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
11451 bitmasks.push_back(tempStr);
11452 }
11453 for (auto &it : bitmasks)
11454 {
11455 o |= (VkSurfaceTransformFlagBitsKHR)VkSurfaceTransformFlagBitsKHR_map[it];
11456 }
11457 }
11458
parse_VkSurfaceCapabilitiesKHR(const char * s,Json::Value & obj,VkSurfaceCapabilitiesKHR & o)11459 static void parse_VkSurfaceCapabilitiesKHR(const char *s, Json::Value &obj, VkSurfaceCapabilitiesKHR &o)
11460 {
11461
11462 parse_uint32_t("minImageCount", obj["minImageCount"], (o.minImageCount));
11463
11464 parse_uint32_t("maxImageCount", obj["maxImageCount"], (o.maxImageCount));
11465
11466 parse_VkExtent2D("currentExtent", obj["currentExtent"], (o.currentExtent));
11467
11468 parse_VkExtent2D("minImageExtent", obj["minImageExtent"], (o.minImageExtent));
11469
11470 parse_VkExtent2D("maxImageExtent", obj["maxImageExtent"], (o.maxImageExtent));
11471
11472 parse_uint32_t("maxImageArrayLayers", obj["maxImageArrayLayers"], (o.maxImageArrayLayers));
11473
11474 parse_VkSurfaceTransformFlagsKHR("supportedTransforms", obj["supportedTransforms"], (o.supportedTransforms));
11475
11476 parse_VkSurfaceTransformFlagBitsKHR("currentTransform", obj["currentTransform"], (o.currentTransform));
11477
11478 parse_VkCompositeAlphaFlagsKHR("supportedCompositeAlpha", obj["supportedCompositeAlpha"],
11479 (o.supportedCompositeAlpha));
11480
11481 parse_VkImageUsageFlags("supportedUsageFlags", obj["supportedUsageFlags"], (o.supportedUsageFlags));
11482 }
11483
parse_VkSurfaceFormatKHR(const char * s,Json::Value & obj,VkSurfaceFormatKHR & o)11484 static void parse_VkSurfaceFormatKHR(const char *s, Json::Value &obj, VkSurfaceFormatKHR &o)
11485 {
11486
11487 parse_VkFormat("format", obj["format"], (o.format));
11488
11489 parse_VkColorSpaceKHR("colorSpace", obj["colorSpace"], (o.colorSpace));
11490 }
11491
parse_VkSwapchainKHR(const char * s,Json::Value & obj,VkSwapchainKHR & o)11492 static void parse_VkSwapchainKHR(const char *s, Json::Value &obj, VkSwapchainKHR &o)
11493 {
11494 // std::string _res = obj.asString();
11495 }
11496
11497 static std::map<std::string, int> VkSwapchainCreateFlagBitsKHR_map = {
11498 std::make_pair("VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR", 1UL << 0),
11499 std::make_pair("VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR", 1UL << 1),
11500 std::make_pair("VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR", 1UL << 0),
11501 std::make_pair("VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR", 1UL << 2),
11502 };
parse_VkSwapchainCreateFlagBitsKHR(const char * s,Json::Value & obj,VkSwapchainCreateFlagBitsKHR & o)11503 static void parse_VkSwapchainCreateFlagBitsKHR(const char *s, Json::Value &obj, VkSwapchainCreateFlagBitsKHR &o)
11504 {
11505 std::string _res = obj.asString();
11506 o = (VkSwapchainCreateFlagBitsKHR)VkSwapchainCreateFlagBitsKHR_map[std::string(_res)];
11507 }
11508
11509 static std::map<std::string, int> VkDeviceGroupPresentModeFlagBitsKHR_map = {
11510 std::make_pair("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR", 1UL << 0),
11511 std::make_pair("VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR", 1UL << 1),
11512 std::make_pair("VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR", 1UL << 2),
11513 std::make_pair("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR", 1UL << 3),
11514 };
parse_VkDeviceGroupPresentModeFlagBitsKHR(const char * s,Json::Value & obj,VkDeviceGroupPresentModeFlagBitsKHR & o)11515 static void parse_VkDeviceGroupPresentModeFlagBitsKHR(const char *s, Json::Value &obj,
11516 VkDeviceGroupPresentModeFlagBitsKHR &o)
11517 {
11518 std::string _res = obj.asString();
11519 o = (VkDeviceGroupPresentModeFlagBitsKHR)VkDeviceGroupPresentModeFlagBitsKHR_map[std::string(_res)];
11520 }
11521
parse_VkSwapchainCreateFlagsKHR(const char * s,Json::Value & obj,VkSwapchainCreateFlagsKHR & o)11522 static void parse_VkSwapchainCreateFlagsKHR(const char *s, Json::Value &obj, VkSwapchainCreateFlagsKHR &o)
11523 {
11524 o = (VkSwapchainCreateFlagsKHR)0;
11525 std::string _res = obj.asString();
11526 std::vector<std::string> bitmasks;
11527 std::istringstream inputStream(_res);
11528 std::string tempStr;
11529 while (getline(inputStream, tempStr, '|'))
11530 {
11531 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
11532 bitmasks.push_back(tempStr);
11533 }
11534 for (auto &it : bitmasks)
11535 {
11536 o |= (VkSwapchainCreateFlagBitsKHR)VkSwapchainCreateFlagBitsKHR_map[it];
11537 }
11538 }
11539
parse_VkDeviceGroupPresentModeFlagsKHR(const char * s,Json::Value & obj,VkDeviceGroupPresentModeFlagsKHR & o)11540 static void parse_VkDeviceGroupPresentModeFlagsKHR(const char *s, Json::Value &obj, VkDeviceGroupPresentModeFlagsKHR &o)
11541 {
11542 o = (VkDeviceGroupPresentModeFlagsKHR)0;
11543 std::string _res = obj.asString();
11544 std::vector<std::string> bitmasks;
11545 std::istringstream inputStream(_res);
11546 std::string tempStr;
11547 while (getline(inputStream, tempStr, '|'))
11548 {
11549 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
11550 bitmasks.push_back(tempStr);
11551 }
11552 for (auto &it : bitmasks)
11553 {
11554 o |= (VkDeviceGroupPresentModeFlagBitsKHR)VkDeviceGroupPresentModeFlagBitsKHR_map[it];
11555 }
11556 }
11557
parse_VkSwapchainCreateInfoKHR(const char * s,Json::Value & obj,VkSwapchainCreateInfoKHR & o)11558 static void parse_VkSwapchainCreateInfoKHR(const char *s, Json::Value &obj, VkSwapchainCreateInfoKHR &o)
11559 {
11560
11561 parse_VkStructureType("sType", obj["sType"], (o.sType));
11562
11563 o.pNext = (VkSwapchainCreateInfoKHR *)parsePNextChain(obj);
11564
11565 parse_VkSwapchainCreateFlagsKHR("flags", obj["flags"], (o.flags));
11566
11567 parse_uint32_t("minImageCount", obj["minImageCount"], (o.minImageCount));
11568
11569 parse_VkFormat("imageFormat", obj["imageFormat"], (o.imageFormat));
11570
11571 parse_VkColorSpaceKHR("imageColorSpace", obj["imageColorSpace"], (o.imageColorSpace));
11572
11573 parse_VkExtent2D("imageExtent", obj["imageExtent"], (o.imageExtent));
11574
11575 parse_uint32_t("imageArrayLayers", obj["imageArrayLayers"], (o.imageArrayLayers));
11576
11577 parse_VkImageUsageFlags("imageUsage", obj["imageUsage"], (o.imageUsage));
11578
11579 parse_VkSharingMode("imageSharingMode", obj["imageSharingMode"], (o.imageSharingMode));
11580
11581 parse_uint32_t("queueFamilyIndexCount", obj["queueFamilyIndexCount"], (o.queueFamilyIndexCount));
11582
11583 (o.pQueueFamilyIndices) = (uint32_t *)s_globalMem.allocate((o.queueFamilyIndexCount), sizeof(uint32_t));
11584 Json::Value &obj_pQueueFamilyIndices_arr = obj["pQueueFamilyIndices"];
11585 for (unsigned int i = 0; i < obj_pQueueFamilyIndices_arr.size(); i++)
11586 {
11587 parse_uint32_t("pQueueFamilyIndices", obj_pQueueFamilyIndices_arr[i],
11588 const_cast<uint32_t &>((o.pQueueFamilyIndices[i])));
11589 }
11590
11591 parse_VkSurfaceTransformFlagBitsKHR("preTransform", obj["preTransform"], (o.preTransform));
11592
11593 parse_VkCompositeAlphaFlagBitsKHR("compositeAlpha", obj["compositeAlpha"], (o.compositeAlpha));
11594
11595 parse_VkPresentModeKHR("presentMode", obj["presentMode"], (o.presentMode));
11596
11597 parse_VkBool32("clipped", obj["clipped"], (o.clipped));
11598 }
11599
parse_VkPresentInfoKHR(const char * s,Json::Value & obj,VkPresentInfoKHR & o)11600 static void parse_VkPresentInfoKHR(const char *s, Json::Value &obj, VkPresentInfoKHR &o)
11601 {
11602
11603 parse_VkStructureType("sType", obj["sType"], (o.sType));
11604
11605 o.pNext = (VkPresentInfoKHR *)parsePNextChain(obj);
11606
11607 parse_uint32_t("waitSemaphoreCount", obj["waitSemaphoreCount"], (o.waitSemaphoreCount));
11608
11609 (o.pWaitSemaphores) = (VkSemaphore *)s_globalMem.allocate((o.waitSemaphoreCount), sizeof(VkSemaphore));
11610 Json::Value &obj_pWaitSemaphores_arr = obj["pWaitSemaphores"];
11611 for (unsigned int i = 0; i < obj_pWaitSemaphores_arr.size(); i++)
11612 {
11613 parse_VkSemaphore("pWaitSemaphores", obj_pWaitSemaphores_arr[i],
11614 const_cast<VkSemaphore &>((o.pWaitSemaphores[i])));
11615 }
11616
11617 parse_uint32_t("swapchainCount", obj["swapchainCount"], (o.swapchainCount));
11618
11619 (o.pSwapchains) = (VkSwapchainKHR *)s_globalMem.allocate((o.swapchainCount), sizeof(VkSwapchainKHR));
11620 Json::Value &obj_pSwapchains_arr = obj["pSwapchains"];
11621 for (unsigned int i = 0; i < obj_pSwapchains_arr.size(); i++)
11622 {
11623 parse_VkSwapchainKHR("pSwapchains", obj_pSwapchains_arr[i], const_cast<VkSwapchainKHR &>((o.pSwapchains[i])));
11624 }
11625
11626 (o.pImageIndices) = (uint32_t *)s_globalMem.allocate((o.swapchainCount), sizeof(uint32_t));
11627 Json::Value &obj_pImageIndices_arr = obj["pImageIndices"];
11628 for (unsigned int i = 0; i < obj_pImageIndices_arr.size(); i++)
11629 {
11630 parse_uint32_t("pImageIndices", obj_pImageIndices_arr[i], const_cast<uint32_t &>((o.pImageIndices[i])));
11631 }
11632 }
11633
parse_VkImageSwapchainCreateInfoKHR(const char * s,Json::Value & obj,VkImageSwapchainCreateInfoKHR & o)11634 static void parse_VkImageSwapchainCreateInfoKHR(const char *s, Json::Value &obj, VkImageSwapchainCreateInfoKHR &o)
11635 {
11636
11637 parse_VkStructureType("sType", obj["sType"], (o.sType));
11638
11639 o.pNext = (VkImageSwapchainCreateInfoKHR *)parsePNextChain(obj);
11640 }
11641
parse_VkBindImageMemorySwapchainInfoKHR(const char * s,Json::Value & obj,VkBindImageMemorySwapchainInfoKHR & o)11642 static void parse_VkBindImageMemorySwapchainInfoKHR(const char *s, Json::Value &obj,
11643 VkBindImageMemorySwapchainInfoKHR &o)
11644 {
11645
11646 parse_VkStructureType("sType", obj["sType"], (o.sType));
11647
11648 o.pNext = (VkBindImageMemorySwapchainInfoKHR *)parsePNextChain(obj);
11649
11650 parse_uint32_t("imageIndex", obj["imageIndex"], (o.imageIndex));
11651 }
11652
parse_VkAcquireNextImageInfoKHR(const char * s,Json::Value & obj,VkAcquireNextImageInfoKHR & o)11653 static void parse_VkAcquireNextImageInfoKHR(const char *s, Json::Value &obj, VkAcquireNextImageInfoKHR &o)
11654 {
11655
11656 parse_VkStructureType("sType", obj["sType"], (o.sType));
11657
11658 o.pNext = (VkAcquireNextImageInfoKHR *)parsePNextChain(obj);
11659
11660 parse_uint64_t("timeout", obj["timeout"], (o.timeout));
11661
11662 parse_uint32_t("deviceMask", obj["deviceMask"], (o.deviceMask));
11663 }
11664
parse_VkDeviceGroupPresentCapabilitiesKHR(const char * s,Json::Value & obj,VkDeviceGroupPresentCapabilitiesKHR & o)11665 static void parse_VkDeviceGroupPresentCapabilitiesKHR(const char *s, Json::Value &obj,
11666 VkDeviceGroupPresentCapabilitiesKHR &o)
11667 {
11668
11669 parse_VkStructureType("sType", obj["sType"], (o.sType));
11670
11671 o.pNext = (VkDeviceGroupPresentCapabilitiesKHR *)parsePNextChain(obj);
11672
11673 Json::Value &obj_presentMask_arr = obj["presentMask"];
11674 for (unsigned int i = 0; i < obj_presentMask_arr.size(); i++)
11675 {
11676 parse_uint32_t("presentMask", obj_presentMask_arr[i], const_cast<uint32_t &>((o.presentMask[i])));
11677 }
11678
11679 parse_VkDeviceGroupPresentModeFlagsKHR("modes", obj["modes"], (o.modes));
11680 }
11681
parse_VkDeviceGroupPresentInfoKHR(const char * s,Json::Value & obj,VkDeviceGroupPresentInfoKHR & o)11682 static void parse_VkDeviceGroupPresentInfoKHR(const char *s, Json::Value &obj, VkDeviceGroupPresentInfoKHR &o)
11683 {
11684
11685 parse_VkStructureType("sType", obj["sType"], (o.sType));
11686
11687 o.pNext = (VkDeviceGroupPresentInfoKHR *)parsePNextChain(obj);
11688
11689 parse_uint32_t("swapchainCount", obj["swapchainCount"], (o.swapchainCount));
11690
11691 (o.pDeviceMasks) = (uint32_t *)s_globalMem.allocate((o.swapchainCount), sizeof(uint32_t));
11692 Json::Value &obj_pDeviceMasks_arr = obj["pDeviceMasks"];
11693 for (unsigned int i = 0; i < obj_pDeviceMasks_arr.size(); i++)
11694 {
11695 parse_uint32_t("pDeviceMasks", obj_pDeviceMasks_arr[i], const_cast<uint32_t &>((o.pDeviceMasks[i])));
11696 }
11697
11698 parse_VkDeviceGroupPresentModeFlagBitsKHR("mode", obj["mode"], (o.mode));
11699 }
11700
parse_VkDeviceGroupSwapchainCreateInfoKHR(const char * s,Json::Value & obj,VkDeviceGroupSwapchainCreateInfoKHR & o)11701 static void parse_VkDeviceGroupSwapchainCreateInfoKHR(const char *s, Json::Value &obj,
11702 VkDeviceGroupSwapchainCreateInfoKHR &o)
11703 {
11704
11705 parse_VkStructureType("sType", obj["sType"], (o.sType));
11706
11707 o.pNext = (VkDeviceGroupSwapchainCreateInfoKHR *)parsePNextChain(obj);
11708
11709 parse_VkDeviceGroupPresentModeFlagsKHR("modes", obj["modes"], (o.modes));
11710 }
11711
parse_VkDisplayKHR(const char * s,Json::Value & obj,VkDisplayKHR & o)11712 static void parse_VkDisplayKHR(const char *s, Json::Value &obj, VkDisplayKHR &o)
11713 {
11714 // std::string _res = obj.asString();
11715 }
11716
parse_VkDisplayModeKHR(const char * s,Json::Value & obj,VkDisplayModeKHR & o)11717 static void parse_VkDisplayModeKHR(const char *s, Json::Value &obj, VkDisplayModeKHR &o)
11718 {
11719 // std::string _res = obj.asString();
11720 }
11721
11722 static std::map<std::string, int> VkDisplayPlaneAlphaFlagBitsKHR_map = {
11723 std::make_pair("VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR", 1UL << 0),
11724 std::make_pair("VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR", 1UL << 1),
11725 std::make_pair("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR", 1UL << 2),
11726 std::make_pair("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR", 1UL << 3),
11727 };
parse_VkDisplayPlaneAlphaFlagBitsKHR(const char * s,Json::Value & obj,VkDisplayPlaneAlphaFlagBitsKHR & o)11728 static void parse_VkDisplayPlaneAlphaFlagBitsKHR(const char *s, Json::Value &obj, VkDisplayPlaneAlphaFlagBitsKHR &o)
11729 {
11730 std::string _res = obj.asString();
11731 o = (VkDisplayPlaneAlphaFlagBitsKHR)VkDisplayPlaneAlphaFlagBitsKHR_map[std::string(_res)];
11732 }
11733
parse_VkDisplayModeCreateFlagsKHR(const char * s,Json::Value & obj,VkDisplayModeCreateFlagsKHR & o)11734 static void parse_VkDisplayModeCreateFlagsKHR(const char *s, Json::Value &obj, VkDisplayModeCreateFlagsKHR &o)
11735 {
11736 if (obj.isString())
11737 {
11738 std::string _res = obj.asString();
11739 sscanf(_res.c_str(), "%u", &o);
11740 }
11741 else
11742 {
11743 o = obj.asUInt();
11744 }
11745 }
11746
parse_VkDisplayPlaneAlphaFlagsKHR(const char * s,Json::Value & obj,VkDisplayPlaneAlphaFlagsKHR & o)11747 static void parse_VkDisplayPlaneAlphaFlagsKHR(const char *s, Json::Value &obj, VkDisplayPlaneAlphaFlagsKHR &o)
11748 {
11749 o = (VkDisplayPlaneAlphaFlagsKHR)0;
11750 std::string _res = obj.asString();
11751 std::vector<std::string> bitmasks;
11752 std::istringstream inputStream(_res);
11753 std::string tempStr;
11754 while (getline(inputStream, tempStr, '|'))
11755 {
11756 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
11757 bitmasks.push_back(tempStr);
11758 }
11759 for (auto &it : bitmasks)
11760 {
11761 o |= (VkDisplayPlaneAlphaFlagBitsKHR)VkDisplayPlaneAlphaFlagBitsKHR_map[it];
11762 }
11763 }
11764
parse_VkDisplaySurfaceCreateFlagsKHR(const char * s,Json::Value & obj,VkDisplaySurfaceCreateFlagsKHR & o)11765 static void parse_VkDisplaySurfaceCreateFlagsKHR(const char *s, Json::Value &obj, VkDisplaySurfaceCreateFlagsKHR &o)
11766 {
11767 if (obj.isString())
11768 {
11769 std::string _res = obj.asString();
11770 sscanf(_res.c_str(), "%u", &o);
11771 }
11772 else
11773 {
11774 o = obj.asUInt();
11775 }
11776 }
11777
parse_VkDisplayModeParametersKHR(const char * s,Json::Value & obj,VkDisplayModeParametersKHR & o)11778 static void parse_VkDisplayModeParametersKHR(const char *s, Json::Value &obj, VkDisplayModeParametersKHR &o)
11779 {
11780
11781 parse_VkExtent2D("visibleRegion", obj["visibleRegion"], (o.visibleRegion));
11782
11783 parse_uint32_t("refreshRate", obj["refreshRate"], (o.refreshRate));
11784 }
11785
parse_VkDisplayModeCreateInfoKHR(const char * s,Json::Value & obj,VkDisplayModeCreateInfoKHR & o)11786 static void parse_VkDisplayModeCreateInfoKHR(const char *s, Json::Value &obj, VkDisplayModeCreateInfoKHR &o)
11787 {
11788
11789 parse_VkStructureType("sType", obj["sType"], (o.sType));
11790
11791 o.pNext = (VkDisplayModeCreateInfoKHR *)parsePNextChain(obj);
11792
11793 parse_VkDisplayModeCreateFlagsKHR("flags", obj["flags"], (o.flags));
11794
11795 parse_VkDisplayModeParametersKHR("parameters", obj["parameters"], (o.parameters));
11796 }
11797
parse_VkDisplayModePropertiesKHR(const char * s,Json::Value & obj,VkDisplayModePropertiesKHR & o)11798 static void parse_VkDisplayModePropertiesKHR(const char *s, Json::Value &obj, VkDisplayModePropertiesKHR &o)
11799 {
11800
11801 parse_VkDisplayModeParametersKHR("parameters", obj["parameters"], (o.parameters));
11802 }
11803
parse_VkDisplayPlaneCapabilitiesKHR(const char * s,Json::Value & obj,VkDisplayPlaneCapabilitiesKHR & o)11804 static void parse_VkDisplayPlaneCapabilitiesKHR(const char *s, Json::Value &obj, VkDisplayPlaneCapabilitiesKHR &o)
11805 {
11806
11807 parse_VkDisplayPlaneAlphaFlagsKHR("supportedAlpha", obj["supportedAlpha"], (o.supportedAlpha));
11808
11809 parse_VkOffset2D("minSrcPosition", obj["minSrcPosition"], (o.minSrcPosition));
11810
11811 parse_VkOffset2D("maxSrcPosition", obj["maxSrcPosition"], (o.maxSrcPosition));
11812
11813 parse_VkExtent2D("minSrcExtent", obj["minSrcExtent"], (o.minSrcExtent));
11814
11815 parse_VkExtent2D("maxSrcExtent", obj["maxSrcExtent"], (o.maxSrcExtent));
11816
11817 parse_VkOffset2D("minDstPosition", obj["minDstPosition"], (o.minDstPosition));
11818
11819 parse_VkOffset2D("maxDstPosition", obj["maxDstPosition"], (o.maxDstPosition));
11820
11821 parse_VkExtent2D("minDstExtent", obj["minDstExtent"], (o.minDstExtent));
11822
11823 parse_VkExtent2D("maxDstExtent", obj["maxDstExtent"], (o.maxDstExtent));
11824 }
11825
parse_VkDisplayPlanePropertiesKHR(const char * s,Json::Value & obj,VkDisplayPlanePropertiesKHR & o)11826 static void parse_VkDisplayPlanePropertiesKHR(const char *s, Json::Value &obj, VkDisplayPlanePropertiesKHR &o)
11827 {
11828
11829 parse_uint32_t("currentStackIndex", obj["currentStackIndex"], (o.currentStackIndex));
11830 }
11831
parse_VkDisplayPropertiesKHR(const char * s,Json::Value & obj,VkDisplayPropertiesKHR & o)11832 static void parse_VkDisplayPropertiesKHR(const char *s, Json::Value &obj, VkDisplayPropertiesKHR &o)
11833 {
11834
11835 /** TODO: Handle this - displayName **/
11836
11837 parse_VkExtent2D("physicalDimensions", obj["physicalDimensions"], (o.physicalDimensions));
11838
11839 parse_VkExtent2D("physicalResolution", obj["physicalResolution"], (o.physicalResolution));
11840
11841 parse_VkSurfaceTransformFlagsKHR("supportedTransforms", obj["supportedTransforms"], (o.supportedTransforms));
11842
11843 parse_VkBool32("planeReorderPossible", obj["planeReorderPossible"], (o.planeReorderPossible));
11844
11845 parse_VkBool32("persistentContent", obj["persistentContent"], (o.persistentContent));
11846 }
11847
parse_VkDisplaySurfaceCreateInfoKHR(const char * s,Json::Value & obj,VkDisplaySurfaceCreateInfoKHR & o)11848 static void parse_VkDisplaySurfaceCreateInfoKHR(const char *s, Json::Value &obj, VkDisplaySurfaceCreateInfoKHR &o)
11849 {
11850
11851 parse_VkStructureType("sType", obj["sType"], (o.sType));
11852
11853 o.pNext = (VkDisplaySurfaceCreateInfoKHR *)parsePNextChain(obj);
11854
11855 parse_VkDisplaySurfaceCreateFlagsKHR("flags", obj["flags"], (o.flags));
11856
11857 parse_uint32_t("planeIndex", obj["planeIndex"], (o.planeIndex));
11858
11859 parse_uint32_t("planeStackIndex", obj["planeStackIndex"], (o.planeStackIndex));
11860
11861 parse_VkSurfaceTransformFlagBitsKHR("transform", obj["transform"], (o.transform));
11862
11863 parse_float("globalAlpha", obj["globalAlpha"], (o.globalAlpha));
11864
11865 parse_VkDisplayPlaneAlphaFlagBitsKHR("alphaMode", obj["alphaMode"], (o.alphaMode));
11866
11867 parse_VkExtent2D("imageExtent", obj["imageExtent"], (o.imageExtent));
11868 }
11869
parse_VkDisplayPresentInfoKHR(const char * s,Json::Value & obj,VkDisplayPresentInfoKHR & o)11870 static void parse_VkDisplayPresentInfoKHR(const char *s, Json::Value &obj, VkDisplayPresentInfoKHR &o)
11871 {
11872
11873 parse_VkStructureType("sType", obj["sType"], (o.sType));
11874
11875 o.pNext = (VkDisplayPresentInfoKHR *)parsePNextChain(obj);
11876
11877 parse_VkRect2D("srcRect", obj["srcRect"], (o.srcRect));
11878
11879 parse_VkRect2D("dstRect", obj["dstRect"], (o.dstRect));
11880
11881 parse_VkBool32("persistent", obj["persistent"], (o.persistent));
11882 }
11883
parse_VkImportMemoryFdInfoKHR(const char * s,Json::Value & obj,VkImportMemoryFdInfoKHR & o)11884 static void parse_VkImportMemoryFdInfoKHR(const char *s, Json::Value &obj, VkImportMemoryFdInfoKHR &o)
11885 {
11886
11887 parse_VkStructureType("sType", obj["sType"], (o.sType));
11888
11889 o.pNext = (VkImportMemoryFdInfoKHR *)parsePNextChain(obj);
11890
11891 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
11892
11893 parse_int("fd", obj["fd"], (o.fd));
11894 }
11895
parse_VkMemoryFdPropertiesKHR(const char * s,Json::Value & obj,VkMemoryFdPropertiesKHR & o)11896 static void parse_VkMemoryFdPropertiesKHR(const char *s, Json::Value &obj, VkMemoryFdPropertiesKHR &o)
11897 {
11898
11899 parse_VkStructureType("sType", obj["sType"], (o.sType));
11900
11901 o.pNext = (VkMemoryFdPropertiesKHR *)parsePNextChain(obj);
11902
11903 parse_uint32_t("memoryTypeBits", obj["memoryTypeBits"], (o.memoryTypeBits));
11904 }
11905
parse_VkMemoryGetFdInfoKHR(const char * s,Json::Value & obj,VkMemoryGetFdInfoKHR & o)11906 static void parse_VkMemoryGetFdInfoKHR(const char *s, Json::Value &obj, VkMemoryGetFdInfoKHR &o)
11907 {
11908
11909 parse_VkStructureType("sType", obj["sType"], (o.sType));
11910
11911 o.pNext = (VkMemoryGetFdInfoKHR *)parsePNextChain(obj);
11912
11913 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
11914 }
11915
parse_VkImportSemaphoreFdInfoKHR(const char * s,Json::Value & obj,VkImportSemaphoreFdInfoKHR & o)11916 static void parse_VkImportSemaphoreFdInfoKHR(const char *s, Json::Value &obj, VkImportSemaphoreFdInfoKHR &o)
11917 {
11918
11919 parse_VkStructureType("sType", obj["sType"], (o.sType));
11920
11921 o.pNext = (VkImportSemaphoreFdInfoKHR *)parsePNextChain(obj);
11922
11923 parse_VkSemaphoreImportFlags("flags", obj["flags"], (o.flags));
11924
11925 parse_VkExternalSemaphoreHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
11926
11927 parse_int("fd", obj["fd"], (o.fd));
11928 }
11929
parse_VkSemaphoreGetFdInfoKHR(const char * s,Json::Value & obj,VkSemaphoreGetFdInfoKHR & o)11930 static void parse_VkSemaphoreGetFdInfoKHR(const char *s, Json::Value &obj, VkSemaphoreGetFdInfoKHR &o)
11931 {
11932
11933 parse_VkStructureType("sType", obj["sType"], (o.sType));
11934
11935 o.pNext = (VkSemaphoreGetFdInfoKHR *)parsePNextChain(obj);
11936
11937 parse_VkExternalSemaphoreHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
11938 }
11939
parse_VkRectLayerKHR(const char * s,Json::Value & obj,VkRectLayerKHR & o)11940 static void parse_VkRectLayerKHR(const char *s, Json::Value &obj, VkRectLayerKHR &o)
11941 {
11942
11943 parse_VkOffset2D("offset", obj["offset"], (o.offset));
11944
11945 parse_VkExtent2D("extent", obj["extent"], (o.extent));
11946
11947 parse_uint32_t("layer", obj["layer"], (o.layer));
11948 }
11949
parse_VkPresentRegionKHR(const char * s,Json::Value & obj,VkPresentRegionKHR & o)11950 static void parse_VkPresentRegionKHR(const char *s, Json::Value &obj, VkPresentRegionKHR &o)
11951 {
11952
11953 parse_uint32_t("rectangleCount", obj["rectangleCount"], (o.rectangleCount));
11954
11955 (o.pRectangles) = (VkRectLayerKHR *)s_globalMem.allocate((o.rectangleCount), sizeof(VkRectLayerKHR));
11956 Json::Value &obj_pRectangles = obj["pRectangles"];
11957 if (obj_pRectangles.size() == 0)
11958 (o.pRectangles) = nullptr;
11959 else
11960 {
11961 for (unsigned int i = 0; i < (o.rectangleCount); i++)
11962 {
11963 parse_VkRectLayerKHR("pRectangles", obj_pRectangles[i], const_cast<VkRectLayerKHR &>((o.pRectangles[i])));
11964 }
11965 }
11966 }
11967
parse_VkPresentRegionsKHR(const char * s,Json::Value & obj,VkPresentRegionsKHR & o)11968 static void parse_VkPresentRegionsKHR(const char *s, Json::Value &obj, VkPresentRegionsKHR &o)
11969 {
11970
11971 parse_VkStructureType("sType", obj["sType"], (o.sType));
11972
11973 o.pNext = (VkPresentRegionsKHR *)parsePNextChain(obj);
11974
11975 parse_uint32_t("swapchainCount", obj["swapchainCount"], (o.swapchainCount));
11976
11977 (o.pRegions) = (VkPresentRegionKHR *)s_globalMem.allocate((o.swapchainCount), sizeof(VkPresentRegionKHR));
11978 Json::Value &obj_pRegions = obj["pRegions"];
11979 if (obj_pRegions.size() == 0)
11980 (o.pRegions) = nullptr;
11981 else
11982 {
11983 for (unsigned int i = 0; i < (o.swapchainCount); i++)
11984 {
11985 parse_VkPresentRegionKHR("pRegions", obj_pRegions[i], const_cast<VkPresentRegionKHR &>((o.pRegions[i])));
11986 }
11987 }
11988 }
11989
parse_VkSharedPresentSurfaceCapabilitiesKHR(const char * s,Json::Value & obj,VkSharedPresentSurfaceCapabilitiesKHR & o)11990 static void parse_VkSharedPresentSurfaceCapabilitiesKHR(const char *s, Json::Value &obj,
11991 VkSharedPresentSurfaceCapabilitiesKHR &o)
11992 {
11993
11994 parse_VkStructureType("sType", obj["sType"], (o.sType));
11995
11996 o.pNext = (VkSharedPresentSurfaceCapabilitiesKHR *)parsePNextChain(obj);
11997
11998 parse_VkImageUsageFlags("sharedPresentSupportedUsageFlags", obj["sharedPresentSupportedUsageFlags"],
11999 (o.sharedPresentSupportedUsageFlags));
12000 }
12001
parse_VkImportFenceFdInfoKHR(const char * s,Json::Value & obj,VkImportFenceFdInfoKHR & o)12002 static void parse_VkImportFenceFdInfoKHR(const char *s, Json::Value &obj, VkImportFenceFdInfoKHR &o)
12003 {
12004
12005 parse_VkStructureType("sType", obj["sType"], (o.sType));
12006
12007 o.pNext = (VkImportFenceFdInfoKHR *)parsePNextChain(obj);
12008
12009 parse_VkFenceImportFlags("flags", obj["flags"], (o.flags));
12010
12011 parse_VkExternalFenceHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
12012
12013 parse_int("fd", obj["fd"], (o.fd));
12014 }
12015
parse_VkFenceGetFdInfoKHR(const char * s,Json::Value & obj,VkFenceGetFdInfoKHR & o)12016 static void parse_VkFenceGetFdInfoKHR(const char *s, Json::Value &obj, VkFenceGetFdInfoKHR &o)
12017 {
12018
12019 parse_VkStructureType("sType", obj["sType"], (o.sType));
12020
12021 o.pNext = (VkFenceGetFdInfoKHR *)parsePNextChain(obj);
12022
12023 parse_VkExternalFenceHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
12024 }
12025
12026 static std::map<std::string, int> VkPerformanceCounterUnitKHR_map = {
12027 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR", 0),
12028 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR", 1),
12029 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR", 2),
12030 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR", 3),
12031 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR", 4),
12032 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR", 5),
12033 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR", 6),
12034 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR", 7),
12035 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR", 8),
12036 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR", 9),
12037 std::make_pair("VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR", 10),
12038 };
parse_VkPerformanceCounterUnitKHR(const char * s,Json::Value & obj,VkPerformanceCounterUnitKHR & o)12039 static void parse_VkPerformanceCounterUnitKHR(const char *s, Json::Value &obj, VkPerformanceCounterUnitKHR &o)
12040 {
12041 std::string _res = obj.asString();
12042 o = (VkPerformanceCounterUnitKHR)VkPerformanceCounterUnitKHR_map[std::string(_res)];
12043 }
12044
12045 static std::map<std::string, int> VkPerformanceCounterScopeKHR_map = {
12046 std::make_pair("VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR", 0),
12047 std::make_pair("VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR", 1),
12048 std::make_pair("VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR", 2),
12049 };
parse_VkPerformanceCounterScopeKHR(const char * s,Json::Value & obj,VkPerformanceCounterScopeKHR & o)12050 static void parse_VkPerformanceCounterScopeKHR(const char *s, Json::Value &obj, VkPerformanceCounterScopeKHR &o)
12051 {
12052 std::string _res = obj.asString();
12053 o = (VkPerformanceCounterScopeKHR)VkPerformanceCounterScopeKHR_map[std::string(_res)];
12054 }
12055
12056 static std::map<std::string, int> VkPerformanceCounterStorageKHR_map = {
12057 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR", 0),
12058 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR", 1),
12059 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR", 2),
12060 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR", 3),
12061 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR", 4),
12062 std::make_pair("VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR", 5),
12063 };
parse_VkPerformanceCounterStorageKHR(const char * s,Json::Value & obj,VkPerformanceCounterStorageKHR & o)12064 static void parse_VkPerformanceCounterStorageKHR(const char *s, Json::Value &obj, VkPerformanceCounterStorageKHR &o)
12065 {
12066 std::string _res = obj.asString();
12067 o = (VkPerformanceCounterStorageKHR)VkPerformanceCounterStorageKHR_map[std::string(_res)];
12068 }
12069
12070 static std::map<std::string, int> VkPerformanceCounterDescriptionFlagBitsKHR_map = {
12071 std::make_pair("VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR", 1UL << 0),
12072 std::make_pair("VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR", 1UL << 1),
12073 };
parse_VkPerformanceCounterDescriptionFlagBitsKHR(const char * s,Json::Value & obj,VkPerformanceCounterDescriptionFlagBitsKHR & o)12074 static void parse_VkPerformanceCounterDescriptionFlagBitsKHR(const char *s, Json::Value &obj,
12075 VkPerformanceCounterDescriptionFlagBitsKHR &o)
12076 {
12077 std::string _res = obj.asString();
12078 o = (VkPerformanceCounterDescriptionFlagBitsKHR)VkPerformanceCounterDescriptionFlagBitsKHR_map[std::string(_res)];
12079 }
12080
12081 static std::map<std::string, int> VkAcquireProfilingLockFlagBitsKHR_map = {};
parse_VkAcquireProfilingLockFlagBitsKHR(const char * s,Json::Value & obj,VkAcquireProfilingLockFlagBitsKHR & o)12082 static void parse_VkAcquireProfilingLockFlagBitsKHR(const char *s, Json::Value &obj,
12083 VkAcquireProfilingLockFlagBitsKHR &o)
12084 {
12085 std::string _res = obj.asString();
12086 o = (VkAcquireProfilingLockFlagBitsKHR)VkAcquireProfilingLockFlagBitsKHR_map[std::string(_res)];
12087 }
12088
parse_VkPerformanceCounterDescriptionFlagsKHR(const char * s,Json::Value & obj,VkPerformanceCounterDescriptionFlagsKHR & o)12089 static void parse_VkPerformanceCounterDescriptionFlagsKHR(const char *s, Json::Value &obj,
12090 VkPerformanceCounterDescriptionFlagsKHR &o)
12091 {
12092 o = (VkPerformanceCounterDescriptionFlagsKHR)0;
12093 std::string _res = obj.asString();
12094 std::vector<std::string> bitmasks;
12095 std::istringstream inputStream(_res);
12096 std::string tempStr;
12097 while (getline(inputStream, tempStr, '|'))
12098 {
12099 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
12100 bitmasks.push_back(tempStr);
12101 }
12102 for (auto &it : bitmasks)
12103 {
12104 o |= (VkPerformanceCounterDescriptionFlagBitsKHR)VkPerformanceCounterDescriptionFlagBitsKHR_map[it];
12105 }
12106 }
12107
parse_VkAcquireProfilingLockFlagsKHR(const char * s,Json::Value & obj,VkAcquireProfilingLockFlagsKHR & o)12108 static void parse_VkAcquireProfilingLockFlagsKHR(const char *s, Json::Value &obj, VkAcquireProfilingLockFlagsKHR &o)
12109 {
12110 o = (VkAcquireProfilingLockFlagsKHR)0;
12111 std::string _res = obj.asString();
12112 std::vector<std::string> bitmasks;
12113 std::istringstream inputStream(_res);
12114 std::string tempStr;
12115 while (getline(inputStream, tempStr, '|'))
12116 {
12117 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
12118 bitmasks.push_back(tempStr);
12119 }
12120 for (auto &it : bitmasks)
12121 {
12122 o |= (VkAcquireProfilingLockFlagBitsKHR)VkAcquireProfilingLockFlagBitsKHR_map[it];
12123 }
12124 }
12125
parse_VkPhysicalDevicePerformanceQueryFeaturesKHR(const char * s,Json::Value & obj,VkPhysicalDevicePerformanceQueryFeaturesKHR & o)12126 static void parse_VkPhysicalDevicePerformanceQueryFeaturesKHR(const char *s, Json::Value &obj,
12127 VkPhysicalDevicePerformanceQueryFeaturesKHR &o)
12128 {
12129
12130 parse_VkStructureType("sType", obj["sType"], (o.sType));
12131
12132 o.pNext = (VkPhysicalDevicePerformanceQueryFeaturesKHR *)parsePNextChain(obj);
12133
12134 parse_VkBool32("performanceCounterQueryPools", obj["performanceCounterQueryPools"],
12135 (o.performanceCounterQueryPools));
12136
12137 parse_VkBool32("performanceCounterMultipleQueryPools", obj["performanceCounterMultipleQueryPools"],
12138 (o.performanceCounterMultipleQueryPools));
12139 }
12140
parse_VkPhysicalDevicePerformanceQueryPropertiesKHR(const char * s,Json::Value & obj,VkPhysicalDevicePerformanceQueryPropertiesKHR & o)12141 static void parse_VkPhysicalDevicePerformanceQueryPropertiesKHR(const char *s, Json::Value &obj,
12142 VkPhysicalDevicePerformanceQueryPropertiesKHR &o)
12143 {
12144
12145 parse_VkStructureType("sType", obj["sType"], (o.sType));
12146
12147 o.pNext = (VkPhysicalDevicePerformanceQueryPropertiesKHR *)parsePNextChain(obj);
12148
12149 parse_VkBool32("allowCommandBufferQueryCopies", obj["allowCommandBufferQueryCopies"],
12150 (o.allowCommandBufferQueryCopies));
12151 }
12152
parse_VkPerformanceCounterKHR(const char * s,Json::Value & obj,VkPerformanceCounterKHR & o)12153 static void parse_VkPerformanceCounterKHR(const char *s, Json::Value &obj, VkPerformanceCounterKHR &o)
12154 {
12155
12156 parse_VkStructureType("sType", obj["sType"], (o.sType));
12157
12158 o.pNext = (VkPerformanceCounterKHR *)parsePNextChain(obj);
12159
12160 parse_VkPerformanceCounterUnitKHR("unit", obj["unit"], (o.unit));
12161
12162 parse_VkPerformanceCounterScopeKHR("scope", obj["scope"], (o.scope));
12163
12164 parse_VkPerformanceCounterStorageKHR("storage", obj["storage"], (o.storage));
12165
12166 Json::Value &obj_uuid_arr = obj["uuid"];
12167 for (unsigned int i = 0; i < obj_uuid_arr.size(); i++)
12168 {
12169 parse_uint8_t("uuid", obj_uuid_arr[i], const_cast<uint8_t &>((o.uuid[i])));
12170 }
12171 }
12172
parse_VkPerformanceCounterDescriptionKHR(const char * s,Json::Value & obj,VkPerformanceCounterDescriptionKHR & o)12173 static void parse_VkPerformanceCounterDescriptionKHR(const char *s, Json::Value &obj,
12174 VkPerformanceCounterDescriptionKHR &o)
12175 {
12176
12177 parse_VkStructureType("sType", obj["sType"], (o.sType));
12178
12179 o.pNext = (VkPerformanceCounterDescriptionKHR *)parsePNextChain(obj);
12180
12181 parse_VkPerformanceCounterDescriptionFlagsKHR("flags", obj["flags"], (o.flags));
12182
12183 /** TODO: Handle this - name **/
12184
12185 /** TODO: Handle this - category **/
12186
12187 /** TODO: Handle this - description **/
12188 }
12189
parse_VkQueryPoolPerformanceCreateInfoKHR(const char * s,Json::Value & obj,VkQueryPoolPerformanceCreateInfoKHR & o)12190 static void parse_VkQueryPoolPerformanceCreateInfoKHR(const char *s, Json::Value &obj,
12191 VkQueryPoolPerformanceCreateInfoKHR &o)
12192 {
12193
12194 parse_VkStructureType("sType", obj["sType"], (o.sType));
12195
12196 o.pNext = (VkQueryPoolPerformanceCreateInfoKHR *)parsePNextChain(obj);
12197
12198 parse_uint32_t("queueFamilyIndex", obj["queueFamilyIndex"], (o.queueFamilyIndex));
12199
12200 parse_uint32_t("counterIndexCount", obj["counterIndexCount"], (o.counterIndexCount));
12201
12202 (o.pCounterIndices) = (uint32_t *)s_globalMem.allocate((o.counterIndexCount), sizeof(uint32_t));
12203 Json::Value &obj_pCounterIndices_arr = obj["pCounterIndices"];
12204 for (unsigned int i = 0; i < obj_pCounterIndices_arr.size(); i++)
12205 {
12206 parse_uint32_t("pCounterIndices", obj_pCounterIndices_arr[i], const_cast<uint32_t &>((o.pCounterIndices[i])));
12207 }
12208 }
12209
parse_VkPerformanceCounterResultKHR(const char * s,Json::Value & obj,VkPerformanceCounterResultKHR & o)12210 static void parse_VkPerformanceCounterResultKHR(const char *s, Json::Value &obj, VkPerformanceCounterResultKHR &o)
12211 {
12212
12213 parse_int32_t("int32", obj["int32"], (o.int32));
12214
12215 parse_int64_t("int64", obj["int64"], (o.int64));
12216
12217 parse_uint32_t("uint32", obj["uint32"], (o.uint32));
12218
12219 parse_uint64_t("uint64", obj["uint64"], (o.uint64));
12220
12221 parse_float("float32", obj["float32"], (o.float32));
12222
12223 parse_double("float64", obj["float64"], (o.float64));
12224 }
12225
parse_VkAcquireProfilingLockInfoKHR(const char * s,Json::Value & obj,VkAcquireProfilingLockInfoKHR & o)12226 static void parse_VkAcquireProfilingLockInfoKHR(const char *s, Json::Value &obj, VkAcquireProfilingLockInfoKHR &o)
12227 {
12228
12229 parse_VkStructureType("sType", obj["sType"], (o.sType));
12230
12231 o.pNext = (VkAcquireProfilingLockInfoKHR *)parsePNextChain(obj);
12232
12233 parse_VkAcquireProfilingLockFlagsKHR("flags", obj["flags"], (o.flags));
12234
12235 parse_uint64_t("timeout", obj["timeout"], (o.timeout));
12236 }
12237
parse_VkPerformanceQuerySubmitInfoKHR(const char * s,Json::Value & obj,VkPerformanceQuerySubmitInfoKHR & o)12238 static void parse_VkPerformanceQuerySubmitInfoKHR(const char *s, Json::Value &obj, VkPerformanceQuerySubmitInfoKHR &o)
12239 {
12240
12241 parse_VkStructureType("sType", obj["sType"], (o.sType));
12242
12243 o.pNext = (VkPerformanceQuerySubmitInfoKHR *)parsePNextChain(obj);
12244
12245 parse_uint32_t("counterPassIndex", obj["counterPassIndex"], (o.counterPassIndex));
12246 }
12247
parse_VkPerformanceQueryReservationInfoKHR(const char * s,Json::Value & obj,VkPerformanceQueryReservationInfoKHR & o)12248 static void parse_VkPerformanceQueryReservationInfoKHR(const char *s, Json::Value &obj,
12249 VkPerformanceQueryReservationInfoKHR &o)
12250 {
12251
12252 parse_VkStructureType("sType", obj["sType"], (o.sType));
12253
12254 o.pNext = (VkPerformanceQueryReservationInfoKHR *)parsePNextChain(obj);
12255
12256 parse_uint32_t("maxPerformanceQueriesPerPool", obj["maxPerformanceQueriesPerPool"],
12257 (o.maxPerformanceQueriesPerPool));
12258 }
12259
parse_VkPhysicalDeviceSurfaceInfo2KHR(const char * s,Json::Value & obj,VkPhysicalDeviceSurfaceInfo2KHR & o)12260 static void parse_VkPhysicalDeviceSurfaceInfo2KHR(const char *s, Json::Value &obj, VkPhysicalDeviceSurfaceInfo2KHR &o)
12261 {
12262
12263 parse_VkStructureType("sType", obj["sType"], (o.sType));
12264
12265 o.pNext = (VkPhysicalDeviceSurfaceInfo2KHR *)parsePNextChain(obj);
12266 }
12267
parse_VkSurfaceCapabilities2KHR(const char * s,Json::Value & obj,VkSurfaceCapabilities2KHR & o)12268 static void parse_VkSurfaceCapabilities2KHR(const char *s, Json::Value &obj, VkSurfaceCapabilities2KHR &o)
12269 {
12270
12271 parse_VkStructureType("sType", obj["sType"], (o.sType));
12272
12273 o.pNext = (VkSurfaceCapabilities2KHR *)parsePNextChain(obj);
12274
12275 parse_VkSurfaceCapabilitiesKHR("surfaceCapabilities", obj["surfaceCapabilities"], (o.surfaceCapabilities));
12276 }
12277
parse_VkSurfaceFormat2KHR(const char * s,Json::Value & obj,VkSurfaceFormat2KHR & o)12278 static void parse_VkSurfaceFormat2KHR(const char *s, Json::Value &obj, VkSurfaceFormat2KHR &o)
12279 {
12280
12281 parse_VkStructureType("sType", obj["sType"], (o.sType));
12282
12283 o.pNext = (VkSurfaceFormat2KHR *)parsePNextChain(obj);
12284
12285 parse_VkSurfaceFormatKHR("surfaceFormat", obj["surfaceFormat"], (o.surfaceFormat));
12286 }
12287
parse_VkDisplayProperties2KHR(const char * s,Json::Value & obj,VkDisplayProperties2KHR & o)12288 static void parse_VkDisplayProperties2KHR(const char *s, Json::Value &obj, VkDisplayProperties2KHR &o)
12289 {
12290
12291 parse_VkStructureType("sType", obj["sType"], (o.sType));
12292
12293 o.pNext = (VkDisplayProperties2KHR *)parsePNextChain(obj);
12294
12295 parse_VkDisplayPropertiesKHR("displayProperties", obj["displayProperties"], (o.displayProperties));
12296 }
12297
parse_VkDisplayPlaneProperties2KHR(const char * s,Json::Value & obj,VkDisplayPlaneProperties2KHR & o)12298 static void parse_VkDisplayPlaneProperties2KHR(const char *s, Json::Value &obj, VkDisplayPlaneProperties2KHR &o)
12299 {
12300
12301 parse_VkStructureType("sType", obj["sType"], (o.sType));
12302
12303 o.pNext = (VkDisplayPlaneProperties2KHR *)parsePNextChain(obj);
12304
12305 parse_VkDisplayPlanePropertiesKHR("displayPlaneProperties", obj["displayPlaneProperties"],
12306 (o.displayPlaneProperties));
12307 }
12308
parse_VkDisplayModeProperties2KHR(const char * s,Json::Value & obj,VkDisplayModeProperties2KHR & o)12309 static void parse_VkDisplayModeProperties2KHR(const char *s, Json::Value &obj, VkDisplayModeProperties2KHR &o)
12310 {
12311
12312 parse_VkStructureType("sType", obj["sType"], (o.sType));
12313
12314 o.pNext = (VkDisplayModeProperties2KHR *)parsePNextChain(obj);
12315
12316 parse_VkDisplayModePropertiesKHR("displayModeProperties", obj["displayModeProperties"], (o.displayModeProperties));
12317 }
12318
parse_VkDisplayPlaneInfo2KHR(const char * s,Json::Value & obj,VkDisplayPlaneInfo2KHR & o)12319 static void parse_VkDisplayPlaneInfo2KHR(const char *s, Json::Value &obj, VkDisplayPlaneInfo2KHR &o)
12320 {
12321
12322 parse_VkStructureType("sType", obj["sType"], (o.sType));
12323
12324 o.pNext = (VkDisplayPlaneInfo2KHR *)parsePNextChain(obj);
12325
12326 parse_uint32_t("planeIndex", obj["planeIndex"], (o.planeIndex));
12327 }
12328
parse_VkDisplayPlaneCapabilities2KHR(const char * s,Json::Value & obj,VkDisplayPlaneCapabilities2KHR & o)12329 static void parse_VkDisplayPlaneCapabilities2KHR(const char *s, Json::Value &obj, VkDisplayPlaneCapabilities2KHR &o)
12330 {
12331
12332 parse_VkStructureType("sType", obj["sType"], (o.sType));
12333
12334 o.pNext = (VkDisplayPlaneCapabilities2KHR *)parsePNextChain(obj);
12335
12336 parse_VkDisplayPlaneCapabilitiesKHR("capabilities", obj["capabilities"], (o.capabilities));
12337 }
12338
parse_VkPhysicalDeviceShaderClockFeaturesKHR(const char * s,Json::Value & obj,VkPhysicalDeviceShaderClockFeaturesKHR & o)12339 static void parse_VkPhysicalDeviceShaderClockFeaturesKHR(const char *s, Json::Value &obj,
12340 VkPhysicalDeviceShaderClockFeaturesKHR &o)
12341 {
12342
12343 parse_VkStructureType("sType", obj["sType"], (o.sType));
12344
12345 o.pNext = (VkPhysicalDeviceShaderClockFeaturesKHR *)parsePNextChain(obj);
12346
12347 parse_VkBool32("shaderSubgroupClock", obj["shaderSubgroupClock"], (o.shaderSubgroupClock));
12348
12349 parse_VkBool32("shaderDeviceClock", obj["shaderDeviceClock"], (o.shaderDeviceClock));
12350 }
12351
parse_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(const char * s,Json::Value & obj,VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR & o)12352 static void parse_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
12353 const char *s, Json::Value &obj, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &o)
12354 {
12355
12356 parse_VkStructureType("sType", obj["sType"], (o.sType));
12357
12358 o.pNext = (VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR *)parsePNextChain(obj);
12359
12360 parse_VkBool32("shaderTerminateInvocation", obj["shaderTerminateInvocation"], (o.shaderTerminateInvocation));
12361 }
12362
12363 static std::map<std::string, int> VkFragmentShadingRateCombinerOpKHR_map = {
12364 std::make_pair("VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", 0),
12365 std::make_pair("VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", 1),
12366 std::make_pair("VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR", 2),
12367 std::make_pair("VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR", 3),
12368 std::make_pair("VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR", 4),
12369 };
parse_VkFragmentShadingRateCombinerOpKHR(const char * s,Json::Value & obj,VkFragmentShadingRateCombinerOpKHR & o)12370 static void parse_VkFragmentShadingRateCombinerOpKHR(const char *s, Json::Value &obj,
12371 VkFragmentShadingRateCombinerOpKHR &o)
12372 {
12373 std::string _res = obj.asString();
12374 o = (VkFragmentShadingRateCombinerOpKHR)VkFragmentShadingRateCombinerOpKHR_map[std::string(_res)];
12375 }
12376
parse_VkFragmentShadingRateAttachmentInfoKHR(const char * s,Json::Value & obj,VkFragmentShadingRateAttachmentInfoKHR & o)12377 static void parse_VkFragmentShadingRateAttachmentInfoKHR(const char *s, Json::Value &obj,
12378 VkFragmentShadingRateAttachmentInfoKHR &o)
12379 {
12380
12381 parse_VkStructureType("sType", obj["sType"], (o.sType));
12382
12383 o.pNext = (VkFragmentShadingRateAttachmentInfoKHR *)parsePNextChain(obj);
12384
12385 {
12386 Json::Value &obj_pFragmentShadingRateAttachment = obj["pFragmentShadingRateAttachment"];
12387 const int sz = obj_pFragmentShadingRateAttachment.size();
12388 if (obj_pFragmentShadingRateAttachment.size() == 0)
12389 {
12390 (o.pFragmentShadingRateAttachment) = nullptr;
12391 }
12392 else
12393 {
12394 (o.pFragmentShadingRateAttachment) =
12395 (VkAttachmentReference2 *)s_globalMem.allocate(1, sizeof(VkAttachmentReference2));
12396 parse_VkAttachmentReference2("pFragmentShadingRateAttachment", obj_pFragmentShadingRateAttachment,
12397 const_cast<VkAttachmentReference2 &>(*(o.pFragmentShadingRateAttachment)));
12398 }
12399 }
12400
12401 parse_VkExtent2D("shadingRateAttachmentTexelSize", obj["shadingRateAttachmentTexelSize"],
12402 (o.shadingRateAttachmentTexelSize));
12403 }
12404
parse_VkPipelineFragmentShadingRateStateCreateInfoKHR(const char * s,Json::Value & obj,VkPipelineFragmentShadingRateStateCreateInfoKHR & o)12405 static void parse_VkPipelineFragmentShadingRateStateCreateInfoKHR(const char *s, Json::Value &obj,
12406 VkPipelineFragmentShadingRateStateCreateInfoKHR &o)
12407 {
12408
12409 parse_VkStructureType("sType", obj["sType"], (o.sType));
12410
12411 o.pNext = (VkPipelineFragmentShadingRateStateCreateInfoKHR *)parsePNextChain(obj);
12412
12413 parse_VkExtent2D("fragmentSize", obj["fragmentSize"], (o.fragmentSize));
12414
12415 Json::Value &obj_combinerOps_arr = obj["combinerOps"];
12416 for (unsigned int i = 0; i < obj_combinerOps_arr.size(); i++)
12417 {
12418 parse_VkFragmentShadingRateCombinerOpKHR("combinerOps", obj_combinerOps_arr[i],
12419 const_cast<VkFragmentShadingRateCombinerOpKHR &>((o.combinerOps[i])));
12420 }
12421 }
12422
parse_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(const char * s,Json::Value & obj,VkPhysicalDeviceFragmentShadingRateFeaturesKHR & o)12423 static void parse_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(const char *s, Json::Value &obj,
12424 VkPhysicalDeviceFragmentShadingRateFeaturesKHR &o)
12425 {
12426
12427 parse_VkStructureType("sType", obj["sType"], (o.sType));
12428
12429 o.pNext = (VkPhysicalDeviceFragmentShadingRateFeaturesKHR *)parsePNextChain(obj);
12430
12431 parse_VkBool32("pipelineFragmentShadingRate", obj["pipelineFragmentShadingRate"], (o.pipelineFragmentShadingRate));
12432
12433 parse_VkBool32("primitiveFragmentShadingRate", obj["primitiveFragmentShadingRate"],
12434 (o.primitiveFragmentShadingRate));
12435
12436 parse_VkBool32("attachmentFragmentShadingRate", obj["attachmentFragmentShadingRate"],
12437 (o.attachmentFragmentShadingRate));
12438 }
12439
parse_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(const char * s,Json::Value & obj,VkPhysicalDeviceFragmentShadingRatePropertiesKHR & o)12440 static void parse_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(const char *s, Json::Value &obj,
12441 VkPhysicalDeviceFragmentShadingRatePropertiesKHR &o)
12442 {
12443
12444 parse_VkStructureType("sType", obj["sType"], (o.sType));
12445
12446 o.pNext = (VkPhysicalDeviceFragmentShadingRatePropertiesKHR *)parsePNextChain(obj);
12447
12448 parse_VkExtent2D("minFragmentShadingRateAttachmentTexelSize", obj["minFragmentShadingRateAttachmentTexelSize"],
12449 (o.minFragmentShadingRateAttachmentTexelSize));
12450
12451 parse_VkExtent2D("maxFragmentShadingRateAttachmentTexelSize", obj["maxFragmentShadingRateAttachmentTexelSize"],
12452 (o.maxFragmentShadingRateAttachmentTexelSize));
12453
12454 parse_uint32_t("maxFragmentShadingRateAttachmentTexelSizeAspectRatio",
12455 obj["maxFragmentShadingRateAttachmentTexelSizeAspectRatio"],
12456 (o.maxFragmentShadingRateAttachmentTexelSizeAspectRatio));
12457
12458 parse_VkBool32("primitiveFragmentShadingRateWithMultipleViewports",
12459 obj["primitiveFragmentShadingRateWithMultipleViewports"],
12460 (o.primitiveFragmentShadingRateWithMultipleViewports));
12461
12462 parse_VkBool32("layeredShadingRateAttachments", obj["layeredShadingRateAttachments"],
12463 (o.layeredShadingRateAttachments));
12464
12465 parse_VkBool32("fragmentShadingRateNonTrivialCombinerOps", obj["fragmentShadingRateNonTrivialCombinerOps"],
12466 (o.fragmentShadingRateNonTrivialCombinerOps));
12467
12468 parse_VkExtent2D("maxFragmentSize", obj["maxFragmentSize"], (o.maxFragmentSize));
12469
12470 parse_uint32_t("maxFragmentSizeAspectRatio", obj["maxFragmentSizeAspectRatio"], (o.maxFragmentSizeAspectRatio));
12471
12472 parse_uint32_t("maxFragmentShadingRateCoverageSamples", obj["maxFragmentShadingRateCoverageSamples"],
12473 (o.maxFragmentShadingRateCoverageSamples));
12474
12475 parse_VkSampleCountFlagBits("maxFragmentShadingRateRasterizationSamples",
12476 obj["maxFragmentShadingRateRasterizationSamples"],
12477 (o.maxFragmentShadingRateRasterizationSamples));
12478
12479 parse_VkBool32("fragmentShadingRateWithShaderDepthStencilWrites",
12480 obj["fragmentShadingRateWithShaderDepthStencilWrites"],
12481 (o.fragmentShadingRateWithShaderDepthStencilWrites));
12482
12483 parse_VkBool32("fragmentShadingRateWithSampleMask", obj["fragmentShadingRateWithSampleMask"],
12484 (o.fragmentShadingRateWithSampleMask));
12485
12486 parse_VkBool32("fragmentShadingRateWithShaderSampleMask", obj["fragmentShadingRateWithShaderSampleMask"],
12487 (o.fragmentShadingRateWithShaderSampleMask));
12488
12489 parse_VkBool32("fragmentShadingRateWithConservativeRasterization",
12490 obj["fragmentShadingRateWithConservativeRasterization"],
12491 (o.fragmentShadingRateWithConservativeRasterization));
12492
12493 parse_VkBool32("fragmentShadingRateWithFragmentShaderInterlock",
12494 obj["fragmentShadingRateWithFragmentShaderInterlock"],
12495 (o.fragmentShadingRateWithFragmentShaderInterlock));
12496
12497 parse_VkBool32("fragmentShadingRateWithCustomSampleLocations", obj["fragmentShadingRateWithCustomSampleLocations"],
12498 (o.fragmentShadingRateWithCustomSampleLocations));
12499
12500 parse_VkBool32("fragmentShadingRateStrictMultiplyCombiner", obj["fragmentShadingRateStrictMultiplyCombiner"],
12501 (o.fragmentShadingRateStrictMultiplyCombiner));
12502 }
12503
parse_VkPhysicalDeviceFragmentShadingRateKHR(const char * s,Json::Value & obj,VkPhysicalDeviceFragmentShadingRateKHR & o)12504 static void parse_VkPhysicalDeviceFragmentShadingRateKHR(const char *s, Json::Value &obj,
12505 VkPhysicalDeviceFragmentShadingRateKHR &o)
12506 {
12507
12508 parse_VkStructureType("sType", obj["sType"], (o.sType));
12509
12510 o.pNext = (VkPhysicalDeviceFragmentShadingRateKHR *)parsePNextChain(obj);
12511
12512 parse_VkSampleCountFlags("sampleCounts", obj["sampleCounts"], (o.sampleCounts));
12513
12514 parse_VkExtent2D("fragmentSize", obj["fragmentSize"], (o.fragmentSize));
12515 }
12516
12517 static std::map<std::string, int> VkRefreshObjectFlagBitsKHR_map = {};
parse_VkRefreshObjectFlagBitsKHR(const char * s,Json::Value & obj,VkRefreshObjectFlagBitsKHR & o)12518 static void parse_VkRefreshObjectFlagBitsKHR(const char *s, Json::Value &obj, VkRefreshObjectFlagBitsKHR &o)
12519 {
12520 std::string _res = obj.asString();
12521 o = (VkRefreshObjectFlagBitsKHR)VkRefreshObjectFlagBitsKHR_map[std::string(_res)];
12522 }
12523
parse_VkRefreshObjectFlagsKHR(const char * s,Json::Value & obj,VkRefreshObjectFlagsKHR & o)12524 static void parse_VkRefreshObjectFlagsKHR(const char *s, Json::Value &obj, VkRefreshObjectFlagsKHR &o)
12525 {
12526 o = (VkRefreshObjectFlagsKHR)0;
12527 std::string _res = obj.asString();
12528 std::vector<std::string> bitmasks;
12529 std::istringstream inputStream(_res);
12530 std::string tempStr;
12531 while (getline(inputStream, tempStr, '|'))
12532 {
12533 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
12534 bitmasks.push_back(tempStr);
12535 }
12536 for (auto &it : bitmasks)
12537 {
12538 o |= (VkRefreshObjectFlagBitsKHR)VkRefreshObjectFlagBitsKHR_map[it];
12539 }
12540 }
12541
parse_VkRefreshObjectKHR(const char * s,Json::Value & obj,VkRefreshObjectKHR & o)12542 static void parse_VkRefreshObjectKHR(const char *s, Json::Value &obj, VkRefreshObjectKHR &o)
12543 {
12544
12545 parse_VkObjectType("objectType", obj["objectType"], (o.objectType));
12546
12547 parse_uint64_t("objectHandle", obj["objectHandle"], (o.objectHandle));
12548
12549 parse_VkRefreshObjectFlagsKHR("flags", obj["flags"], (o.flags));
12550 }
12551
parse_VkRefreshObjectListKHR(const char * s,Json::Value & obj,VkRefreshObjectListKHR & o)12552 static void parse_VkRefreshObjectListKHR(const char *s, Json::Value &obj, VkRefreshObjectListKHR &o)
12553 {
12554
12555 parse_VkStructureType("sType", obj["sType"], (o.sType));
12556
12557 o.pNext = (VkRefreshObjectListKHR *)parsePNextChain(obj);
12558
12559 parse_uint32_t("objectCount", obj["objectCount"], (o.objectCount));
12560
12561 (o.pObjects) = (VkRefreshObjectKHR *)s_globalMem.allocate((o.objectCount), sizeof(VkRefreshObjectKHR));
12562 Json::Value &obj_pObjects = obj["pObjects"];
12563 if (obj_pObjects.size() == 0)
12564 (o.pObjects) = nullptr;
12565 else
12566 {
12567 for (unsigned int i = 0; i < (o.objectCount); i++)
12568 {
12569 parse_VkRefreshObjectKHR("pObjects", obj_pObjects[i], const_cast<VkRefreshObjectKHR &>((o.pObjects[i])));
12570 }
12571 }
12572 }
12573
parse_VkFlags64(const char * s,Json::Value & obj,VkFlags64 & o)12574 static void parse_VkFlags64(const char *s, Json::Value &obj, VkFlags64 &o)
12575 {
12576 std::string _res = obj.asString();
12577 sscanf(_res.c_str(), "%" SCNd64, &o);
12578 }
12579
12580 static std::map<std::string, uint64_t> VkPipelineStageFlagBits2KHR_map = {
12581 std::make_pair("VK_PIPELINE_STAGE_2_NONE_KHR", 0),
12582 std::make_pair("VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR", 1ULL << 0),
12583 std::make_pair("VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR", 1ULL << 1),
12584 std::make_pair("VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR", 1ULL << 2),
12585 std::make_pair("VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR", 1ULL << 3),
12586 std::make_pair("VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR", 1ULL << 4),
12587 std::make_pair("VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR", 1ULL << 5),
12588 std::make_pair("VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR", 1ULL << 6),
12589 std::make_pair("VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR", 1ULL << 7),
12590 std::make_pair("VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR", 1ULL << 8),
12591 std::make_pair("VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR", 1ULL << 9),
12592 std::make_pair("VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR", 1ULL << 10),
12593 std::make_pair("VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR", 1ULL << 11),
12594 std::make_pair("VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR", 1ULL << 12),
12595 std::make_pair("VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR", 1ULL << 13),
12596 std::make_pair("VK_PIPELINE_STAGE_2_HOST_BIT_KHR", 1ULL << 14),
12597 std::make_pair("VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR", 1ULL << 15),
12598 std::make_pair("VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR", 1ULL << 16),
12599 std::make_pair("VK_PIPELINE_STAGE_2_COPY_BIT_KHR", 1ULL << 32),
12600 std::make_pair("VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR", 1ULL << 33),
12601 std::make_pair("VK_PIPELINE_STAGE_2_BLIT_BIT_KHR", 1ULL << 34),
12602 std::make_pair("VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR", 1ULL << 35),
12603 std::make_pair("VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR", 1ULL << 36),
12604 std::make_pair("VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR", 1ULL << 37),
12605 std::make_pair("VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR", 1ULL << 38),
12606 std::make_pair("VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR", 1ULL << 26),
12607 std::make_pair("VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR", 1ULL << 27),
12608 std::make_pair("VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT", 1ULL << 24),
12609 std::make_pair("VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT", 1ULL << 18),
12610 std::make_pair("VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV", 1ULL << 17),
12611 std::make_pair("VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1ULL << 22),
12612 std::make_pair("VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR", 1ULL << 25),
12613 std::make_pair("VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR", 1ULL << 21),
12614 std::make_pair("VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT", 1ULL << 23),
12615 std::make_pair("VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV", 1ULL << 19),
12616 std::make_pair("VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV", 1ULL << 20),
12617 std::make_pair("VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI", 1ULL << 39),
12618 std::make_pair("VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI", 1ULL << 40),
12619 std::make_pair("VK_PIPELINE_STAGE_2_RESERVED_387_BIT_KHR", 1ULL << 28),
12620 };
parse_VkPipelineStageFlagBits2KHR(const char * s,Json::Value & obj,VkPipelineStageFlagBits2KHR & o)12621 static void parse_VkPipelineStageFlagBits2KHR(const char *s, Json::Value &obj, VkPipelineStageFlagBits2KHR &o)
12622 {
12623 std::string _res = obj.asString();
12624 o = (VkPipelineStageFlagBits2KHR)VkPipelineStageFlagBits2KHR_map[std::string(_res)];
12625 }
12626
12627 static std::map<std::string, uint64_t> VkAccessFlagBits2KHR_map = {
12628 std::make_pair("VK_ACCESS_2_NONE_KHR", 0),
12629 std::make_pair("VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR", 1ULL << 0),
12630 std::make_pair("VK_ACCESS_2_INDEX_READ_BIT_KHR", 1ULL << 1),
12631 std::make_pair("VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR", 1ULL << 2),
12632 std::make_pair("VK_ACCESS_2_UNIFORM_READ_BIT_KHR", 1ULL << 3),
12633 std::make_pair("VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR", 1ULL << 4),
12634 std::make_pair("VK_ACCESS_2_SHADER_READ_BIT_KHR", 1ULL << 5),
12635 std::make_pair("VK_ACCESS_2_SHADER_WRITE_BIT_KHR", 1ULL << 6),
12636 std::make_pair("VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR", 1ULL << 7),
12637 std::make_pair("VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR", 1ULL << 8),
12638 std::make_pair("VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR", 1ULL << 9),
12639 std::make_pair("VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR", 1ULL << 10),
12640 std::make_pair("VK_ACCESS_2_TRANSFER_READ_BIT_KHR", 1ULL << 11),
12641 std::make_pair("VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR", 1ULL << 12),
12642 std::make_pair("VK_ACCESS_2_HOST_READ_BIT_KHR", 1ULL << 13),
12643 std::make_pair("VK_ACCESS_2_HOST_WRITE_BIT_KHR", 1ULL << 14),
12644 std::make_pair("VK_ACCESS_2_MEMORY_READ_BIT_KHR", 1ULL << 15),
12645 std::make_pair("VK_ACCESS_2_MEMORY_WRITE_BIT_KHR", 1ULL << 16),
12646 std::make_pair("VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR", 1ULL << 32),
12647 std::make_pair("VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR", 1ULL << 33),
12648 std::make_pair("VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR", 1ULL << 34),
12649 std::make_pair("VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR", 1ULL << 35),
12650 std::make_pair("VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR", 1ULL << 36),
12651 std::make_pair("VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR", 1ULL << 37),
12652 std::make_pair("VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR", 1ULL << 38),
12653 std::make_pair("VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT", 1ULL << 25),
12654 std::make_pair("VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT", 1ULL << 26),
12655 std::make_pair("VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT", 1ULL << 27),
12656 std::make_pair("VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT", 1ULL << 20),
12657 std::make_pair("VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV", 1ULL << 17),
12658 std::make_pair("VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV", 1ULL << 18),
12659 std::make_pair("VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR", 1ULL << 23),
12660 std::make_pair("VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR", 1ULL << 21),
12661 std::make_pair("VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR", 1ULL << 22),
12662 std::make_pair("VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT", 1ULL << 24),
12663 std::make_pair("VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT", 1ULL << 19),
12664 std::make_pair("VK_ACCESS_2_RESERVED_41_BIT_AMD", 1ULL << 41),
12665 std::make_pair("VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI", 1ULL << 39),
12666 std::make_pair("VK_ACCESS_2_RESERVED_387_BIT_KHR", 1ULL << 40),
12667 };
parse_VkAccessFlagBits2KHR(const char * s,Json::Value & obj,VkAccessFlagBits2KHR & o)12668 static void parse_VkAccessFlagBits2KHR(const char *s, Json::Value &obj, VkAccessFlagBits2KHR &o)
12669 {
12670 std::string _res = obj.asString();
12671 o = (VkAccessFlagBits2KHR)VkAccessFlagBits2KHR_map[std::string(_res)];
12672 }
12673
12674 static std::map<std::string, int> VkSubmitFlagBitsKHR_map = {
12675 std::make_pair("VK_SUBMIT_PROTECTED_BIT_KHR", 1UL << 0),
12676 };
parse_VkSubmitFlagBitsKHR(const char * s,Json::Value & obj,VkSubmitFlagBitsKHR & o)12677 static void parse_VkSubmitFlagBitsKHR(const char *s, Json::Value &obj, VkSubmitFlagBitsKHR &o)
12678 {
12679 std::string _res = obj.asString();
12680 o = (VkSubmitFlagBitsKHR)VkSubmitFlagBitsKHR_map[std::string(_res)];
12681 }
12682
parse_VkPipelineStageFlags2KHR(const char * s,Json::Value & obj,VkPipelineStageFlags2KHR & o)12683 static void parse_VkPipelineStageFlags2KHR(const char *s, Json::Value &obj, VkPipelineStageFlags2KHR &o)
12684 {
12685 if (obj.isString())
12686 {
12687 std::string _res = obj.asString();
12688 sscanf(_res.c_str(), "%" SCNd64, &o);
12689 }
12690 else
12691 {
12692 o = obj.asUInt();
12693 }
12694 }
12695
parse_VkAccessFlags2KHR(const char * s,Json::Value & obj,VkAccessFlags2KHR & o)12696 static void parse_VkAccessFlags2KHR(const char *s, Json::Value &obj, VkAccessFlags2KHR &o)
12697 {
12698 if (obj.isString())
12699 {
12700 std::string _res = obj.asString();
12701 sscanf(_res.c_str(), "%" SCNd64, &o);
12702 }
12703 else
12704 {
12705 o = obj.asUInt();
12706 }
12707 }
12708
parse_VkSubmitFlagsKHR(const char * s,Json::Value & obj,VkSubmitFlagsKHR & o)12709 static void parse_VkSubmitFlagsKHR(const char *s, Json::Value &obj, VkSubmitFlagsKHR &o)
12710 {
12711 o = (VkSubmitFlagsKHR)0;
12712 std::string _res = obj.asString();
12713 std::vector<std::string> bitmasks;
12714 std::istringstream inputStream(_res);
12715 std::string tempStr;
12716 while (getline(inputStream, tempStr, '|'))
12717 {
12718 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
12719 bitmasks.push_back(tempStr);
12720 }
12721 for (auto &it : bitmasks)
12722 {
12723 o |= (VkSubmitFlagBitsKHR)VkSubmitFlagBitsKHR_map[it];
12724 }
12725 }
12726
parse_VkMemoryBarrier2KHR(const char * s,Json::Value & obj,VkMemoryBarrier2KHR & o)12727 static void parse_VkMemoryBarrier2KHR(const char *s, Json::Value &obj, VkMemoryBarrier2KHR &o)
12728 {
12729
12730 parse_VkStructureType("sType", obj["sType"], (o.sType));
12731
12732 o.pNext = (VkMemoryBarrier2KHR *)parsePNextChain(obj);
12733
12734 parse_VkPipelineStageFlags2KHR("srcStageMask", obj["srcStageMask"], (o.srcStageMask));
12735
12736 parse_VkAccessFlags2KHR("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
12737
12738 parse_VkPipelineStageFlags2KHR("dstStageMask", obj["dstStageMask"], (o.dstStageMask));
12739
12740 parse_VkAccessFlags2KHR("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
12741 }
12742
parse_VkBufferMemoryBarrier2KHR(const char * s,Json::Value & obj,VkBufferMemoryBarrier2KHR & o)12743 static void parse_VkBufferMemoryBarrier2KHR(const char *s, Json::Value &obj, VkBufferMemoryBarrier2KHR &o)
12744 {
12745
12746 parse_VkStructureType("sType", obj["sType"], (o.sType));
12747
12748 o.pNext = (VkBufferMemoryBarrier2KHR *)parsePNextChain(obj);
12749
12750 parse_VkPipelineStageFlags2KHR("srcStageMask", obj["srcStageMask"], (o.srcStageMask));
12751
12752 parse_VkAccessFlags2KHR("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
12753
12754 parse_VkPipelineStageFlags2KHR("dstStageMask", obj["dstStageMask"], (o.dstStageMask));
12755
12756 parse_VkAccessFlags2KHR("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
12757
12758 parse_uint32_t("srcQueueFamilyIndex", obj["srcQueueFamilyIndex"], (o.srcQueueFamilyIndex));
12759
12760 parse_uint32_t("dstQueueFamilyIndex", obj["dstQueueFamilyIndex"], (o.dstQueueFamilyIndex));
12761
12762 parse_VkDeviceSize("offset", obj["offset"], (o.offset));
12763
12764 parse_VkDeviceSize("size", obj["size"], (o.size));
12765 }
12766
parse_VkImageMemoryBarrier2KHR(const char * s,Json::Value & obj,VkImageMemoryBarrier2KHR & o)12767 static void parse_VkImageMemoryBarrier2KHR(const char *s, Json::Value &obj, VkImageMemoryBarrier2KHR &o)
12768 {
12769
12770 parse_VkStructureType("sType", obj["sType"], (o.sType));
12771
12772 o.pNext = (VkImageMemoryBarrier2KHR *)parsePNextChain(obj);
12773
12774 parse_VkPipelineStageFlags2KHR("srcStageMask", obj["srcStageMask"], (o.srcStageMask));
12775
12776 parse_VkAccessFlags2KHR("srcAccessMask", obj["srcAccessMask"], (o.srcAccessMask));
12777
12778 parse_VkPipelineStageFlags2KHR("dstStageMask", obj["dstStageMask"], (o.dstStageMask));
12779
12780 parse_VkAccessFlags2KHR("dstAccessMask", obj["dstAccessMask"], (o.dstAccessMask));
12781
12782 parse_VkImageLayout("oldLayout", obj["oldLayout"], (o.oldLayout));
12783
12784 parse_VkImageLayout("newLayout", obj["newLayout"], (o.newLayout));
12785
12786 parse_uint32_t("srcQueueFamilyIndex", obj["srcQueueFamilyIndex"], (o.srcQueueFamilyIndex));
12787
12788 parse_uint32_t("dstQueueFamilyIndex", obj["dstQueueFamilyIndex"], (o.dstQueueFamilyIndex));
12789
12790 parse_VkImageSubresourceRange("subresourceRange", obj["subresourceRange"], (o.subresourceRange));
12791 }
12792
parse_VkDependencyInfoKHR(const char * s,Json::Value & obj,VkDependencyInfoKHR & o)12793 static void parse_VkDependencyInfoKHR(const char *s, Json::Value &obj, VkDependencyInfoKHR &o)
12794 {
12795
12796 parse_VkStructureType("sType", obj["sType"], (o.sType));
12797
12798 o.pNext = (VkDependencyInfoKHR *)parsePNextChain(obj);
12799
12800 parse_VkDependencyFlags("dependencyFlags", obj["dependencyFlags"], (o.dependencyFlags));
12801
12802 parse_uint32_t("memoryBarrierCount", obj["memoryBarrierCount"], (o.memoryBarrierCount));
12803
12804 (o.pMemoryBarriers) =
12805 (VkMemoryBarrier2KHR *)s_globalMem.allocate((o.memoryBarrierCount), sizeof(VkMemoryBarrier2KHR));
12806 Json::Value &obj_pMemoryBarriers = obj["pMemoryBarriers"];
12807 if (obj_pMemoryBarriers.size() == 0)
12808 (o.pMemoryBarriers) = nullptr;
12809 else
12810 {
12811 for (unsigned int i = 0; i < (o.memoryBarrierCount); i++)
12812 {
12813 parse_VkMemoryBarrier2KHR("pMemoryBarriers", obj_pMemoryBarriers[i],
12814 const_cast<VkMemoryBarrier2KHR &>((o.pMemoryBarriers[i])));
12815 }
12816 }
12817
12818 parse_uint32_t("bufferMemoryBarrierCount", obj["bufferMemoryBarrierCount"], (o.bufferMemoryBarrierCount));
12819
12820 (o.pBufferMemoryBarriers) = (VkBufferMemoryBarrier2KHR *)s_globalMem.allocate((o.bufferMemoryBarrierCount),
12821 sizeof(VkBufferMemoryBarrier2KHR));
12822 Json::Value &obj_pBufferMemoryBarriers = obj["pBufferMemoryBarriers"];
12823 if (obj_pBufferMemoryBarriers.size() == 0)
12824 (o.pBufferMemoryBarriers) = nullptr;
12825 else
12826 {
12827 for (unsigned int i = 0; i < (o.bufferMemoryBarrierCount); i++)
12828 {
12829 parse_VkBufferMemoryBarrier2KHR("pBufferMemoryBarriers", obj_pBufferMemoryBarriers[i],
12830 const_cast<VkBufferMemoryBarrier2KHR &>((o.pBufferMemoryBarriers[i])));
12831 }
12832 }
12833
12834 parse_uint32_t("imageMemoryBarrierCount", obj["imageMemoryBarrierCount"], (o.imageMemoryBarrierCount));
12835
12836 (o.pImageMemoryBarriers) =
12837 (VkImageMemoryBarrier2KHR *)s_globalMem.allocate((o.imageMemoryBarrierCount), sizeof(VkImageMemoryBarrier2KHR));
12838 Json::Value &obj_pImageMemoryBarriers = obj["pImageMemoryBarriers"];
12839 if (obj_pImageMemoryBarriers.size() == 0)
12840 (o.pImageMemoryBarriers) = nullptr;
12841 else
12842 {
12843 for (unsigned int i = 0; i < (o.imageMemoryBarrierCount); i++)
12844 {
12845 parse_VkImageMemoryBarrier2KHR("pImageMemoryBarriers", obj_pImageMemoryBarriers[i],
12846 const_cast<VkImageMemoryBarrier2KHR &>((o.pImageMemoryBarriers[i])));
12847 }
12848 }
12849 }
12850
parse_VkSemaphoreSubmitInfoKHR(const char * s,Json::Value & obj,VkSemaphoreSubmitInfoKHR & o)12851 static void parse_VkSemaphoreSubmitInfoKHR(const char *s, Json::Value &obj, VkSemaphoreSubmitInfoKHR &o)
12852 {
12853
12854 parse_VkStructureType("sType", obj["sType"], (o.sType));
12855
12856 o.pNext = (VkSemaphoreSubmitInfoKHR *)parsePNextChain(obj);
12857
12858 parse_uint64_t("value", obj["value"], (o.value));
12859
12860 parse_VkPipelineStageFlags2KHR("stageMask", obj["stageMask"], (o.stageMask));
12861
12862 parse_uint32_t("deviceIndex", obj["deviceIndex"], (o.deviceIndex));
12863 }
12864
parse_VkCommandBufferSubmitInfoKHR(const char * s,Json::Value & obj,VkCommandBufferSubmitInfoKHR & o)12865 static void parse_VkCommandBufferSubmitInfoKHR(const char *s, Json::Value &obj, VkCommandBufferSubmitInfoKHR &o)
12866 {
12867
12868 parse_VkStructureType("sType", obj["sType"], (o.sType));
12869
12870 o.pNext = (VkCommandBufferSubmitInfoKHR *)parsePNextChain(obj);
12871
12872 parse_uint32_t("deviceMask", obj["deviceMask"], (o.deviceMask));
12873 }
12874
parse_VkSubmitInfo2KHR(const char * s,Json::Value & obj,VkSubmitInfo2KHR & o)12875 static void parse_VkSubmitInfo2KHR(const char *s, Json::Value &obj, VkSubmitInfo2KHR &o)
12876 {
12877
12878 parse_VkStructureType("sType", obj["sType"], (o.sType));
12879
12880 o.pNext = (VkSubmitInfo2KHR *)parsePNextChain(obj);
12881
12882 parse_VkSubmitFlagsKHR("flags", obj["flags"], (o.flags));
12883
12884 parse_uint32_t("waitSemaphoreInfoCount", obj["waitSemaphoreInfoCount"], (o.waitSemaphoreInfoCount));
12885
12886 (o.pWaitSemaphoreInfos) =
12887 (VkSemaphoreSubmitInfoKHR *)s_globalMem.allocate((o.waitSemaphoreInfoCount), sizeof(VkSemaphoreSubmitInfoKHR));
12888 Json::Value &obj_pWaitSemaphoreInfos = obj["pWaitSemaphoreInfos"];
12889 if (obj_pWaitSemaphoreInfos.size() == 0)
12890 (o.pWaitSemaphoreInfos) = nullptr;
12891 else
12892 {
12893 for (unsigned int i = 0; i < (o.waitSemaphoreInfoCount); i++)
12894 {
12895 parse_VkSemaphoreSubmitInfoKHR("pWaitSemaphoreInfos", obj_pWaitSemaphoreInfos[i],
12896 const_cast<VkSemaphoreSubmitInfoKHR &>((o.pWaitSemaphoreInfos[i])));
12897 }
12898 }
12899
12900 parse_uint32_t("commandBufferInfoCount", obj["commandBufferInfoCount"], (o.commandBufferInfoCount));
12901
12902 (o.pCommandBufferInfos) = (VkCommandBufferSubmitInfoKHR *)s_globalMem.allocate(
12903 (o.commandBufferInfoCount), sizeof(VkCommandBufferSubmitInfoKHR));
12904 Json::Value &obj_pCommandBufferInfos = obj["pCommandBufferInfos"];
12905 if (obj_pCommandBufferInfos.size() == 0)
12906 (o.pCommandBufferInfos) = nullptr;
12907 else
12908 {
12909 for (unsigned int i = 0; i < (o.commandBufferInfoCount); i++)
12910 {
12911 parse_VkCommandBufferSubmitInfoKHR("pCommandBufferInfos", obj_pCommandBufferInfos[i],
12912 const_cast<VkCommandBufferSubmitInfoKHR &>((o.pCommandBufferInfos[i])));
12913 }
12914 }
12915
12916 parse_uint32_t("signalSemaphoreInfoCount", obj["signalSemaphoreInfoCount"], (o.signalSemaphoreInfoCount));
12917
12918 (o.pSignalSemaphoreInfos) = (VkSemaphoreSubmitInfoKHR *)s_globalMem.allocate((o.signalSemaphoreInfoCount),
12919 sizeof(VkSemaphoreSubmitInfoKHR));
12920 Json::Value &obj_pSignalSemaphoreInfos = obj["pSignalSemaphoreInfos"];
12921 if (obj_pSignalSemaphoreInfos.size() == 0)
12922 (o.pSignalSemaphoreInfos) = nullptr;
12923 else
12924 {
12925 for (unsigned int i = 0; i < (o.signalSemaphoreInfoCount); i++)
12926 {
12927 parse_VkSemaphoreSubmitInfoKHR("pSignalSemaphoreInfos", obj_pSignalSemaphoreInfos[i],
12928 const_cast<VkSemaphoreSubmitInfoKHR &>((o.pSignalSemaphoreInfos[i])));
12929 }
12930 }
12931 }
12932
parse_VkPhysicalDeviceSynchronization2FeaturesKHR(const char * s,Json::Value & obj,VkPhysicalDeviceSynchronization2FeaturesKHR & o)12933 static void parse_VkPhysicalDeviceSynchronization2FeaturesKHR(const char *s, Json::Value &obj,
12934 VkPhysicalDeviceSynchronization2FeaturesKHR &o)
12935 {
12936
12937 parse_VkStructureType("sType", obj["sType"], (o.sType));
12938
12939 o.pNext = (VkPhysicalDeviceSynchronization2FeaturesKHR *)parsePNextChain(obj);
12940
12941 parse_VkBool32("synchronization2", obj["synchronization2"], (o.synchronization2));
12942 }
12943
parse_VkQueueFamilyCheckpointProperties2NV(const char * s,Json::Value & obj,VkQueueFamilyCheckpointProperties2NV & o)12944 static void parse_VkQueueFamilyCheckpointProperties2NV(const char *s, Json::Value &obj,
12945 VkQueueFamilyCheckpointProperties2NV &o)
12946 {
12947
12948 parse_VkStructureType("sType", obj["sType"], (o.sType));
12949
12950 o.pNext = (VkQueueFamilyCheckpointProperties2NV *)parsePNextChain(obj);
12951
12952 parse_VkPipelineStageFlags2KHR("checkpointExecutionStageMask", obj["checkpointExecutionStageMask"],
12953 (o.checkpointExecutionStageMask));
12954 }
12955
parse_VkCheckpointData2NV(const char * s,Json::Value & obj,VkCheckpointData2NV & o)12956 static void parse_VkCheckpointData2NV(const char *s, Json::Value &obj, VkCheckpointData2NV &o)
12957 {
12958
12959 parse_VkStructureType("sType", obj["sType"], (o.sType));
12960
12961 o.pNext = (VkCheckpointData2NV *)parsePNextChain(obj);
12962
12963 parse_VkPipelineStageFlags2KHR("stage", obj["stage"], (o.stage));
12964 }
12965
parse_VkBufferCopy2KHR(const char * s,Json::Value & obj,VkBufferCopy2KHR & o)12966 static void parse_VkBufferCopy2KHR(const char *s, Json::Value &obj, VkBufferCopy2KHR &o)
12967 {
12968
12969 parse_VkStructureType("sType", obj["sType"], (o.sType));
12970
12971 o.pNext = (VkBufferCopy2KHR *)parsePNextChain(obj);
12972
12973 parse_VkDeviceSize("srcOffset", obj["srcOffset"], (o.srcOffset));
12974
12975 parse_VkDeviceSize("dstOffset", obj["dstOffset"], (o.dstOffset));
12976
12977 parse_VkDeviceSize("size", obj["size"], (o.size));
12978 }
12979
parse_VkCopyBufferInfo2KHR(const char * s,Json::Value & obj,VkCopyBufferInfo2KHR & o)12980 static void parse_VkCopyBufferInfo2KHR(const char *s, Json::Value &obj, VkCopyBufferInfo2KHR &o)
12981 {
12982
12983 parse_VkStructureType("sType", obj["sType"], (o.sType));
12984
12985 o.pNext = (VkCopyBufferInfo2KHR *)parsePNextChain(obj);
12986
12987 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
12988
12989 (o.pRegions) = (VkBufferCopy2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkBufferCopy2KHR));
12990 Json::Value &obj_pRegions = obj["pRegions"];
12991 if (obj_pRegions.size() == 0)
12992 (o.pRegions) = nullptr;
12993 else
12994 {
12995 for (unsigned int i = 0; i < (o.regionCount); i++)
12996 {
12997 parse_VkBufferCopy2KHR("pRegions", obj_pRegions[i], const_cast<VkBufferCopy2KHR &>((o.pRegions[i])));
12998 }
12999 }
13000 }
13001
parse_VkImageCopy2KHR(const char * s,Json::Value & obj,VkImageCopy2KHR & o)13002 static void parse_VkImageCopy2KHR(const char *s, Json::Value &obj, VkImageCopy2KHR &o)
13003 {
13004
13005 parse_VkStructureType("sType", obj["sType"], (o.sType));
13006
13007 o.pNext = (VkImageCopy2KHR *)parsePNextChain(obj);
13008
13009 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
13010
13011 parse_VkOffset3D("srcOffset", obj["srcOffset"], (o.srcOffset));
13012
13013 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
13014
13015 parse_VkOffset3D("dstOffset", obj["dstOffset"], (o.dstOffset));
13016
13017 parse_VkExtent3D("extent", obj["extent"], (o.extent));
13018 }
13019
parse_VkCopyImageInfo2KHR(const char * s,Json::Value & obj,VkCopyImageInfo2KHR & o)13020 static void parse_VkCopyImageInfo2KHR(const char *s, Json::Value &obj, VkCopyImageInfo2KHR &o)
13021 {
13022
13023 parse_VkStructureType("sType", obj["sType"], (o.sType));
13024
13025 o.pNext = (VkCopyImageInfo2KHR *)parsePNextChain(obj);
13026
13027 parse_VkImageLayout("srcImageLayout", obj["srcImageLayout"], (o.srcImageLayout));
13028
13029 parse_VkImageLayout("dstImageLayout", obj["dstImageLayout"], (o.dstImageLayout));
13030
13031 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
13032
13033 (o.pRegions) = (VkImageCopy2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkImageCopy2KHR));
13034 Json::Value &obj_pRegions = obj["pRegions"];
13035 if (obj_pRegions.size() == 0)
13036 (o.pRegions) = nullptr;
13037 else
13038 {
13039 for (unsigned int i = 0; i < (o.regionCount); i++)
13040 {
13041 parse_VkImageCopy2KHR("pRegions", obj_pRegions[i], const_cast<VkImageCopy2KHR &>((o.pRegions[i])));
13042 }
13043 }
13044 }
13045
parse_VkBufferImageCopy2KHR(const char * s,Json::Value & obj,VkBufferImageCopy2KHR & o)13046 static void parse_VkBufferImageCopy2KHR(const char *s, Json::Value &obj, VkBufferImageCopy2KHR &o)
13047 {
13048
13049 parse_VkStructureType("sType", obj["sType"], (o.sType));
13050
13051 o.pNext = (VkBufferImageCopy2KHR *)parsePNextChain(obj);
13052
13053 parse_VkDeviceSize("bufferOffset", obj["bufferOffset"], (o.bufferOffset));
13054
13055 parse_uint32_t("bufferRowLength", obj["bufferRowLength"], (o.bufferRowLength));
13056
13057 parse_uint32_t("bufferImageHeight", obj["bufferImageHeight"], (o.bufferImageHeight));
13058
13059 parse_VkImageSubresourceLayers("imageSubresource", obj["imageSubresource"], (o.imageSubresource));
13060
13061 parse_VkOffset3D("imageOffset", obj["imageOffset"], (o.imageOffset));
13062
13063 parse_VkExtent3D("imageExtent", obj["imageExtent"], (o.imageExtent));
13064 }
13065
parse_VkCopyBufferToImageInfo2KHR(const char * s,Json::Value & obj,VkCopyBufferToImageInfo2KHR & o)13066 static void parse_VkCopyBufferToImageInfo2KHR(const char *s, Json::Value &obj, VkCopyBufferToImageInfo2KHR &o)
13067 {
13068
13069 parse_VkStructureType("sType", obj["sType"], (o.sType));
13070
13071 o.pNext = (VkCopyBufferToImageInfo2KHR *)parsePNextChain(obj);
13072
13073 parse_VkImageLayout("dstImageLayout", obj["dstImageLayout"], (o.dstImageLayout));
13074
13075 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
13076
13077 (o.pRegions) = (VkBufferImageCopy2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkBufferImageCopy2KHR));
13078 Json::Value &obj_pRegions = obj["pRegions"];
13079 if (obj_pRegions.size() == 0)
13080 (o.pRegions) = nullptr;
13081 else
13082 {
13083 for (unsigned int i = 0; i < (o.regionCount); i++)
13084 {
13085 parse_VkBufferImageCopy2KHR("pRegions", obj_pRegions[i],
13086 const_cast<VkBufferImageCopy2KHR &>((o.pRegions[i])));
13087 }
13088 }
13089 }
13090
parse_VkCopyImageToBufferInfo2KHR(const char * s,Json::Value & obj,VkCopyImageToBufferInfo2KHR & o)13091 static void parse_VkCopyImageToBufferInfo2KHR(const char *s, Json::Value &obj, VkCopyImageToBufferInfo2KHR &o)
13092 {
13093
13094 parse_VkStructureType("sType", obj["sType"], (o.sType));
13095
13096 o.pNext = (VkCopyImageToBufferInfo2KHR *)parsePNextChain(obj);
13097
13098 parse_VkImageLayout("srcImageLayout", obj["srcImageLayout"], (o.srcImageLayout));
13099
13100 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
13101
13102 (o.pRegions) = (VkBufferImageCopy2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkBufferImageCopy2KHR));
13103 Json::Value &obj_pRegions = obj["pRegions"];
13104 if (obj_pRegions.size() == 0)
13105 (o.pRegions) = nullptr;
13106 else
13107 {
13108 for (unsigned int i = 0; i < (o.regionCount); i++)
13109 {
13110 parse_VkBufferImageCopy2KHR("pRegions", obj_pRegions[i],
13111 const_cast<VkBufferImageCopy2KHR &>((o.pRegions[i])));
13112 }
13113 }
13114 }
13115
parse_VkImageBlit2KHR(const char * s,Json::Value & obj,VkImageBlit2KHR & o)13116 static void parse_VkImageBlit2KHR(const char *s, Json::Value &obj, VkImageBlit2KHR &o)
13117 {
13118
13119 parse_VkStructureType("sType", obj["sType"], (o.sType));
13120
13121 o.pNext = (VkImageBlit2KHR *)parsePNextChain(obj);
13122
13123 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
13124
13125 Json::Value &obj_srcOffsets_arr = obj["srcOffsets"];
13126 for (unsigned int i = 0; i < obj_srcOffsets_arr.size(); i++)
13127 {
13128 parse_VkOffset3D("srcOffsets", obj_srcOffsets_arr[i], const_cast<VkOffset3D &>((o.srcOffsets[i])));
13129 }
13130
13131 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
13132
13133 Json::Value &obj_dstOffsets_arr = obj["dstOffsets"];
13134 for (unsigned int i = 0; i < obj_dstOffsets_arr.size(); i++)
13135 {
13136 parse_VkOffset3D("dstOffsets", obj_dstOffsets_arr[i], const_cast<VkOffset3D &>((o.dstOffsets[i])));
13137 }
13138 }
13139
parse_VkBlitImageInfo2KHR(const char * s,Json::Value & obj,VkBlitImageInfo2KHR & o)13140 static void parse_VkBlitImageInfo2KHR(const char *s, Json::Value &obj, VkBlitImageInfo2KHR &o)
13141 {
13142
13143 parse_VkStructureType("sType", obj["sType"], (o.sType));
13144
13145 o.pNext = (VkBlitImageInfo2KHR *)parsePNextChain(obj);
13146
13147 parse_VkImageLayout("srcImageLayout", obj["srcImageLayout"], (o.srcImageLayout));
13148
13149 parse_VkImageLayout("dstImageLayout", obj["dstImageLayout"], (o.dstImageLayout));
13150
13151 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
13152
13153 (o.pRegions) = (VkImageBlit2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkImageBlit2KHR));
13154 Json::Value &obj_pRegions = obj["pRegions"];
13155 if (obj_pRegions.size() == 0)
13156 (o.pRegions) = nullptr;
13157 else
13158 {
13159 for (unsigned int i = 0; i < (o.regionCount); i++)
13160 {
13161 parse_VkImageBlit2KHR("pRegions", obj_pRegions[i], const_cast<VkImageBlit2KHR &>((o.pRegions[i])));
13162 }
13163 }
13164
13165 parse_VkFilter("filter", obj["filter"], (o.filter));
13166 }
13167
parse_VkImageResolve2KHR(const char * s,Json::Value & obj,VkImageResolve2KHR & o)13168 static void parse_VkImageResolve2KHR(const char *s, Json::Value &obj, VkImageResolve2KHR &o)
13169 {
13170
13171 parse_VkStructureType("sType", obj["sType"], (o.sType));
13172
13173 o.pNext = (VkImageResolve2KHR *)parsePNextChain(obj);
13174
13175 parse_VkImageSubresourceLayers("srcSubresource", obj["srcSubresource"], (o.srcSubresource));
13176
13177 parse_VkOffset3D("srcOffset", obj["srcOffset"], (o.srcOffset));
13178
13179 parse_VkImageSubresourceLayers("dstSubresource", obj["dstSubresource"], (o.dstSubresource));
13180
13181 parse_VkOffset3D("dstOffset", obj["dstOffset"], (o.dstOffset));
13182
13183 parse_VkExtent3D("extent", obj["extent"], (o.extent));
13184 }
13185
parse_VkResolveImageInfo2KHR(const char * s,Json::Value & obj,VkResolveImageInfo2KHR & o)13186 static void parse_VkResolveImageInfo2KHR(const char *s, Json::Value &obj, VkResolveImageInfo2KHR &o)
13187 {
13188
13189 parse_VkStructureType("sType", obj["sType"], (o.sType));
13190
13191 o.pNext = (VkResolveImageInfo2KHR *)parsePNextChain(obj);
13192
13193 parse_VkImageLayout("srcImageLayout", obj["srcImageLayout"], (o.srcImageLayout));
13194
13195 parse_VkImageLayout("dstImageLayout", obj["dstImageLayout"], (o.dstImageLayout));
13196
13197 parse_uint32_t("regionCount", obj["regionCount"], (o.regionCount));
13198
13199 (o.pRegions) = (VkImageResolve2KHR *)s_globalMem.allocate((o.regionCount), sizeof(VkImageResolve2KHR));
13200 Json::Value &obj_pRegions = obj["pRegions"];
13201 if (obj_pRegions.size() == 0)
13202 (o.pRegions) = nullptr;
13203 else
13204 {
13205 for (unsigned int i = 0; i < (o.regionCount); i++)
13206 {
13207 parse_VkImageResolve2KHR("pRegions", obj_pRegions[i], const_cast<VkImageResolve2KHR &>((o.pRegions[i])));
13208 }
13209 }
13210 }
13211
parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & o)13212 static void parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
13213 const char *s, Json::Value &obj, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &o)
13214 {
13215
13216 parse_VkStructureType("sType", obj["sType"], (o.sType));
13217
13218 o.pNext = (VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT *)parsePNextChain(obj);
13219
13220 parse_VkBool32("textureCompressionASTC_HDR", obj["textureCompressionASTC_HDR"], (o.textureCompressionASTC_HDR));
13221 }
13222
parse_VkImageViewASTCDecodeModeEXT(const char * s,Json::Value & obj,VkImageViewASTCDecodeModeEXT & o)13223 static void parse_VkImageViewASTCDecodeModeEXT(const char *s, Json::Value &obj, VkImageViewASTCDecodeModeEXT &o)
13224 {
13225
13226 parse_VkStructureType("sType", obj["sType"], (o.sType));
13227
13228 o.pNext = (VkImageViewASTCDecodeModeEXT *)parsePNextChain(obj);
13229
13230 parse_VkFormat("decodeMode", obj["decodeMode"], (o.decodeMode));
13231 }
13232
parse_VkPhysicalDeviceASTCDecodeFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceASTCDecodeFeaturesEXT & o)13233 static void parse_VkPhysicalDeviceASTCDecodeFeaturesEXT(const char *s, Json::Value &obj,
13234 VkPhysicalDeviceASTCDecodeFeaturesEXT &o)
13235 {
13236
13237 parse_VkStructureType("sType", obj["sType"], (o.sType));
13238
13239 o.pNext = (VkPhysicalDeviceASTCDecodeFeaturesEXT *)parsePNextChain(obj);
13240
13241 parse_VkBool32("decodeModeSharedExponent", obj["decodeModeSharedExponent"], (o.decodeModeSharedExponent));
13242 }
13243
13244 static std::map<std::string, int> VkSurfaceCounterFlagBitsEXT_map = {
13245 std::make_pair("VK_SURFACE_COUNTER_VBLANK_BIT_EXT", 1UL << 0),
13246 };
parse_VkSurfaceCounterFlagBitsEXT(const char * s,Json::Value & obj,VkSurfaceCounterFlagBitsEXT & o)13247 static void parse_VkSurfaceCounterFlagBitsEXT(const char *s, Json::Value &obj, VkSurfaceCounterFlagBitsEXT &o)
13248 {
13249 std::string _res = obj.asString();
13250 o = (VkSurfaceCounterFlagBitsEXT)VkSurfaceCounterFlagBitsEXT_map[std::string(_res)];
13251 }
13252
parse_VkSurfaceCounterFlagsEXT(const char * s,Json::Value & obj,VkSurfaceCounterFlagsEXT & o)13253 static void parse_VkSurfaceCounterFlagsEXT(const char *s, Json::Value &obj, VkSurfaceCounterFlagsEXT &o)
13254 {
13255 o = (VkSurfaceCounterFlagsEXT)0;
13256 std::string _res = obj.asString();
13257 std::vector<std::string> bitmasks;
13258 std::istringstream inputStream(_res);
13259 std::string tempStr;
13260 while (getline(inputStream, tempStr, '|'))
13261 {
13262 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
13263 bitmasks.push_back(tempStr);
13264 }
13265 for (auto &it : bitmasks)
13266 {
13267 o |= (VkSurfaceCounterFlagBitsEXT)VkSurfaceCounterFlagBitsEXT_map[it];
13268 }
13269 }
13270
parse_VkSurfaceCapabilities2EXT(const char * s,Json::Value & obj,VkSurfaceCapabilities2EXT & o)13271 static void parse_VkSurfaceCapabilities2EXT(const char *s, Json::Value &obj, VkSurfaceCapabilities2EXT &o)
13272 {
13273
13274 parse_VkStructureType("sType", obj["sType"], (o.sType));
13275
13276 o.pNext = (VkSurfaceCapabilities2EXT *)parsePNextChain(obj);
13277
13278 parse_uint32_t("minImageCount", obj["minImageCount"], (o.minImageCount));
13279
13280 parse_uint32_t("maxImageCount", obj["maxImageCount"], (o.maxImageCount));
13281
13282 parse_VkExtent2D("currentExtent", obj["currentExtent"], (o.currentExtent));
13283
13284 parse_VkExtent2D("minImageExtent", obj["minImageExtent"], (o.minImageExtent));
13285
13286 parse_VkExtent2D("maxImageExtent", obj["maxImageExtent"], (o.maxImageExtent));
13287
13288 parse_uint32_t("maxImageArrayLayers", obj["maxImageArrayLayers"], (o.maxImageArrayLayers));
13289
13290 parse_VkSurfaceTransformFlagsKHR("supportedTransforms", obj["supportedTransforms"], (o.supportedTransforms));
13291
13292 parse_VkSurfaceTransformFlagBitsKHR("currentTransform", obj["currentTransform"], (o.currentTransform));
13293
13294 parse_VkCompositeAlphaFlagsKHR("supportedCompositeAlpha", obj["supportedCompositeAlpha"],
13295 (o.supportedCompositeAlpha));
13296
13297 parse_VkImageUsageFlags("supportedUsageFlags", obj["supportedUsageFlags"], (o.supportedUsageFlags));
13298
13299 parse_VkSurfaceCounterFlagsEXT("supportedSurfaceCounters", obj["supportedSurfaceCounters"],
13300 (o.supportedSurfaceCounters));
13301 }
13302
13303 static std::map<std::string, int> VkDisplayPowerStateEXT_map = {
13304 std::make_pair("VK_DISPLAY_POWER_STATE_OFF_EXT", 0),
13305 std::make_pair("VK_DISPLAY_POWER_STATE_SUSPEND_EXT", 1),
13306 std::make_pair("VK_DISPLAY_POWER_STATE_ON_EXT", 2),
13307 };
parse_VkDisplayPowerStateEXT(const char * s,Json::Value & obj,VkDisplayPowerStateEXT & o)13308 static void parse_VkDisplayPowerStateEXT(const char *s, Json::Value &obj, VkDisplayPowerStateEXT &o)
13309 {
13310 std::string _res = obj.asString();
13311 o = (VkDisplayPowerStateEXT)VkDisplayPowerStateEXT_map[std::string(_res)];
13312 }
13313
13314 static std::map<std::string, int> VkDeviceEventTypeEXT_map = {
13315 std::make_pair("VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT", 0),
13316 };
parse_VkDeviceEventTypeEXT(const char * s,Json::Value & obj,VkDeviceEventTypeEXT & o)13317 static void parse_VkDeviceEventTypeEXT(const char *s, Json::Value &obj, VkDeviceEventTypeEXT &o)
13318 {
13319 std::string _res = obj.asString();
13320 o = (VkDeviceEventTypeEXT)VkDeviceEventTypeEXT_map[std::string(_res)];
13321 }
13322
13323 static std::map<std::string, int> VkDisplayEventTypeEXT_map = {
13324 std::make_pair("VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT", 0),
13325 };
parse_VkDisplayEventTypeEXT(const char * s,Json::Value & obj,VkDisplayEventTypeEXT & o)13326 static void parse_VkDisplayEventTypeEXT(const char *s, Json::Value &obj, VkDisplayEventTypeEXT &o)
13327 {
13328 std::string _res = obj.asString();
13329 o = (VkDisplayEventTypeEXT)VkDisplayEventTypeEXT_map[std::string(_res)];
13330 }
13331
parse_VkDisplayPowerInfoEXT(const char * s,Json::Value & obj,VkDisplayPowerInfoEXT & o)13332 static void parse_VkDisplayPowerInfoEXT(const char *s, Json::Value &obj, VkDisplayPowerInfoEXT &o)
13333 {
13334
13335 parse_VkStructureType("sType", obj["sType"], (o.sType));
13336
13337 o.pNext = (VkDisplayPowerInfoEXT *)parsePNextChain(obj);
13338
13339 parse_VkDisplayPowerStateEXT("powerState", obj["powerState"], (o.powerState));
13340 }
13341
parse_VkDeviceEventInfoEXT(const char * s,Json::Value & obj,VkDeviceEventInfoEXT & o)13342 static void parse_VkDeviceEventInfoEXT(const char *s, Json::Value &obj, VkDeviceEventInfoEXT &o)
13343 {
13344
13345 parse_VkStructureType("sType", obj["sType"], (o.sType));
13346
13347 o.pNext = (VkDeviceEventInfoEXT *)parsePNextChain(obj);
13348
13349 parse_VkDeviceEventTypeEXT("deviceEvent", obj["deviceEvent"], (o.deviceEvent));
13350 }
13351
parse_VkDisplayEventInfoEXT(const char * s,Json::Value & obj,VkDisplayEventInfoEXT & o)13352 static void parse_VkDisplayEventInfoEXT(const char *s, Json::Value &obj, VkDisplayEventInfoEXT &o)
13353 {
13354
13355 parse_VkStructureType("sType", obj["sType"], (o.sType));
13356
13357 o.pNext = (VkDisplayEventInfoEXT *)parsePNextChain(obj);
13358
13359 parse_VkDisplayEventTypeEXT("displayEvent", obj["displayEvent"], (o.displayEvent));
13360 }
13361
parse_VkSwapchainCounterCreateInfoEXT(const char * s,Json::Value & obj,VkSwapchainCounterCreateInfoEXT & o)13362 static void parse_VkSwapchainCounterCreateInfoEXT(const char *s, Json::Value &obj, VkSwapchainCounterCreateInfoEXT &o)
13363 {
13364
13365 parse_VkStructureType("sType", obj["sType"], (o.sType));
13366
13367 o.pNext = (VkSwapchainCounterCreateInfoEXT *)parsePNextChain(obj);
13368
13369 parse_VkSurfaceCounterFlagsEXT("surfaceCounters", obj["surfaceCounters"], (o.surfaceCounters));
13370 }
13371
13372 static std::map<std::string, int> VkDiscardRectangleModeEXT_map = {
13373 std::make_pair("VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT", 0),
13374 std::make_pair("VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT", 1),
13375 };
parse_VkDiscardRectangleModeEXT(const char * s,Json::Value & obj,VkDiscardRectangleModeEXT & o)13376 static void parse_VkDiscardRectangleModeEXT(const char *s, Json::Value &obj, VkDiscardRectangleModeEXT &o)
13377 {
13378 std::string _res = obj.asString();
13379 o = (VkDiscardRectangleModeEXT)VkDiscardRectangleModeEXT_map[std::string(_res)];
13380 }
13381
parse_VkPipelineDiscardRectangleStateCreateFlagsEXT(const char * s,Json::Value & obj,VkPipelineDiscardRectangleStateCreateFlagsEXT & o)13382 static void parse_VkPipelineDiscardRectangleStateCreateFlagsEXT(const char *s, Json::Value &obj,
13383 VkPipelineDiscardRectangleStateCreateFlagsEXT &o)
13384 {
13385 if (obj.isString())
13386 {
13387 std::string _res = obj.asString();
13388 sscanf(_res.c_str(), "%u", &o);
13389 }
13390 else
13391 {
13392 o = obj.asUInt();
13393 }
13394 }
13395
parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceDiscardRectanglePropertiesEXT & o)13396 static void parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT(const char *s, Json::Value &obj,
13397 VkPhysicalDeviceDiscardRectanglePropertiesEXT &o)
13398 {
13399
13400 parse_VkStructureType("sType", obj["sType"], (o.sType));
13401
13402 o.pNext = (VkPhysicalDeviceDiscardRectanglePropertiesEXT *)parsePNextChain(obj);
13403
13404 parse_uint32_t("maxDiscardRectangles", obj["maxDiscardRectangles"], (o.maxDiscardRectangles));
13405 }
13406
parse_VkPipelineDiscardRectangleStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineDiscardRectangleStateCreateInfoEXT & o)13407 static void parse_VkPipelineDiscardRectangleStateCreateInfoEXT(const char *s, Json::Value &obj,
13408 VkPipelineDiscardRectangleStateCreateInfoEXT &o)
13409 {
13410
13411 parse_VkStructureType("sType", obj["sType"], (o.sType));
13412
13413 o.pNext = (VkPipelineDiscardRectangleStateCreateInfoEXT *)parsePNextChain(obj);
13414
13415 parse_VkPipelineDiscardRectangleStateCreateFlagsEXT("flags", obj["flags"], (o.flags));
13416
13417 parse_VkDiscardRectangleModeEXT("discardRectangleMode", obj["discardRectangleMode"], (o.discardRectangleMode));
13418
13419 parse_uint32_t("discardRectangleCount", obj["discardRectangleCount"], (o.discardRectangleCount));
13420
13421 (o.pDiscardRectangles) = (VkRect2D *)s_globalMem.allocate((o.discardRectangleCount), sizeof(VkRect2D));
13422 Json::Value &obj_pDiscardRectangles = obj["pDiscardRectangles"];
13423 if (obj_pDiscardRectangles.size() == 0)
13424 (o.pDiscardRectangles) = nullptr;
13425 else
13426 {
13427 for (unsigned int i = 0; i < (o.discardRectangleCount); i++)
13428 {
13429 parse_VkRect2D("pDiscardRectangles", obj_pDiscardRectangles[i],
13430 const_cast<VkRect2D &>((o.pDiscardRectangles[i])));
13431 }
13432 }
13433 }
13434
13435 static std::map<std::string, int> VkConservativeRasterizationModeEXT_map = {
13436 std::make_pair("VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT", 0),
13437 std::make_pair("VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT", 1),
13438 std::make_pair("VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT", 2),
13439 };
parse_VkConservativeRasterizationModeEXT(const char * s,Json::Value & obj,VkConservativeRasterizationModeEXT & o)13440 static void parse_VkConservativeRasterizationModeEXT(const char *s, Json::Value &obj,
13441 VkConservativeRasterizationModeEXT &o)
13442 {
13443 std::string _res = obj.asString();
13444 o = (VkConservativeRasterizationModeEXT)VkConservativeRasterizationModeEXT_map[std::string(_res)];
13445 }
13446
parse_VkPipelineRasterizationConservativeStateCreateFlagsEXT(const char * s,Json::Value & obj,VkPipelineRasterizationConservativeStateCreateFlagsEXT & o)13447 static void parse_VkPipelineRasterizationConservativeStateCreateFlagsEXT(
13448 const char *s, Json::Value &obj, VkPipelineRasterizationConservativeStateCreateFlagsEXT &o)
13449 {
13450 if (obj.isString())
13451 {
13452 std::string _res = obj.asString();
13453 sscanf(_res.c_str(), "%u", &o);
13454 }
13455 else
13456 {
13457 o = obj.asUInt();
13458 }
13459 }
13460
parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceConservativeRasterizationPropertiesEXT & o)13461 static void parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
13462 const char *s, Json::Value &obj, VkPhysicalDeviceConservativeRasterizationPropertiesEXT &o)
13463 {
13464
13465 parse_VkStructureType("sType", obj["sType"], (o.sType));
13466
13467 o.pNext = (VkPhysicalDeviceConservativeRasterizationPropertiesEXT *)parsePNextChain(obj);
13468
13469 parse_float("primitiveOverestimationSize", obj["primitiveOverestimationSize"], (o.primitiveOverestimationSize));
13470
13471 parse_float("maxExtraPrimitiveOverestimationSize", obj["maxExtraPrimitiveOverestimationSize"],
13472 (o.maxExtraPrimitiveOverestimationSize));
13473
13474 parse_float("extraPrimitiveOverestimationSizeGranularity", obj["extraPrimitiveOverestimationSizeGranularity"],
13475 (o.extraPrimitiveOverestimationSizeGranularity));
13476
13477 parse_VkBool32("primitiveUnderestimation", obj["primitiveUnderestimation"], (o.primitiveUnderestimation));
13478
13479 parse_VkBool32("conservativePointAndLineRasterization", obj["conservativePointAndLineRasterization"],
13480 (o.conservativePointAndLineRasterization));
13481
13482 parse_VkBool32("degenerateTrianglesRasterized", obj["degenerateTrianglesRasterized"],
13483 (o.degenerateTrianglesRasterized));
13484
13485 parse_VkBool32("degenerateLinesRasterized", obj["degenerateLinesRasterized"], (o.degenerateLinesRasterized));
13486
13487 parse_VkBool32("fullyCoveredFragmentShaderInputVariable", obj["fullyCoveredFragmentShaderInputVariable"],
13488 (o.fullyCoveredFragmentShaderInputVariable));
13489
13490 parse_VkBool32("conservativeRasterizationPostDepthCoverage", obj["conservativeRasterizationPostDepthCoverage"],
13491 (o.conservativeRasterizationPostDepthCoverage));
13492 }
13493
parse_VkPipelineRasterizationConservativeStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineRasterizationConservativeStateCreateInfoEXT & o)13494 static void parse_VkPipelineRasterizationConservativeStateCreateInfoEXT(
13495 const char *s, Json::Value &obj, VkPipelineRasterizationConservativeStateCreateInfoEXT &o)
13496 {
13497
13498 parse_VkStructureType("sType", obj["sType"], (o.sType));
13499
13500 o.pNext = (VkPipelineRasterizationConservativeStateCreateInfoEXT *)parsePNextChain(obj);
13501
13502 parse_VkPipelineRasterizationConservativeStateCreateFlagsEXT("flags", obj["flags"], (o.flags));
13503
13504 parse_VkConservativeRasterizationModeEXT("conservativeRasterizationMode", obj["conservativeRasterizationMode"],
13505 (o.conservativeRasterizationMode));
13506
13507 parse_float("extraPrimitiveOverestimationSize", obj["extraPrimitiveOverestimationSize"],
13508 (o.extraPrimitiveOverestimationSize));
13509 }
13510
parse_VkPipelineRasterizationDepthClipStateCreateFlagsEXT(const char * s,Json::Value & obj,VkPipelineRasterizationDepthClipStateCreateFlagsEXT & o)13511 static void parse_VkPipelineRasterizationDepthClipStateCreateFlagsEXT(
13512 const char *s, Json::Value &obj, VkPipelineRasterizationDepthClipStateCreateFlagsEXT &o)
13513 {
13514 if (obj.isString())
13515 {
13516 std::string _res = obj.asString();
13517 sscanf(_res.c_str(), "%u", &o);
13518 }
13519 else
13520 {
13521 o = obj.asUInt();
13522 }
13523 }
13524
parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceDepthClipEnableFeaturesEXT & o)13525 static void parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const char *s, Json::Value &obj,
13526 VkPhysicalDeviceDepthClipEnableFeaturesEXT &o)
13527 {
13528
13529 parse_VkStructureType("sType", obj["sType"], (o.sType));
13530
13531 o.pNext = (VkPhysicalDeviceDepthClipEnableFeaturesEXT *)parsePNextChain(obj);
13532
13533 parse_VkBool32("depthClipEnable", obj["depthClipEnable"], (o.depthClipEnable));
13534 }
13535
parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineRasterizationDepthClipStateCreateInfoEXT & o)13536 static void parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
13537 const char *s, Json::Value &obj, VkPipelineRasterizationDepthClipStateCreateInfoEXT &o)
13538 {
13539
13540 parse_VkStructureType("sType", obj["sType"], (o.sType));
13541
13542 o.pNext = (VkPipelineRasterizationDepthClipStateCreateInfoEXT *)parsePNextChain(obj);
13543
13544 parse_VkPipelineRasterizationDepthClipStateCreateFlagsEXT("flags", obj["flags"], (o.flags));
13545
13546 parse_VkBool32("depthClipEnable", obj["depthClipEnable"], (o.depthClipEnable));
13547 }
13548
parse_VkXYColorEXT(const char * s,Json::Value & obj,VkXYColorEXT & o)13549 static void parse_VkXYColorEXT(const char *s, Json::Value &obj, VkXYColorEXT &o)
13550 {
13551
13552 parse_float("x", obj["x"], (o.x));
13553
13554 parse_float("y", obj["y"], (o.y));
13555 }
13556
parse_VkHdrMetadataEXT(const char * s,Json::Value & obj,VkHdrMetadataEXT & o)13557 static void parse_VkHdrMetadataEXT(const char *s, Json::Value &obj, VkHdrMetadataEXT &o)
13558 {
13559
13560 parse_VkStructureType("sType", obj["sType"], (o.sType));
13561
13562 o.pNext = (VkHdrMetadataEXT *)parsePNextChain(obj);
13563
13564 parse_VkXYColorEXT("displayPrimaryRed", obj["displayPrimaryRed"], (o.displayPrimaryRed));
13565
13566 parse_VkXYColorEXT("displayPrimaryGreen", obj["displayPrimaryGreen"], (o.displayPrimaryGreen));
13567
13568 parse_VkXYColorEXT("displayPrimaryBlue", obj["displayPrimaryBlue"], (o.displayPrimaryBlue));
13569
13570 parse_VkXYColorEXT("whitePoint", obj["whitePoint"], (o.whitePoint));
13571
13572 parse_float("maxLuminance", obj["maxLuminance"], (o.maxLuminance));
13573
13574 parse_float("minLuminance", obj["minLuminance"], (o.minLuminance));
13575
13576 parse_float("maxContentLightLevel", obj["maxContentLightLevel"], (o.maxContentLightLevel));
13577
13578 parse_float("maxFrameAverageLightLevel", obj["maxFrameAverageLightLevel"], (o.maxFrameAverageLightLevel));
13579 }
13580
parse_VkDebugUtilsMessengerEXT(const char * s,Json::Value & obj,VkDebugUtilsMessengerEXT & o)13581 static void parse_VkDebugUtilsMessengerEXT(const char *s, Json::Value &obj, VkDebugUtilsMessengerEXT &o)
13582 {
13583 // std::string _res = obj.asString();
13584 }
13585
13586 static std::map<std::string, int> VkDebugUtilsMessageSeverityFlagBitsEXT_map = {
13587 std::make_pair("VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT", 1UL << 0),
13588 std::make_pair("VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT", 1UL << 4),
13589 std::make_pair("VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT", 1UL << 8),
13590 std::make_pair("VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT", 1UL << 12),
13591 };
parse_VkDebugUtilsMessageSeverityFlagBitsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessageSeverityFlagBitsEXT & o)13592 static void parse_VkDebugUtilsMessageSeverityFlagBitsEXT(const char *s, Json::Value &obj,
13593 VkDebugUtilsMessageSeverityFlagBitsEXT &o)
13594 {
13595 std::string _res = obj.asString();
13596 o = (VkDebugUtilsMessageSeverityFlagBitsEXT)VkDebugUtilsMessageSeverityFlagBitsEXT_map[std::string(_res)];
13597 }
13598
13599 static std::map<std::string, int> VkDebugUtilsMessageTypeFlagBitsEXT_map = {
13600 std::make_pair("VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT", 1UL << 0),
13601 std::make_pair("VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT", 1UL << 1),
13602 std::make_pair("VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT", 1UL << 2),
13603 };
parse_VkDebugUtilsMessageTypeFlagBitsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessageTypeFlagBitsEXT & o)13604 static void parse_VkDebugUtilsMessageTypeFlagBitsEXT(const char *s, Json::Value &obj,
13605 VkDebugUtilsMessageTypeFlagBitsEXT &o)
13606 {
13607 std::string _res = obj.asString();
13608 o = (VkDebugUtilsMessageTypeFlagBitsEXT)VkDebugUtilsMessageTypeFlagBitsEXT_map[std::string(_res)];
13609 }
13610
parse_VkDebugUtilsMessengerCallbackDataFlagsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessengerCallbackDataFlagsEXT & o)13611 static void parse_VkDebugUtilsMessengerCallbackDataFlagsEXT(const char *s, Json::Value &obj,
13612 VkDebugUtilsMessengerCallbackDataFlagsEXT &o)
13613 {
13614 if (obj.isString())
13615 {
13616 std::string _res = obj.asString();
13617 sscanf(_res.c_str(), "%u", &o);
13618 }
13619 else
13620 {
13621 o = obj.asUInt();
13622 }
13623 }
13624
parse_VkDebugUtilsMessageTypeFlagsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessageTypeFlagsEXT & o)13625 static void parse_VkDebugUtilsMessageTypeFlagsEXT(const char *s, Json::Value &obj, VkDebugUtilsMessageTypeFlagsEXT &o)
13626 {
13627 o = (VkDebugUtilsMessageTypeFlagsEXT)0;
13628 std::string _res = obj.asString();
13629 std::vector<std::string> bitmasks;
13630 std::istringstream inputStream(_res);
13631 std::string tempStr;
13632 while (getline(inputStream, tempStr, '|'))
13633 {
13634 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
13635 bitmasks.push_back(tempStr);
13636 }
13637 for (auto &it : bitmasks)
13638 {
13639 o |= (VkDebugUtilsMessageTypeFlagBitsEXT)VkDebugUtilsMessageTypeFlagBitsEXT_map[it];
13640 }
13641 }
13642
parse_VkDebugUtilsMessageSeverityFlagsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessageSeverityFlagsEXT & o)13643 static void parse_VkDebugUtilsMessageSeverityFlagsEXT(const char *s, Json::Value &obj,
13644 VkDebugUtilsMessageSeverityFlagsEXT &o)
13645 {
13646 o = (VkDebugUtilsMessageSeverityFlagsEXT)0;
13647 std::string _res = obj.asString();
13648 std::vector<std::string> bitmasks;
13649 std::istringstream inputStream(_res);
13650 std::string tempStr;
13651 while (getline(inputStream, tempStr, '|'))
13652 {
13653 tempStr.erase(std::remove_if(tempStr.begin(), tempStr.end(), isspace), tempStr.end());
13654 bitmasks.push_back(tempStr);
13655 }
13656 for (auto &it : bitmasks)
13657 {
13658 o |= (VkDebugUtilsMessageSeverityFlagBitsEXT)VkDebugUtilsMessageSeverityFlagBitsEXT_map[it];
13659 }
13660 }
13661
parse_VkDebugUtilsMessengerCreateFlagsEXT(const char * s,Json::Value & obj,VkDebugUtilsMessengerCreateFlagsEXT & o)13662 static void parse_VkDebugUtilsMessengerCreateFlagsEXT(const char *s, Json::Value &obj,
13663 VkDebugUtilsMessengerCreateFlagsEXT &o)
13664 {
13665 if (obj.isString())
13666 {
13667 std::string _res = obj.asString();
13668 sscanf(_res.c_str(), "%u", &o);
13669 }
13670 else
13671 {
13672 o = obj.asUInt();
13673 }
13674 }
13675
parse_VkDebugUtilsLabelEXT(const char * s,Json::Value & obj,VkDebugUtilsLabelEXT & o)13676 static void parse_VkDebugUtilsLabelEXT(const char *s, Json::Value &obj, VkDebugUtilsLabelEXT &o)
13677 {
13678
13679 parse_VkStructureType("sType", obj["sType"], (o.sType));
13680
13681 o.pNext = (VkDebugUtilsLabelEXT *)parsePNextChain(obj);
13682
13683 /** TODO: Handle this - pLabelName **/
13684
13685 Json::Value &obj_color_arr = obj["color"];
13686 for (unsigned int i = 0; i < obj_color_arr.size(); i++)
13687 {
13688 parse_float("color", obj_color_arr[i], const_cast<float &>((o.color[i])));
13689 }
13690 }
13691
parse_VkDebugUtilsObjectNameInfoEXT(const char * s,Json::Value & obj,VkDebugUtilsObjectNameInfoEXT & o)13692 static void parse_VkDebugUtilsObjectNameInfoEXT(const char *s, Json::Value &obj, VkDebugUtilsObjectNameInfoEXT &o)
13693 {
13694
13695 parse_VkStructureType("sType", obj["sType"], (o.sType));
13696
13697 o.pNext = (VkDebugUtilsObjectNameInfoEXT *)parsePNextChain(obj);
13698
13699 parse_VkObjectType("objectType", obj["objectType"], (o.objectType));
13700
13701 parse_uint64_t("objectHandle", obj["objectHandle"], (o.objectHandle));
13702
13703 /** TODO: Handle this - pObjectName **/
13704 }
13705
parse_VkDebugUtilsMessengerCallbackDataEXT(const char * s,Json::Value & obj,VkDebugUtilsMessengerCallbackDataEXT & o)13706 static void parse_VkDebugUtilsMessengerCallbackDataEXT(const char *s, Json::Value &obj,
13707 VkDebugUtilsMessengerCallbackDataEXT &o)
13708 {
13709
13710 parse_VkStructureType("sType", obj["sType"], (o.sType));
13711
13712 o.pNext = (VkDebugUtilsMessengerCallbackDataEXT *)parsePNextChain(obj);
13713
13714 parse_VkDebugUtilsMessengerCallbackDataFlagsEXT("flags", obj["flags"], (o.flags));
13715
13716 /** TODO: Handle this - pMessageIdName **/
13717
13718 parse_int32_t("messageIdNumber", obj["messageIdNumber"], (o.messageIdNumber));
13719
13720 /** TODO: Handle this - pMessage **/
13721
13722 parse_uint32_t("queueLabelCount", obj["queueLabelCount"], (o.queueLabelCount));
13723
13724 (o.pQueueLabels) = (VkDebugUtilsLabelEXT *)s_globalMem.allocate((o.queueLabelCount), sizeof(VkDebugUtilsLabelEXT));
13725 Json::Value &obj_pQueueLabels = obj["pQueueLabels"];
13726 if (obj_pQueueLabels.size() == 0)
13727 (o.pQueueLabels) = nullptr;
13728 else
13729 {
13730 for (unsigned int i = 0; i < (o.queueLabelCount); i++)
13731 {
13732 parse_VkDebugUtilsLabelEXT("pQueueLabels", obj_pQueueLabels[i],
13733 const_cast<VkDebugUtilsLabelEXT &>((o.pQueueLabels[i])));
13734 }
13735 }
13736
13737 parse_uint32_t("cmdBufLabelCount", obj["cmdBufLabelCount"], (o.cmdBufLabelCount));
13738
13739 (o.pCmdBufLabels) =
13740 (VkDebugUtilsLabelEXT *)s_globalMem.allocate((o.cmdBufLabelCount), sizeof(VkDebugUtilsLabelEXT));
13741 Json::Value &obj_pCmdBufLabels = obj["pCmdBufLabels"];
13742 if (obj_pCmdBufLabels.size() == 0)
13743 (o.pCmdBufLabels) = nullptr;
13744 else
13745 {
13746 for (unsigned int i = 0; i < (o.cmdBufLabelCount); i++)
13747 {
13748 parse_VkDebugUtilsLabelEXT("pCmdBufLabels", obj_pCmdBufLabels[i],
13749 const_cast<VkDebugUtilsLabelEXT &>((o.pCmdBufLabels[i])));
13750 }
13751 }
13752
13753 parse_uint32_t("objectCount", obj["objectCount"], (o.objectCount));
13754
13755 (o.pObjects) =
13756 (VkDebugUtilsObjectNameInfoEXT *)s_globalMem.allocate((o.objectCount), sizeof(VkDebugUtilsObjectNameInfoEXT));
13757 Json::Value &obj_pObjects = obj["pObjects"];
13758 if (obj_pObjects.size() == 0)
13759 (o.pObjects) = nullptr;
13760 else
13761 {
13762 for (unsigned int i = 0; i < (o.objectCount); i++)
13763 {
13764 parse_VkDebugUtilsObjectNameInfoEXT("pObjects", obj_pObjects[i],
13765 const_cast<VkDebugUtilsObjectNameInfoEXT &>((o.pObjects[i])));
13766 }
13767 }
13768 }
13769
parse_VkDebugUtilsMessengerCreateInfoEXT(const char * s,Json::Value & obj,VkDebugUtilsMessengerCreateInfoEXT & o)13770 static void parse_VkDebugUtilsMessengerCreateInfoEXT(const char *s, Json::Value &obj,
13771 VkDebugUtilsMessengerCreateInfoEXT &o)
13772 {
13773
13774 parse_VkStructureType("sType", obj["sType"], (o.sType));
13775
13776 o.pNext = (VkDebugUtilsMessengerCreateInfoEXT *)parsePNextChain(obj);
13777
13778 parse_VkDebugUtilsMessengerCreateFlagsEXT("flags", obj["flags"], (o.flags));
13779
13780 parse_VkDebugUtilsMessageSeverityFlagsEXT("messageSeverity", obj["messageSeverity"], (o.messageSeverity));
13781
13782 parse_VkDebugUtilsMessageTypeFlagsEXT("messageType", obj["messageType"], (o.messageType));
13783
13784 /** Note: Ignoring function pointer (PFN_vkDebugUtilsMessengerCallbackEXT). **/
13785 }
13786
parse_VkDebugUtilsObjectTagInfoEXT(const char * s,Json::Value & obj,VkDebugUtilsObjectTagInfoEXT & o)13787 static void parse_VkDebugUtilsObjectTagInfoEXT(const char *s, Json::Value &obj, VkDebugUtilsObjectTagInfoEXT &o)
13788 {
13789
13790 parse_VkStructureType("sType", obj["sType"], (o.sType));
13791
13792 o.pNext = (VkDebugUtilsObjectTagInfoEXT *)parsePNextChain(obj);
13793
13794 parse_VkObjectType("objectType", obj["objectType"], (o.objectType));
13795
13796 parse_uint64_t("objectHandle", obj["objectHandle"], (o.objectHandle));
13797
13798 parse_uint64_t("tagName", obj["tagName"], (o.tagName));
13799
13800 parse_size_t("tagSize", obj["tagSize"], (o.tagSize));
13801 }
13802
parse_VkSampleLocationEXT(const char * s,Json::Value & obj,VkSampleLocationEXT & o)13803 static void parse_VkSampleLocationEXT(const char *s, Json::Value &obj, VkSampleLocationEXT &o)
13804 {
13805
13806 parse_float("x", obj["x"], (o.x));
13807
13808 parse_float("y", obj["y"], (o.y));
13809 }
13810
parse_VkSampleLocationsInfoEXT(const char * s,Json::Value & obj,VkSampleLocationsInfoEXT & o)13811 static void parse_VkSampleLocationsInfoEXT(const char *s, Json::Value &obj, VkSampleLocationsInfoEXT &o)
13812 {
13813
13814 parse_VkStructureType("sType", obj["sType"], (o.sType));
13815
13816 o.pNext = (VkSampleLocationsInfoEXT *)parsePNextChain(obj);
13817
13818 parse_VkSampleCountFlagBits("sampleLocationsPerPixel", obj["sampleLocationsPerPixel"], (o.sampleLocationsPerPixel));
13819
13820 parse_VkExtent2D("sampleLocationGridSize", obj["sampleLocationGridSize"], (o.sampleLocationGridSize));
13821
13822 parse_uint32_t("sampleLocationsCount", obj["sampleLocationsCount"], (o.sampleLocationsCount));
13823
13824 (o.pSampleLocations) =
13825 (VkSampleLocationEXT *)s_globalMem.allocate((o.sampleLocationsCount), sizeof(VkSampleLocationEXT));
13826 Json::Value &obj_pSampleLocations = obj["pSampleLocations"];
13827 if (obj_pSampleLocations.size() == 0)
13828 (o.pSampleLocations) = nullptr;
13829 else
13830 {
13831 for (unsigned int i = 0; i < (o.sampleLocationsCount); i++)
13832 {
13833 parse_VkSampleLocationEXT("pSampleLocations", obj_pSampleLocations[i],
13834 const_cast<VkSampleLocationEXT &>((o.pSampleLocations[i])));
13835 }
13836 }
13837 }
13838
parse_VkAttachmentSampleLocationsEXT(const char * s,Json::Value & obj,VkAttachmentSampleLocationsEXT & o)13839 static void parse_VkAttachmentSampleLocationsEXT(const char *s, Json::Value &obj, VkAttachmentSampleLocationsEXT &o)
13840 {
13841
13842 parse_uint32_t("attachmentIndex", obj["attachmentIndex"], (o.attachmentIndex));
13843
13844 parse_VkSampleLocationsInfoEXT("sampleLocationsInfo", obj["sampleLocationsInfo"], (o.sampleLocationsInfo));
13845 }
13846
parse_VkSubpassSampleLocationsEXT(const char * s,Json::Value & obj,VkSubpassSampleLocationsEXT & o)13847 static void parse_VkSubpassSampleLocationsEXT(const char *s, Json::Value &obj, VkSubpassSampleLocationsEXT &o)
13848 {
13849
13850 parse_uint32_t("subpassIndex", obj["subpassIndex"], (o.subpassIndex));
13851
13852 parse_VkSampleLocationsInfoEXT("sampleLocationsInfo", obj["sampleLocationsInfo"], (o.sampleLocationsInfo));
13853 }
13854
parse_VkRenderPassSampleLocationsBeginInfoEXT(const char * s,Json::Value & obj,VkRenderPassSampleLocationsBeginInfoEXT & o)13855 static void parse_VkRenderPassSampleLocationsBeginInfoEXT(const char *s, Json::Value &obj,
13856 VkRenderPassSampleLocationsBeginInfoEXT &o)
13857 {
13858
13859 parse_VkStructureType("sType", obj["sType"], (o.sType));
13860
13861 o.pNext = (VkRenderPassSampleLocationsBeginInfoEXT *)parsePNextChain(obj);
13862
13863 parse_uint32_t("attachmentInitialSampleLocationsCount", obj["attachmentInitialSampleLocationsCount"],
13864 (o.attachmentInitialSampleLocationsCount));
13865
13866 (o.pAttachmentInitialSampleLocations) = (VkAttachmentSampleLocationsEXT *)s_globalMem.allocate(
13867 (o.attachmentInitialSampleLocationsCount), sizeof(VkAttachmentSampleLocationsEXT));
13868 Json::Value &obj_pAttachmentInitialSampleLocations = obj["pAttachmentInitialSampleLocations"];
13869 if (obj_pAttachmentInitialSampleLocations.size() == 0)
13870 (o.pAttachmentInitialSampleLocations) = nullptr;
13871 else
13872 {
13873 for (unsigned int i = 0; i < (o.attachmentInitialSampleLocationsCount); i++)
13874 {
13875 parse_VkAttachmentSampleLocationsEXT(
13876 "pAttachmentInitialSampleLocations", obj_pAttachmentInitialSampleLocations[i],
13877 const_cast<VkAttachmentSampleLocationsEXT &>((o.pAttachmentInitialSampleLocations[i])));
13878 }
13879 }
13880
13881 parse_uint32_t("postSubpassSampleLocationsCount", obj["postSubpassSampleLocationsCount"],
13882 (o.postSubpassSampleLocationsCount));
13883
13884 (o.pPostSubpassSampleLocations) = (VkSubpassSampleLocationsEXT *)s_globalMem.allocate(
13885 (o.postSubpassSampleLocationsCount), sizeof(VkSubpassSampleLocationsEXT));
13886 Json::Value &obj_pPostSubpassSampleLocations = obj["pPostSubpassSampleLocations"];
13887 if (obj_pPostSubpassSampleLocations.size() == 0)
13888 (o.pPostSubpassSampleLocations) = nullptr;
13889 else
13890 {
13891 for (unsigned int i = 0; i < (o.postSubpassSampleLocationsCount); i++)
13892 {
13893 parse_VkSubpassSampleLocationsEXT(
13894 "pPostSubpassSampleLocations", obj_pPostSubpassSampleLocations[i],
13895 const_cast<VkSubpassSampleLocationsEXT &>((o.pPostSubpassSampleLocations[i])));
13896 }
13897 }
13898 }
13899
parse_VkPipelineSampleLocationsStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineSampleLocationsStateCreateInfoEXT & o)13900 static void parse_VkPipelineSampleLocationsStateCreateInfoEXT(const char *s, Json::Value &obj,
13901 VkPipelineSampleLocationsStateCreateInfoEXT &o)
13902 {
13903
13904 parse_VkStructureType("sType", obj["sType"], (o.sType));
13905
13906 o.pNext = (VkPipelineSampleLocationsStateCreateInfoEXT *)parsePNextChain(obj);
13907
13908 parse_VkBool32("sampleLocationsEnable", obj["sampleLocationsEnable"], (o.sampleLocationsEnable));
13909
13910 parse_VkSampleLocationsInfoEXT("sampleLocationsInfo", obj["sampleLocationsInfo"], (o.sampleLocationsInfo));
13911 }
13912
parse_VkPhysicalDeviceSampleLocationsPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceSampleLocationsPropertiesEXT & o)13913 static void parse_VkPhysicalDeviceSampleLocationsPropertiesEXT(const char *s, Json::Value &obj,
13914 VkPhysicalDeviceSampleLocationsPropertiesEXT &o)
13915 {
13916
13917 parse_VkStructureType("sType", obj["sType"], (o.sType));
13918
13919 o.pNext = (VkPhysicalDeviceSampleLocationsPropertiesEXT *)parsePNextChain(obj);
13920
13921 parse_VkSampleCountFlags("sampleLocationSampleCounts", obj["sampleLocationSampleCounts"],
13922 (o.sampleLocationSampleCounts));
13923
13924 parse_VkExtent2D("maxSampleLocationGridSize", obj["maxSampleLocationGridSize"], (o.maxSampleLocationGridSize));
13925
13926 Json::Value &obj_sampleLocationCoordinateRange_arr = obj["sampleLocationCoordinateRange"];
13927 for (unsigned int i = 0; i < obj_sampleLocationCoordinateRange_arr.size(); i++)
13928 {
13929 parse_float("sampleLocationCoordinateRange", obj_sampleLocationCoordinateRange_arr[i],
13930 const_cast<float &>((o.sampleLocationCoordinateRange[i])));
13931 }
13932
13933 parse_uint32_t("sampleLocationSubPixelBits", obj["sampleLocationSubPixelBits"], (o.sampleLocationSubPixelBits));
13934
13935 parse_VkBool32("variableSampleLocations", obj["variableSampleLocations"], (o.variableSampleLocations));
13936 }
13937
parse_VkMultisamplePropertiesEXT(const char * s,Json::Value & obj,VkMultisamplePropertiesEXT & o)13938 static void parse_VkMultisamplePropertiesEXT(const char *s, Json::Value &obj, VkMultisamplePropertiesEXT &o)
13939 {
13940
13941 parse_VkStructureType("sType", obj["sType"], (o.sType));
13942
13943 o.pNext = (VkMultisamplePropertiesEXT *)parsePNextChain(obj);
13944
13945 parse_VkExtent2D("maxSampleLocationGridSize", obj["maxSampleLocationGridSize"], (o.maxSampleLocationGridSize));
13946 }
13947
13948 static std::map<std::string, int> VkBlendOverlapEXT_map = {
13949 std::make_pair("VK_BLEND_OVERLAP_UNCORRELATED_EXT", 0),
13950 std::make_pair("VK_BLEND_OVERLAP_DISJOINT_EXT", 1),
13951 std::make_pair("VK_BLEND_OVERLAP_CONJOINT_EXT", 2),
13952 };
parse_VkBlendOverlapEXT(const char * s,Json::Value & obj,VkBlendOverlapEXT & o)13953 static void parse_VkBlendOverlapEXT(const char *s, Json::Value &obj, VkBlendOverlapEXT &o)
13954 {
13955 std::string _res = obj.asString();
13956 o = (VkBlendOverlapEXT)VkBlendOverlapEXT_map[std::string(_res)];
13957 }
13958
parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT & o)13959 static void parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
13960 const char *s, Json::Value &obj, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &o)
13961 {
13962
13963 parse_VkStructureType("sType", obj["sType"], (o.sType));
13964
13965 o.pNext = (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *)parsePNextChain(obj);
13966
13967 parse_VkBool32("advancedBlendCoherentOperations", obj["advancedBlendCoherentOperations"],
13968 (o.advancedBlendCoherentOperations));
13969 }
13970
parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT & o)13971 static void parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
13972 const char *s, Json::Value &obj, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &o)
13973 {
13974
13975 parse_VkStructureType("sType", obj["sType"], (o.sType));
13976
13977 o.pNext = (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *)parsePNextChain(obj);
13978
13979 parse_uint32_t("advancedBlendMaxColorAttachments", obj["advancedBlendMaxColorAttachments"],
13980 (o.advancedBlendMaxColorAttachments));
13981
13982 parse_VkBool32("advancedBlendIndependentBlend", obj["advancedBlendIndependentBlend"],
13983 (o.advancedBlendIndependentBlend));
13984
13985 parse_VkBool32("advancedBlendNonPremultipliedSrcColor", obj["advancedBlendNonPremultipliedSrcColor"],
13986 (o.advancedBlendNonPremultipliedSrcColor));
13987
13988 parse_VkBool32("advancedBlendNonPremultipliedDstColor", obj["advancedBlendNonPremultipliedDstColor"],
13989 (o.advancedBlendNonPremultipliedDstColor));
13990
13991 parse_VkBool32("advancedBlendCorrelatedOverlap", obj["advancedBlendCorrelatedOverlap"],
13992 (o.advancedBlendCorrelatedOverlap));
13993
13994 parse_VkBool32("advancedBlendAllOperations", obj["advancedBlendAllOperations"], (o.advancedBlendAllOperations));
13995 }
13996
parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineColorBlendAdvancedStateCreateInfoEXT & o)13997 static void parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT(const char *s, Json::Value &obj,
13998 VkPipelineColorBlendAdvancedStateCreateInfoEXT &o)
13999 {
14000
14001 parse_VkStructureType("sType", obj["sType"], (o.sType));
14002
14003 o.pNext = (VkPipelineColorBlendAdvancedStateCreateInfoEXT *)parsePNextChain(obj);
14004
14005 parse_VkBool32("srcPremultiplied", obj["srcPremultiplied"], (o.srcPremultiplied));
14006
14007 parse_VkBool32("dstPremultiplied", obj["dstPremultiplied"], (o.dstPremultiplied));
14008
14009 parse_VkBlendOverlapEXT("blendOverlap", obj["blendOverlap"], (o.blendOverlap));
14010 }
14011
14012 static std::map<std::string, uint64_t> VkFormatFeatureFlagBits2KHR_map = {
14013 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR", 1ULL << 0),
14014 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR", 1ULL << 1),
14015 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR", 1ULL << 2),
14016 std::make_pair("VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR", 1ULL << 3),
14017 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR", 1ULL << 4),
14018 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR", 1ULL << 5),
14019 std::make_pair("VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR", 1ULL << 6),
14020 std::make_pair("VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR", 1ULL << 7),
14021 std::make_pair("VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR", 1ULL << 8),
14022 std::make_pair("VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR", 1ULL << 9),
14023 std::make_pair("VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR", 1ULL << 10),
14024 std::make_pair("VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR", 1ULL << 11),
14025 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR", 1ULL << 12),
14026 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", 1ULL << 13),
14027 std::make_pair("VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR", 1ULL << 14),
14028 std::make_pair("VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR", 1ULL << 15),
14029 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR", 1ULL << 16),
14030 std::make_pair("VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR", 1ULL << 17),
14031 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR", 1ULL << 18),
14032 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR",
14033 1ULL << 19),
14034 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR",
14035 1ULL << 20),
14036 std::make_pair(
14037 "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR",
14038 1ULL << 21),
14039 std::make_pair("VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR", 1ULL << 22),
14040 std::make_pair("VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR", 1ULL << 23),
14041 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR", 1ULL << 31),
14042 std::make_pair("VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR", 1ULL << 32),
14043 std::make_pair("VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR", 1ULL << 33),
14044 std::make_pair("VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR", 1ULL << 25),
14045 std::make_pair("VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR", 1ULL << 26),
14046 std::make_pair("VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", 1ULL << 29),
14047 std::make_pair("VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT", 1ULL << 24),
14048 std::make_pair("VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", 1ULL << 30),
14049 std::make_pair("VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR", 1ULL << 27),
14050 std::make_pair("VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR", 1ULL << 28),
14051 };
parse_VkFormatFeatureFlagBits2KHR(const char * s,Json::Value & obj,VkFormatFeatureFlagBits2KHR & o)14052 static void parse_VkFormatFeatureFlagBits2KHR(const char *s, Json::Value &obj, VkFormatFeatureFlagBits2KHR &o)
14053 {
14054 std::string _res = obj.asString();
14055 o = (VkFormatFeatureFlagBits2KHR)VkFormatFeatureFlagBits2KHR_map[std::string(_res)];
14056 }
14057
parse_VkFormatFeatureFlags2KHR(const char * s,Json::Value & obj,VkFormatFeatureFlags2KHR & o)14058 static void parse_VkFormatFeatureFlags2KHR(const char *s, Json::Value &obj, VkFormatFeatureFlags2KHR &o)
14059 {
14060 if (obj.isString())
14061 {
14062 std::string _res = obj.asString();
14063 sscanf(_res.c_str(), "%" SCNd64, &o);
14064 }
14065 else
14066 {
14067 o = obj.asUInt();
14068 }
14069 }
14070
parse_VkDrmFormatModifierPropertiesEXT(const char * s,Json::Value & obj,VkDrmFormatModifierPropertiesEXT & o)14071 static void parse_VkDrmFormatModifierPropertiesEXT(const char *s, Json::Value &obj, VkDrmFormatModifierPropertiesEXT &o)
14072 {
14073
14074 parse_uint64_t("drmFormatModifier", obj["drmFormatModifier"], (o.drmFormatModifier));
14075
14076 parse_uint32_t("drmFormatModifierPlaneCount", obj["drmFormatModifierPlaneCount"], (o.drmFormatModifierPlaneCount));
14077
14078 parse_VkFormatFeatureFlags("drmFormatModifierTilingFeatures", obj["drmFormatModifierTilingFeatures"],
14079 (o.drmFormatModifierTilingFeatures));
14080 }
14081
parse_VkDrmFormatModifierPropertiesListEXT(const char * s,Json::Value & obj,VkDrmFormatModifierPropertiesListEXT & o)14082 static void parse_VkDrmFormatModifierPropertiesListEXT(const char *s, Json::Value &obj,
14083 VkDrmFormatModifierPropertiesListEXT &o)
14084 {
14085
14086 parse_VkStructureType("sType", obj["sType"], (o.sType));
14087
14088 o.pNext = (VkDrmFormatModifierPropertiesListEXT *)parsePNextChain(obj);
14089
14090 parse_uint32_t("drmFormatModifierCount", obj["drmFormatModifierCount"], (o.drmFormatModifierCount));
14091
14092 (o.pDrmFormatModifierProperties) = (VkDrmFormatModifierPropertiesEXT *)s_globalMem.allocate(
14093 (o.drmFormatModifierCount), sizeof(VkDrmFormatModifierPropertiesEXT));
14094 Json::Value &obj_pDrmFormatModifierProperties = obj["pDrmFormatModifierProperties"];
14095 if (obj_pDrmFormatModifierProperties.size() == 0)
14096 (o.pDrmFormatModifierProperties) = nullptr;
14097 else
14098 {
14099 for (unsigned int i = 0; i < (o.drmFormatModifierCount); i++)
14100 {
14101 parse_VkDrmFormatModifierPropertiesEXT(
14102 "pDrmFormatModifierProperties", obj_pDrmFormatModifierProperties[i],
14103 const_cast<VkDrmFormatModifierPropertiesEXT &>((o.pDrmFormatModifierProperties[i])));
14104 }
14105 }
14106 }
14107
parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const char * s,Json::Value & obj,VkPhysicalDeviceImageDrmFormatModifierInfoEXT & o)14108 static void parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const char *s, Json::Value &obj,
14109 VkPhysicalDeviceImageDrmFormatModifierInfoEXT &o)
14110 {
14111
14112 parse_VkStructureType("sType", obj["sType"], (o.sType));
14113
14114 o.pNext = (VkPhysicalDeviceImageDrmFormatModifierInfoEXT *)parsePNextChain(obj);
14115
14116 parse_uint64_t("drmFormatModifier", obj["drmFormatModifier"], (o.drmFormatModifier));
14117
14118 parse_VkSharingMode("sharingMode", obj["sharingMode"], (o.sharingMode));
14119
14120 parse_uint32_t("queueFamilyIndexCount", obj["queueFamilyIndexCount"], (o.queueFamilyIndexCount));
14121
14122 (o.pQueueFamilyIndices) = (uint32_t *)s_globalMem.allocate((o.queueFamilyIndexCount), sizeof(uint32_t));
14123 Json::Value &obj_pQueueFamilyIndices_arr = obj["pQueueFamilyIndices"];
14124 for (unsigned int i = 0; i < obj_pQueueFamilyIndices_arr.size(); i++)
14125 {
14126 parse_uint32_t("pQueueFamilyIndices", obj_pQueueFamilyIndices_arr[i],
14127 const_cast<uint32_t &>((o.pQueueFamilyIndices[i])));
14128 }
14129 }
14130
parse_VkImageDrmFormatModifierListCreateInfoEXT(const char * s,Json::Value & obj,VkImageDrmFormatModifierListCreateInfoEXT & o)14131 static void parse_VkImageDrmFormatModifierListCreateInfoEXT(const char *s, Json::Value &obj,
14132 VkImageDrmFormatModifierListCreateInfoEXT &o)
14133 {
14134
14135 parse_VkStructureType("sType", obj["sType"], (o.sType));
14136
14137 o.pNext = (VkImageDrmFormatModifierListCreateInfoEXT *)parsePNextChain(obj);
14138
14139 parse_uint32_t("drmFormatModifierCount", obj["drmFormatModifierCount"], (o.drmFormatModifierCount));
14140
14141 (o.pDrmFormatModifiers) = (uint64_t *)s_globalMem.allocate((o.drmFormatModifierCount), sizeof(uint64_t));
14142 Json::Value &obj_pDrmFormatModifiers_arr = obj["pDrmFormatModifiers"];
14143 for (unsigned int i = 0; i < obj_pDrmFormatModifiers_arr.size(); i++)
14144 {
14145 parse_uint64_t("pDrmFormatModifiers", obj_pDrmFormatModifiers_arr[i],
14146 const_cast<uint64_t &>((o.pDrmFormatModifiers[i])));
14147 }
14148 }
14149
parse_VkImageDrmFormatModifierExplicitCreateInfoEXT(const char * s,Json::Value & obj,VkImageDrmFormatModifierExplicitCreateInfoEXT & o)14150 static void parse_VkImageDrmFormatModifierExplicitCreateInfoEXT(const char *s, Json::Value &obj,
14151 VkImageDrmFormatModifierExplicitCreateInfoEXT &o)
14152 {
14153
14154 parse_VkStructureType("sType", obj["sType"], (o.sType));
14155
14156 o.pNext = (VkImageDrmFormatModifierExplicitCreateInfoEXT *)parsePNextChain(obj);
14157
14158 parse_uint64_t("drmFormatModifier", obj["drmFormatModifier"], (o.drmFormatModifier));
14159
14160 parse_uint32_t("drmFormatModifierPlaneCount", obj["drmFormatModifierPlaneCount"], (o.drmFormatModifierPlaneCount));
14161
14162 (o.pPlaneLayouts) =
14163 (VkSubresourceLayout *)s_globalMem.allocate((o.drmFormatModifierPlaneCount), sizeof(VkSubresourceLayout));
14164 Json::Value &obj_pPlaneLayouts = obj["pPlaneLayouts"];
14165 if (obj_pPlaneLayouts.size() == 0)
14166 (o.pPlaneLayouts) = nullptr;
14167 else
14168 {
14169 for (unsigned int i = 0; i < (o.drmFormatModifierPlaneCount); i++)
14170 {
14171 parse_VkSubresourceLayout("pPlaneLayouts", obj_pPlaneLayouts[i],
14172 const_cast<VkSubresourceLayout &>((o.pPlaneLayouts[i])));
14173 }
14174 }
14175 }
14176
parse_VkImageDrmFormatModifierPropertiesEXT(const char * s,Json::Value & obj,VkImageDrmFormatModifierPropertiesEXT & o)14177 static void parse_VkImageDrmFormatModifierPropertiesEXT(const char *s, Json::Value &obj,
14178 VkImageDrmFormatModifierPropertiesEXT &o)
14179 {
14180
14181 parse_VkStructureType("sType", obj["sType"], (o.sType));
14182
14183 o.pNext = (VkImageDrmFormatModifierPropertiesEXT *)parsePNextChain(obj);
14184
14185 parse_uint64_t("drmFormatModifier", obj["drmFormatModifier"], (o.drmFormatModifier));
14186 }
14187
parse_VkDrmFormatModifierProperties2EXT(const char * s,Json::Value & obj,VkDrmFormatModifierProperties2EXT & o)14188 static void parse_VkDrmFormatModifierProperties2EXT(const char *s, Json::Value &obj,
14189 VkDrmFormatModifierProperties2EXT &o)
14190 {
14191
14192 parse_uint64_t("drmFormatModifier", obj["drmFormatModifier"], (o.drmFormatModifier));
14193
14194 parse_uint32_t("drmFormatModifierPlaneCount", obj["drmFormatModifierPlaneCount"], (o.drmFormatModifierPlaneCount));
14195
14196 parse_VkFormatFeatureFlags2KHR("drmFormatModifierTilingFeatures", obj["drmFormatModifierTilingFeatures"],
14197 (o.drmFormatModifierTilingFeatures));
14198 }
14199
parse_VkDrmFormatModifierPropertiesList2EXT(const char * s,Json::Value & obj,VkDrmFormatModifierPropertiesList2EXT & o)14200 static void parse_VkDrmFormatModifierPropertiesList2EXT(const char *s, Json::Value &obj,
14201 VkDrmFormatModifierPropertiesList2EXT &o)
14202 {
14203
14204 parse_VkStructureType("sType", obj["sType"], (o.sType));
14205
14206 o.pNext = (VkDrmFormatModifierPropertiesList2EXT *)parsePNextChain(obj);
14207
14208 parse_uint32_t("drmFormatModifierCount", obj["drmFormatModifierCount"], (o.drmFormatModifierCount));
14209
14210 (o.pDrmFormatModifierProperties) = (VkDrmFormatModifierProperties2EXT *)s_globalMem.allocate(
14211 (o.drmFormatModifierCount), sizeof(VkDrmFormatModifierProperties2EXT));
14212 Json::Value &obj_pDrmFormatModifierProperties = obj["pDrmFormatModifierProperties"];
14213 if (obj_pDrmFormatModifierProperties.size() == 0)
14214 (o.pDrmFormatModifierProperties) = nullptr;
14215 else
14216 {
14217 for (unsigned int i = 0; i < (o.drmFormatModifierCount); i++)
14218 {
14219 parse_VkDrmFormatModifierProperties2EXT(
14220 "pDrmFormatModifierProperties", obj_pDrmFormatModifierProperties[i],
14221 const_cast<VkDrmFormatModifierProperties2EXT &>((o.pDrmFormatModifierProperties[i])));
14222 }
14223 }
14224 }
14225
parse_VkPhysicalDeviceImageViewImageFormatInfoEXT(const char * s,Json::Value & obj,VkPhysicalDeviceImageViewImageFormatInfoEXT & o)14226 static void parse_VkPhysicalDeviceImageViewImageFormatInfoEXT(const char *s, Json::Value &obj,
14227 VkPhysicalDeviceImageViewImageFormatInfoEXT &o)
14228 {
14229
14230 parse_VkStructureType("sType", obj["sType"], (o.sType));
14231
14232 o.pNext = (VkPhysicalDeviceImageViewImageFormatInfoEXT *)parsePNextChain(obj);
14233
14234 parse_VkImageViewType("imageViewType", obj["imageViewType"], (o.imageViewType));
14235 }
14236
parse_VkFilterCubicImageViewImageFormatPropertiesEXT(const char * s,Json::Value & obj,VkFilterCubicImageViewImageFormatPropertiesEXT & o)14237 static void parse_VkFilterCubicImageViewImageFormatPropertiesEXT(const char *s, Json::Value &obj,
14238 VkFilterCubicImageViewImageFormatPropertiesEXT &o)
14239 {
14240
14241 parse_VkStructureType("sType", obj["sType"], (o.sType));
14242
14243 o.pNext = (VkFilterCubicImageViewImageFormatPropertiesEXT *)parsePNextChain(obj);
14244
14245 parse_VkBool32("filterCubic", obj["filterCubic"], (o.filterCubic));
14246
14247 parse_VkBool32("filterCubicMinmax", obj["filterCubicMinmax"], (o.filterCubicMinmax));
14248 }
14249
14250 static std::map<std::string, int> VkQueueGlobalPriorityEXT_map = {
14251 std::make_pair("VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT", 128),
14252 std::make_pair("VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT", 256),
14253 std::make_pair("VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT", 512),
14254 std::make_pair("VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT", 1024),
14255 };
parse_VkQueueGlobalPriorityEXT(const char * s,Json::Value & obj,VkQueueGlobalPriorityEXT & o)14256 static void parse_VkQueueGlobalPriorityEXT(const char *s, Json::Value &obj, VkQueueGlobalPriorityEXT &o)
14257 {
14258 std::string _res = obj.asString();
14259 o = (VkQueueGlobalPriorityEXT)VkQueueGlobalPriorityEXT_map[std::string(_res)];
14260 }
14261
parse_VkDeviceQueueGlobalPriorityCreateInfoEXT(const char * s,Json::Value & obj,VkDeviceQueueGlobalPriorityCreateInfoEXT & o)14262 static void parse_VkDeviceQueueGlobalPriorityCreateInfoEXT(const char *s, Json::Value &obj,
14263 VkDeviceQueueGlobalPriorityCreateInfoEXT &o)
14264 {
14265
14266 parse_VkStructureType("sType", obj["sType"], (o.sType));
14267
14268 o.pNext = (VkDeviceQueueGlobalPriorityCreateInfoEXT *)parsePNextChain(obj);
14269
14270 parse_VkQueueGlobalPriorityEXT("globalPriority", obj["globalPriority"], (o.globalPriority));
14271 }
14272
parse_VkImportMemoryHostPointerInfoEXT(const char * s,Json::Value & obj,VkImportMemoryHostPointerInfoEXT & o)14273 static void parse_VkImportMemoryHostPointerInfoEXT(const char *s, Json::Value &obj, VkImportMemoryHostPointerInfoEXT &o)
14274 {
14275
14276 parse_VkStructureType("sType", obj["sType"], (o.sType));
14277
14278 o.pNext = (VkImportMemoryHostPointerInfoEXT *)parsePNextChain(obj);
14279
14280 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
14281 }
14282
parse_VkMemoryHostPointerPropertiesEXT(const char * s,Json::Value & obj,VkMemoryHostPointerPropertiesEXT & o)14283 static void parse_VkMemoryHostPointerPropertiesEXT(const char *s, Json::Value &obj, VkMemoryHostPointerPropertiesEXT &o)
14284 {
14285
14286 parse_VkStructureType("sType", obj["sType"], (o.sType));
14287
14288 o.pNext = (VkMemoryHostPointerPropertiesEXT *)parsePNextChain(obj);
14289
14290 parse_uint32_t("memoryTypeBits", obj["memoryTypeBits"], (o.memoryTypeBits));
14291 }
14292
parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceExternalMemoryHostPropertiesEXT & o)14293 static void parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(const char *s, Json::Value &obj,
14294 VkPhysicalDeviceExternalMemoryHostPropertiesEXT &o)
14295 {
14296
14297 parse_VkStructureType("sType", obj["sType"], (o.sType));
14298
14299 o.pNext = (VkPhysicalDeviceExternalMemoryHostPropertiesEXT *)parsePNextChain(obj);
14300
14301 parse_VkDeviceSize("minImportedHostPointerAlignment", obj["minImportedHostPointerAlignment"],
14302 (o.minImportedHostPointerAlignment));
14303 }
14304
14305 static std::map<std::string, int> VkTimeDomainEXT_map = {
14306 std::make_pair("VK_TIME_DOMAIN_DEVICE_EXT", 0),
14307 std::make_pair("VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT", 1),
14308 std::make_pair("VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT", 2),
14309 std::make_pair("VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT", 3),
14310 };
parse_VkTimeDomainEXT(const char * s,Json::Value & obj,VkTimeDomainEXT & o)14311 static void parse_VkTimeDomainEXT(const char *s, Json::Value &obj, VkTimeDomainEXT &o)
14312 {
14313 std::string _res = obj.asString();
14314 o = (VkTimeDomainEXT)VkTimeDomainEXT_map[std::string(_res)];
14315 }
14316
parse_VkCalibratedTimestampInfoEXT(const char * s,Json::Value & obj,VkCalibratedTimestampInfoEXT & o)14317 static void parse_VkCalibratedTimestampInfoEXT(const char *s, Json::Value &obj, VkCalibratedTimestampInfoEXT &o)
14318 {
14319
14320 parse_VkStructureType("sType", obj["sType"], (o.sType));
14321
14322 o.pNext = (VkCalibratedTimestampInfoEXT *)parsePNextChain(obj);
14323
14324 parse_VkTimeDomainEXT("timeDomain", obj["timeDomain"], (o.timeDomain));
14325 }
14326
parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT & o)14327 static void parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
14328 const char *s, Json::Value &obj, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &o)
14329 {
14330
14331 parse_VkStructureType("sType", obj["sType"], (o.sType));
14332
14333 o.pNext = (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)parsePNextChain(obj);
14334
14335 parse_uint32_t("maxVertexAttribDivisor", obj["maxVertexAttribDivisor"], (o.maxVertexAttribDivisor));
14336 }
14337
parse_VkVertexInputBindingDivisorDescriptionEXT(const char * s,Json::Value & obj,VkVertexInputBindingDivisorDescriptionEXT & o)14338 static void parse_VkVertexInputBindingDivisorDescriptionEXT(const char *s, Json::Value &obj,
14339 VkVertexInputBindingDivisorDescriptionEXT &o)
14340 {
14341
14342 parse_uint32_t("binding", obj["binding"], (o.binding));
14343
14344 parse_uint32_t("divisor", obj["divisor"], (o.divisor));
14345 }
14346
parse_VkPipelineVertexInputDivisorStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineVertexInputDivisorStateCreateInfoEXT & o)14347 static void parse_VkPipelineVertexInputDivisorStateCreateInfoEXT(const char *s, Json::Value &obj,
14348 VkPipelineVertexInputDivisorStateCreateInfoEXT &o)
14349 {
14350
14351 parse_VkStructureType("sType", obj["sType"], (o.sType));
14352
14353 o.pNext = (VkPipelineVertexInputDivisorStateCreateInfoEXT *)parsePNextChain(obj);
14354
14355 parse_uint32_t("vertexBindingDivisorCount", obj["vertexBindingDivisorCount"], (o.vertexBindingDivisorCount));
14356
14357 (o.pVertexBindingDivisors) = (VkVertexInputBindingDivisorDescriptionEXT *)s_globalMem.allocate(
14358 (o.vertexBindingDivisorCount), sizeof(VkVertexInputBindingDivisorDescriptionEXT));
14359 Json::Value &obj_pVertexBindingDivisors = obj["pVertexBindingDivisors"];
14360 if (obj_pVertexBindingDivisors.size() == 0)
14361 (o.pVertexBindingDivisors) = nullptr;
14362 else
14363 {
14364 for (unsigned int i = 0; i < (o.vertexBindingDivisorCount); i++)
14365 {
14366 parse_VkVertexInputBindingDivisorDescriptionEXT(
14367 "pVertexBindingDivisors", obj_pVertexBindingDivisors[i],
14368 const_cast<VkVertexInputBindingDivisorDescriptionEXT &>((o.pVertexBindingDivisors[i])));
14369 }
14370 }
14371 }
14372
parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT & o)14373 static void parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
14374 const char *s, Json::Value &obj, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &o)
14375 {
14376
14377 parse_VkStructureType("sType", obj["sType"], (o.sType));
14378
14379 o.pNext = (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *)parsePNextChain(obj);
14380
14381 parse_VkBool32("vertexAttributeInstanceRateDivisor", obj["vertexAttributeInstanceRateDivisor"],
14382 (o.vertexAttributeInstanceRateDivisor));
14383
14384 parse_VkBool32("vertexAttributeInstanceRateZeroDivisor", obj["vertexAttributeInstanceRateZeroDivisor"],
14385 (o.vertexAttributeInstanceRateZeroDivisor));
14386 }
14387
parse_VkPhysicalDevicePCIBusInfoPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDevicePCIBusInfoPropertiesEXT & o)14388 static void parse_VkPhysicalDevicePCIBusInfoPropertiesEXT(const char *s, Json::Value &obj,
14389 VkPhysicalDevicePCIBusInfoPropertiesEXT &o)
14390 {
14391
14392 parse_VkStructureType("sType", obj["sType"], (o.sType));
14393
14394 o.pNext = (VkPhysicalDevicePCIBusInfoPropertiesEXT *)parsePNextChain(obj);
14395
14396 parse_uint32_t("pciDomain", obj["pciDomain"], (o.pciDomain));
14397
14398 parse_uint32_t("pciBus", obj["pciBus"], (o.pciBus));
14399
14400 parse_uint32_t("pciDevice", obj["pciDevice"], (o.pciDevice));
14401
14402 parse_uint32_t("pciFunction", obj["pciFunction"], (o.pciFunction));
14403 }
14404
parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceSubgroupSizeControlFeaturesEXT & o)14405 static void parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(const char *s, Json::Value &obj,
14406 VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &o)
14407 {
14408
14409 parse_VkStructureType("sType", obj["sType"], (o.sType));
14410
14411 o.pNext = (VkPhysicalDeviceSubgroupSizeControlFeaturesEXT *)parsePNextChain(obj);
14412
14413 parse_VkBool32("subgroupSizeControl", obj["subgroupSizeControl"], (o.subgroupSizeControl));
14414
14415 parse_VkBool32("computeFullSubgroups", obj["computeFullSubgroups"], (o.computeFullSubgroups));
14416 }
14417
parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceSubgroupSizeControlPropertiesEXT & o)14418 static void parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(const char *s, Json::Value &obj,
14419 VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &o)
14420 {
14421
14422 parse_VkStructureType("sType", obj["sType"], (o.sType));
14423
14424 o.pNext = (VkPhysicalDeviceSubgroupSizeControlPropertiesEXT *)parsePNextChain(obj);
14425
14426 parse_uint32_t("minSubgroupSize", obj["minSubgroupSize"], (o.minSubgroupSize));
14427
14428 parse_uint32_t("maxSubgroupSize", obj["maxSubgroupSize"], (o.maxSubgroupSize));
14429
14430 parse_uint32_t("maxComputeWorkgroupSubgroups", obj["maxComputeWorkgroupSubgroups"],
14431 (o.maxComputeWorkgroupSubgroups));
14432
14433 parse_VkShaderStageFlags("requiredSubgroupSizeStages", obj["requiredSubgroupSizeStages"],
14434 (o.requiredSubgroupSizeStages));
14435 }
14436
parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & o)14437 static void parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
14438 const char *s, Json::Value &obj, VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &o)
14439 {
14440
14441 parse_VkStructureType("sType", obj["sType"], (o.sType));
14442
14443 o.pNext = (VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT *)parsePNextChain(obj);
14444
14445 parse_uint32_t("requiredSubgroupSize", obj["requiredSubgroupSize"], (o.requiredSubgroupSize));
14446 }
14447
parse_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT & o)14448 static void parse_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
14449 const char *s, Json::Value &obj, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &o)
14450 {
14451
14452 parse_VkStructureType("sType", obj["sType"], (o.sType));
14453
14454 o.pNext = (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *)parsePNextChain(obj);
14455
14456 parse_VkBool32("shaderImageInt64Atomics", obj["shaderImageInt64Atomics"], (o.shaderImageInt64Atomics));
14457
14458 parse_VkBool32("sparseImageInt64Atomics", obj["sparseImageInt64Atomics"], (o.sparseImageInt64Atomics));
14459 }
14460
parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceMemoryBudgetPropertiesEXT & o)14461 static void parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT(const char *s, Json::Value &obj,
14462 VkPhysicalDeviceMemoryBudgetPropertiesEXT &o)
14463 {
14464
14465 parse_VkStructureType("sType", obj["sType"], (o.sType));
14466
14467 o.pNext = (VkPhysicalDeviceMemoryBudgetPropertiesEXT *)parsePNextChain(obj);
14468
14469 Json::Value &obj_heapBudget_arr = obj["heapBudget"];
14470 for (unsigned int i = 0; i < obj_heapBudget_arr.size(); i++)
14471 {
14472 parse_VkDeviceSize("heapBudget", obj_heapBudget_arr[i], const_cast<VkDeviceSize &>((o.heapBudget[i])));
14473 }
14474
14475 Json::Value &obj_heapUsage_arr = obj["heapUsage"];
14476 for (unsigned int i = 0; i < obj_heapUsage_arr.size(); i++)
14477 {
14478 parse_VkDeviceSize("heapUsage", obj_heapUsage_arr[i], const_cast<VkDeviceSize &>((o.heapUsage[i])));
14479 }
14480 }
14481
14482 static std::map<std::string, int> VkValidationFeatureEnableEXT_map = {
14483 std::make_pair("VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT", 0),
14484 std::make_pair("VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT", 1),
14485 std::make_pair("VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT", 2),
14486 std::make_pair("VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT", 3),
14487 std::make_pair("VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT", 4),
14488 };
parse_VkValidationFeatureEnableEXT(const char * s,Json::Value & obj,VkValidationFeatureEnableEXT & o)14489 static void parse_VkValidationFeatureEnableEXT(const char *s, Json::Value &obj, VkValidationFeatureEnableEXT &o)
14490 {
14491 std::string _res = obj.asString();
14492 o = (VkValidationFeatureEnableEXT)VkValidationFeatureEnableEXT_map[std::string(_res)];
14493 }
14494
14495 static std::map<std::string, int> VkValidationFeatureDisableEXT_map = {
14496 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_ALL_EXT", 0),
14497 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT", 1),
14498 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT", 2),
14499 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT", 3),
14500 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT", 4),
14501 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT", 5),
14502 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT", 6),
14503 std::make_pair("VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT", 7),
14504 };
parse_VkValidationFeatureDisableEXT(const char * s,Json::Value & obj,VkValidationFeatureDisableEXT & o)14505 static void parse_VkValidationFeatureDisableEXT(const char *s, Json::Value &obj, VkValidationFeatureDisableEXT &o)
14506 {
14507 std::string _res = obj.asString();
14508 o = (VkValidationFeatureDisableEXT)VkValidationFeatureDisableEXT_map[std::string(_res)];
14509 }
14510
parse_VkValidationFeaturesEXT(const char * s,Json::Value & obj,VkValidationFeaturesEXT & o)14511 static void parse_VkValidationFeaturesEXT(const char *s, Json::Value &obj, VkValidationFeaturesEXT &o)
14512 {
14513
14514 parse_VkStructureType("sType", obj["sType"], (o.sType));
14515
14516 o.pNext = (VkValidationFeaturesEXT *)parsePNextChain(obj);
14517
14518 parse_uint32_t("enabledValidationFeatureCount", obj["enabledValidationFeatureCount"],
14519 (o.enabledValidationFeatureCount));
14520
14521 (o.pEnabledValidationFeatures) = (VkValidationFeatureEnableEXT *)s_globalMem.allocate(
14522 (o.enabledValidationFeatureCount), sizeof(VkValidationFeatureEnableEXT));
14523 Json::Value &obj_pEnabledValidationFeatures_arr = obj["pEnabledValidationFeatures"];
14524 for (unsigned int i = 0; i < obj_pEnabledValidationFeatures_arr.size(); i++)
14525 {
14526 parse_VkValidationFeatureEnableEXT(
14527 "pEnabledValidationFeatures", obj_pEnabledValidationFeatures_arr[i],
14528 const_cast<VkValidationFeatureEnableEXT &>((o.pEnabledValidationFeatures[i])));
14529 }
14530
14531 parse_uint32_t("disabledValidationFeatureCount", obj["disabledValidationFeatureCount"],
14532 (o.disabledValidationFeatureCount));
14533
14534 (o.pDisabledValidationFeatures) = (VkValidationFeatureDisableEXT *)s_globalMem.allocate(
14535 (o.disabledValidationFeatureCount), sizeof(VkValidationFeatureDisableEXT));
14536 Json::Value &obj_pDisabledValidationFeatures_arr = obj["pDisabledValidationFeatures"];
14537 for (unsigned int i = 0; i < obj_pDisabledValidationFeatures_arr.size(); i++)
14538 {
14539 parse_VkValidationFeatureDisableEXT(
14540 "pDisabledValidationFeatures", obj_pDisabledValidationFeatures_arr[i],
14541 const_cast<VkValidationFeatureDisableEXT &>((o.pDisabledValidationFeatures[i])));
14542 }
14543 }
14544
parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT & o)14545 static void parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
14546 const char *s, Json::Value &obj, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &o)
14547 {
14548
14549 parse_VkStructureType("sType", obj["sType"], (o.sType));
14550
14551 o.pNext = (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *)parsePNextChain(obj);
14552
14553 parse_VkBool32("fragmentShaderSampleInterlock", obj["fragmentShaderSampleInterlock"],
14554 (o.fragmentShaderSampleInterlock));
14555
14556 parse_VkBool32("fragmentShaderPixelInterlock", obj["fragmentShaderPixelInterlock"],
14557 (o.fragmentShaderPixelInterlock));
14558
14559 parse_VkBool32("fragmentShaderShadingRateInterlock", obj["fragmentShaderShadingRateInterlock"],
14560 (o.fragmentShaderShadingRateInterlock));
14561 }
14562
parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceYcbcrImageArraysFeaturesEXT & o)14563 static void parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(const char *s, Json::Value &obj,
14564 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &o)
14565 {
14566
14567 parse_VkStructureType("sType", obj["sType"], (o.sType));
14568
14569 o.pNext = (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *)parsePNextChain(obj);
14570
14571 parse_VkBool32("ycbcrImageArrays", obj["ycbcrImageArrays"], (o.ycbcrImageArrays));
14572 }
14573
parse_VkHeadlessSurfaceCreateFlagsEXT(const char * s,Json::Value & obj,VkHeadlessSurfaceCreateFlagsEXT & o)14574 static void parse_VkHeadlessSurfaceCreateFlagsEXT(const char *s, Json::Value &obj, VkHeadlessSurfaceCreateFlagsEXT &o)
14575 {
14576 if (obj.isString())
14577 {
14578 std::string _res = obj.asString();
14579 sscanf(_res.c_str(), "%u", &o);
14580 }
14581 else
14582 {
14583 o = obj.asUInt();
14584 }
14585 }
14586
parse_VkHeadlessSurfaceCreateInfoEXT(const char * s,Json::Value & obj,VkHeadlessSurfaceCreateInfoEXT & o)14587 static void parse_VkHeadlessSurfaceCreateInfoEXT(const char *s, Json::Value &obj, VkHeadlessSurfaceCreateInfoEXT &o)
14588 {
14589
14590 parse_VkStructureType("sType", obj["sType"], (o.sType));
14591
14592 o.pNext = (VkHeadlessSurfaceCreateInfoEXT *)parsePNextChain(obj);
14593
14594 parse_VkHeadlessSurfaceCreateFlagsEXT("flags", obj["flags"], (o.flags));
14595 }
14596
14597 static std::map<std::string, int> VkLineRasterizationModeEXT_map = {
14598 std::make_pair("VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT", 0),
14599 std::make_pair("VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT", 1),
14600 std::make_pair("VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT", 2),
14601 std::make_pair("VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT", 3),
14602 };
parse_VkLineRasterizationModeEXT(const char * s,Json::Value & obj,VkLineRasterizationModeEXT & o)14603 static void parse_VkLineRasterizationModeEXT(const char *s, Json::Value &obj, VkLineRasterizationModeEXT &o)
14604 {
14605 std::string _res = obj.asString();
14606 o = (VkLineRasterizationModeEXT)VkLineRasterizationModeEXT_map[std::string(_res)];
14607 }
14608
parse_VkPhysicalDeviceLineRasterizationFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceLineRasterizationFeaturesEXT & o)14609 static void parse_VkPhysicalDeviceLineRasterizationFeaturesEXT(const char *s, Json::Value &obj,
14610 VkPhysicalDeviceLineRasterizationFeaturesEXT &o)
14611 {
14612
14613 parse_VkStructureType("sType", obj["sType"], (o.sType));
14614
14615 o.pNext = (VkPhysicalDeviceLineRasterizationFeaturesEXT *)parsePNextChain(obj);
14616
14617 parse_VkBool32("rectangularLines", obj["rectangularLines"], (o.rectangularLines));
14618
14619 parse_VkBool32("bresenhamLines", obj["bresenhamLines"], (o.bresenhamLines));
14620
14621 parse_VkBool32("smoothLines", obj["smoothLines"], (o.smoothLines));
14622
14623 parse_VkBool32("stippledRectangularLines", obj["stippledRectangularLines"], (o.stippledRectangularLines));
14624
14625 parse_VkBool32("stippledBresenhamLines", obj["stippledBresenhamLines"], (o.stippledBresenhamLines));
14626
14627 parse_VkBool32("stippledSmoothLines", obj["stippledSmoothLines"], (o.stippledSmoothLines));
14628 }
14629
parse_VkPhysicalDeviceLineRasterizationPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceLineRasterizationPropertiesEXT & o)14630 static void parse_VkPhysicalDeviceLineRasterizationPropertiesEXT(const char *s, Json::Value &obj,
14631 VkPhysicalDeviceLineRasterizationPropertiesEXT &o)
14632 {
14633
14634 parse_VkStructureType("sType", obj["sType"], (o.sType));
14635
14636 o.pNext = (VkPhysicalDeviceLineRasterizationPropertiesEXT *)parsePNextChain(obj);
14637
14638 parse_uint32_t("lineSubPixelPrecisionBits", obj["lineSubPixelPrecisionBits"], (o.lineSubPixelPrecisionBits));
14639 }
14640
parse_VkPipelineRasterizationLineStateCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineRasterizationLineStateCreateInfoEXT & o)14641 static void parse_VkPipelineRasterizationLineStateCreateInfoEXT(const char *s, Json::Value &obj,
14642 VkPipelineRasterizationLineStateCreateInfoEXT &o)
14643 {
14644
14645 parse_VkStructureType("sType", obj["sType"], (o.sType));
14646
14647 o.pNext = (VkPipelineRasterizationLineStateCreateInfoEXT *)parsePNextChain(obj);
14648
14649 parse_VkLineRasterizationModeEXT("lineRasterizationMode", obj["lineRasterizationMode"], (o.lineRasterizationMode));
14650
14651 parse_VkBool32("stippledLineEnable", obj["stippledLineEnable"], (o.stippledLineEnable));
14652
14653 parse_uint32_t("lineStippleFactor", obj["lineStippleFactor"], (o.lineStippleFactor));
14654
14655 parse_uint16_t("lineStipplePattern", obj["lineStipplePattern"], (o.lineStipplePattern));
14656 }
14657
parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceShaderAtomicFloatFeaturesEXT & o)14658 static void parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(const char *s, Json::Value &obj,
14659 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &o)
14660 {
14661
14662 parse_VkStructureType("sType", obj["sType"], (o.sType));
14663
14664 o.pNext = (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *)parsePNextChain(obj);
14665
14666 parse_VkBool32("shaderBufferFloat32Atomics", obj["shaderBufferFloat32Atomics"], (o.shaderBufferFloat32Atomics));
14667
14668 parse_VkBool32("shaderBufferFloat32AtomicAdd", obj["shaderBufferFloat32AtomicAdd"],
14669 (o.shaderBufferFloat32AtomicAdd));
14670
14671 parse_VkBool32("shaderBufferFloat64Atomics", obj["shaderBufferFloat64Atomics"], (o.shaderBufferFloat64Atomics));
14672
14673 parse_VkBool32("shaderBufferFloat64AtomicAdd", obj["shaderBufferFloat64AtomicAdd"],
14674 (o.shaderBufferFloat64AtomicAdd));
14675
14676 parse_VkBool32("shaderSharedFloat32Atomics", obj["shaderSharedFloat32Atomics"], (o.shaderSharedFloat32Atomics));
14677
14678 parse_VkBool32("shaderSharedFloat32AtomicAdd", obj["shaderSharedFloat32AtomicAdd"],
14679 (o.shaderSharedFloat32AtomicAdd));
14680
14681 parse_VkBool32("shaderSharedFloat64Atomics", obj["shaderSharedFloat64Atomics"], (o.shaderSharedFloat64Atomics));
14682
14683 parse_VkBool32("shaderSharedFloat64AtomicAdd", obj["shaderSharedFloat64AtomicAdd"],
14684 (o.shaderSharedFloat64AtomicAdd));
14685
14686 parse_VkBool32("shaderImageFloat32Atomics", obj["shaderImageFloat32Atomics"], (o.shaderImageFloat32Atomics));
14687
14688 parse_VkBool32("shaderImageFloat32AtomicAdd", obj["shaderImageFloat32AtomicAdd"], (o.shaderImageFloat32AtomicAdd));
14689
14690 parse_VkBool32("sparseImageFloat32Atomics", obj["sparseImageFloat32Atomics"], (o.sparseImageFloat32Atomics));
14691
14692 parse_VkBool32("sparseImageFloat32AtomicAdd", obj["sparseImageFloat32AtomicAdd"], (o.sparseImageFloat32AtomicAdd));
14693 }
14694
parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceIndexTypeUint8FeaturesEXT & o)14695 static void parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const char *s, Json::Value &obj,
14696 VkPhysicalDeviceIndexTypeUint8FeaturesEXT &o)
14697 {
14698
14699 parse_VkStructureType("sType", obj["sType"], (o.sType));
14700
14701 o.pNext = (VkPhysicalDeviceIndexTypeUint8FeaturesEXT *)parsePNextChain(obj);
14702
14703 parse_VkBool32("indexTypeUint8", obj["indexTypeUint8"], (o.indexTypeUint8));
14704 }
14705
parse_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT & o)14706 static void parse_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const char *s, Json::Value &obj,
14707 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &o)
14708 {
14709
14710 parse_VkStructureType("sType", obj["sType"], (o.sType));
14711
14712 o.pNext = (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)parsePNextChain(obj);
14713
14714 parse_VkBool32("extendedDynamicState", obj["extendedDynamicState"], (o.extendedDynamicState));
14715 }
14716
parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & o)14717 static void parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
14718 const char *s, Json::Value &obj, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &o)
14719 {
14720
14721 parse_VkStructureType("sType", obj["sType"], (o.sType));
14722
14723 o.pNext = (VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT *)parsePNextChain(obj);
14724
14725 parse_VkBool32("shaderDemoteToHelperInvocation", obj["shaderDemoteToHelperInvocation"],
14726 (o.shaderDemoteToHelperInvocation));
14727 }
14728
parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT & o)14729 static void parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const char *s, Json::Value &obj,
14730 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &o)
14731 {
14732
14733 parse_VkStructureType("sType", obj["sType"], (o.sType));
14734
14735 o.pNext = (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)parsePNextChain(obj);
14736
14737 parse_VkBool32("texelBufferAlignment", obj["texelBufferAlignment"], (o.texelBufferAlignment));
14738 }
14739
parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT & o)14740 static void parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
14741 const char *s, Json::Value &obj, VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &o)
14742 {
14743
14744 parse_VkStructureType("sType", obj["sType"], (o.sType));
14745
14746 o.pNext = (VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *)parsePNextChain(obj);
14747
14748 parse_VkDeviceSize("storageTexelBufferOffsetAlignmentBytes", obj["storageTexelBufferOffsetAlignmentBytes"],
14749 (o.storageTexelBufferOffsetAlignmentBytes));
14750
14751 parse_VkBool32("storageTexelBufferOffsetSingleTexelAlignment", obj["storageTexelBufferOffsetSingleTexelAlignment"],
14752 (o.storageTexelBufferOffsetSingleTexelAlignment));
14753
14754 parse_VkDeviceSize("uniformTexelBufferOffsetAlignmentBytes", obj["uniformTexelBufferOffsetAlignmentBytes"],
14755 (o.uniformTexelBufferOffsetAlignmentBytes));
14756
14757 parse_VkBool32("uniformTexelBufferOffsetSingleTexelAlignment", obj["uniformTexelBufferOffsetSingleTexelAlignment"],
14758 (o.uniformTexelBufferOffsetSingleTexelAlignment));
14759 }
14760
parse_VkPhysicalDeviceRobustness2FeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceRobustness2FeaturesEXT & o)14761 static void parse_VkPhysicalDeviceRobustness2FeaturesEXT(const char *s, Json::Value &obj,
14762 VkPhysicalDeviceRobustness2FeaturesEXT &o)
14763 {
14764
14765 parse_VkStructureType("sType", obj["sType"], (o.sType));
14766
14767 o.pNext = (VkPhysicalDeviceRobustness2FeaturesEXT *)parsePNextChain(obj);
14768
14769 parse_VkBool32("robustBufferAccess2", obj["robustBufferAccess2"], (o.robustBufferAccess2));
14770
14771 parse_VkBool32("robustImageAccess2", obj["robustImageAccess2"], (o.robustImageAccess2));
14772
14773 parse_VkBool32("nullDescriptor", obj["nullDescriptor"], (o.nullDescriptor));
14774 }
14775
parse_VkPhysicalDeviceRobustness2PropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceRobustness2PropertiesEXT & o)14776 static void parse_VkPhysicalDeviceRobustness2PropertiesEXT(const char *s, Json::Value &obj,
14777 VkPhysicalDeviceRobustness2PropertiesEXT &o)
14778 {
14779
14780 parse_VkStructureType("sType", obj["sType"], (o.sType));
14781
14782 o.pNext = (VkPhysicalDeviceRobustness2PropertiesEXT *)parsePNextChain(obj);
14783
14784 parse_VkDeviceSize("robustStorageBufferAccessSizeAlignment", obj["robustStorageBufferAccessSizeAlignment"],
14785 (o.robustStorageBufferAccessSizeAlignment));
14786
14787 parse_VkDeviceSize("robustUniformBufferAccessSizeAlignment", obj["robustUniformBufferAccessSizeAlignment"],
14788 (o.robustUniformBufferAccessSizeAlignment));
14789 }
14790
parse_VkSamplerCustomBorderColorCreateInfoEXT(const char * s,Json::Value & obj,VkSamplerCustomBorderColorCreateInfoEXT & o)14791 static void parse_VkSamplerCustomBorderColorCreateInfoEXT(const char *s, Json::Value &obj,
14792 VkSamplerCustomBorderColorCreateInfoEXT &o)
14793 {
14794
14795 parse_VkStructureType("sType", obj["sType"], (o.sType));
14796
14797 o.pNext = (VkSamplerCustomBorderColorCreateInfoEXT *)parsePNextChain(obj);
14798
14799 parse_VkClearColorValue("customBorderColor", obj["customBorderColor"], (o.customBorderColor));
14800
14801 parse_VkFormat("format", obj["format"], (o.format));
14802 }
14803
parse_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceCustomBorderColorPropertiesEXT & o)14804 static void parse_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const char *s, Json::Value &obj,
14805 VkPhysicalDeviceCustomBorderColorPropertiesEXT &o)
14806 {
14807
14808 parse_VkStructureType("sType", obj["sType"], (o.sType));
14809
14810 o.pNext = (VkPhysicalDeviceCustomBorderColorPropertiesEXT *)parsePNextChain(obj);
14811
14812 parse_uint32_t("maxCustomBorderColorSamplers", obj["maxCustomBorderColorSamplers"],
14813 (o.maxCustomBorderColorSamplers));
14814 }
14815
parse_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceCustomBorderColorFeaturesEXT & o)14816 static void parse_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const char *s, Json::Value &obj,
14817 VkPhysicalDeviceCustomBorderColorFeaturesEXT &o)
14818 {
14819
14820 parse_VkStructureType("sType", obj["sType"], (o.sType));
14821
14822 o.pNext = (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)parsePNextChain(obj);
14823
14824 parse_VkBool32("customBorderColors", obj["customBorderColors"], (o.customBorderColors));
14825
14826 parse_VkBool32("customBorderColorWithoutFormat", obj["customBorderColorWithoutFormat"],
14827 (o.customBorderColorWithoutFormat));
14828 }
14829
parse_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & o)14830 static void parse_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const char *s, Json::Value &obj,
14831 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &o)
14832 {
14833
14834 parse_VkStructureType("sType", obj["sType"], (o.sType));
14835
14836 o.pNext = (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)parsePNextChain(obj);
14837
14838 parse_VkBool32("ycbcr2plane444Formats", obj["ycbcr2plane444Formats"], (o.ycbcr2plane444Formats));
14839 }
14840
parse_VkPhysicalDeviceImageRobustnessFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceImageRobustnessFeaturesEXT & o)14841 static void parse_VkPhysicalDeviceImageRobustnessFeaturesEXT(const char *s, Json::Value &obj,
14842 VkPhysicalDeviceImageRobustnessFeaturesEXT &o)
14843 {
14844
14845 parse_VkStructureType("sType", obj["sType"], (o.sType));
14846
14847 o.pNext = (VkPhysicalDeviceImageRobustnessFeaturesEXT *)parsePNextChain(obj);
14848
14849 parse_VkBool32("robustImageAccess", obj["robustImageAccess"], (o.robustImageAccess));
14850 }
14851
parse_VkPhysicalDevice4444FormatsFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDevice4444FormatsFeaturesEXT & o)14852 static void parse_VkPhysicalDevice4444FormatsFeaturesEXT(const char *s, Json::Value &obj,
14853 VkPhysicalDevice4444FormatsFeaturesEXT &o)
14854 {
14855
14856 parse_VkStructureType("sType", obj["sType"], (o.sType));
14857
14858 o.pNext = (VkPhysicalDevice4444FormatsFeaturesEXT *)parsePNextChain(obj);
14859
14860 parse_VkBool32("formatA4R4G4B4", obj["formatA4R4G4B4"], (o.formatA4R4G4B4));
14861
14862 parse_VkBool32("formatA4B4G4R4", obj["formatA4B4G4R4"], (o.formatA4B4G4R4));
14863 }
14864
parse_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT & o)14865 static void parse_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
14866 const char *s, Json::Value &obj, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &o)
14867 {
14868
14869 parse_VkStructureType("sType", obj["sType"], (o.sType));
14870
14871 o.pNext = (VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *)parsePNextChain(obj);
14872
14873 parse_VkBool32("vertexInputDynamicState", obj["vertexInputDynamicState"], (o.vertexInputDynamicState));
14874 }
14875
parse_VkVertexInputBindingDescription2EXT(const char * s,Json::Value & obj,VkVertexInputBindingDescription2EXT & o)14876 static void parse_VkVertexInputBindingDescription2EXT(const char *s, Json::Value &obj,
14877 VkVertexInputBindingDescription2EXT &o)
14878 {
14879
14880 parse_VkStructureType("sType", obj["sType"], (o.sType));
14881
14882 o.pNext = (VkVertexInputBindingDescription2EXT *)parsePNextChain(obj);
14883
14884 parse_uint32_t("binding", obj["binding"], (o.binding));
14885
14886 parse_uint32_t("stride", obj["stride"], (o.stride));
14887
14888 parse_VkVertexInputRate("inputRate", obj["inputRate"], (o.inputRate));
14889
14890 parse_uint32_t("divisor", obj["divisor"], (o.divisor));
14891 }
14892
parse_VkVertexInputAttributeDescription2EXT(const char * s,Json::Value & obj,VkVertexInputAttributeDescription2EXT & o)14893 static void parse_VkVertexInputAttributeDescription2EXT(const char *s, Json::Value &obj,
14894 VkVertexInputAttributeDescription2EXT &o)
14895 {
14896
14897 parse_VkStructureType("sType", obj["sType"], (o.sType));
14898
14899 o.pNext = (VkVertexInputAttributeDescription2EXT *)parsePNextChain(obj);
14900
14901 parse_uint32_t("location", obj["location"], (o.location));
14902
14903 parse_uint32_t("binding", obj["binding"], (o.binding));
14904
14905 parse_VkFormat("format", obj["format"], (o.format));
14906
14907 parse_uint32_t("offset", obj["offset"], (o.offset));
14908 }
14909
14910 static std::map<std::string, int> VkSciSyncClientTypeNV_map = {
14911 std::make_pair("VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV", 0),
14912 std::make_pair("VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV", 1),
14913 std::make_pair("VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV", 2),
14914 };
parse_VkSciSyncClientTypeNV(const char * s,Json::Value & obj,VkSciSyncClientTypeNV & o)14915 static void parse_VkSciSyncClientTypeNV(const char *s, Json::Value &obj, VkSciSyncClientTypeNV &o)
14916 {
14917 std::string _res = obj.asString();
14918 o = (VkSciSyncClientTypeNV)VkSciSyncClientTypeNV_map[std::string(_res)];
14919 }
14920
14921 static std::map<std::string, int> VkSciSyncPrimitiveTypeNV_map = {
14922 std::make_pair("VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV", 0),
14923 std::make_pair("VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV", 1),
14924 };
parse_VkSciSyncPrimitiveTypeNV(const char * s,Json::Value & obj,VkSciSyncPrimitiveTypeNV & o)14925 static void parse_VkSciSyncPrimitiveTypeNV(const char *s, Json::Value &obj, VkSciSyncPrimitiveTypeNV &o)
14926 {
14927 std::string _res = obj.asString();
14928 o = (VkSciSyncPrimitiveTypeNV)VkSciSyncPrimitiveTypeNV_map[std::string(_res)];
14929 }
14930
parse_VkExportFenceSciSyncInfoNV(const char * s,Json::Value & obj,VkExportFenceSciSyncInfoNV & o)14931 static void parse_VkExportFenceSciSyncInfoNV(const char *s, Json::Value &obj, VkExportFenceSciSyncInfoNV &o)
14932 {
14933
14934 parse_VkStructureType("sType", obj["sType"], (o.sType));
14935
14936 o.pNext = (VkExportFenceSciSyncInfoNV *)parsePNextChain(obj);
14937
14938 parse_NvSciSyncAttrList("pAttributes", obj["pAttributes"], (o.pAttributes));
14939 }
14940
parse_VkImportFenceSciSyncInfoNV(const char * s,Json::Value & obj,VkImportFenceSciSyncInfoNV & o)14941 static void parse_VkImportFenceSciSyncInfoNV(const char *s, Json::Value &obj, VkImportFenceSciSyncInfoNV &o)
14942 {
14943
14944 parse_VkStructureType("sType", obj["sType"], (o.sType));
14945
14946 o.pNext = (VkImportFenceSciSyncInfoNV *)parsePNextChain(obj);
14947
14948 parse_VkExternalFenceHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
14949 }
14950
parse_VkFenceGetSciSyncInfoNV(const char * s,Json::Value & obj,VkFenceGetSciSyncInfoNV & o)14951 static void parse_VkFenceGetSciSyncInfoNV(const char *s, Json::Value &obj, VkFenceGetSciSyncInfoNV &o)
14952 {
14953
14954 parse_VkStructureType("sType", obj["sType"], (o.sType));
14955
14956 o.pNext = (VkFenceGetSciSyncInfoNV *)parsePNextChain(obj);
14957
14958 parse_VkExternalFenceHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
14959 }
14960
parse_VkSciSyncAttributesInfoNV(const char * s,Json::Value & obj,VkSciSyncAttributesInfoNV & o)14961 static void parse_VkSciSyncAttributesInfoNV(const char *s, Json::Value &obj, VkSciSyncAttributesInfoNV &o)
14962 {
14963
14964 parse_VkStructureType("sType", obj["sType"], (o.sType));
14965
14966 o.pNext = (VkSciSyncAttributesInfoNV *)parsePNextChain(obj);
14967
14968 parse_VkSciSyncClientTypeNV("clientType", obj["clientType"], (o.clientType));
14969
14970 parse_VkSciSyncPrimitiveTypeNV("primitiveType", obj["primitiveType"], (o.primitiveType));
14971 }
14972
parse_VkExportSemaphoreSciSyncInfoNV(const char * s,Json::Value & obj,VkExportSemaphoreSciSyncInfoNV & o)14973 static void parse_VkExportSemaphoreSciSyncInfoNV(const char *s, Json::Value &obj, VkExportSemaphoreSciSyncInfoNV &o)
14974 {
14975
14976 parse_VkStructureType("sType", obj["sType"], (o.sType));
14977
14978 o.pNext = (VkExportSemaphoreSciSyncInfoNV *)parsePNextChain(obj);
14979
14980 parse_NvSciSyncAttrList("pAttributes", obj["pAttributes"], (o.pAttributes));
14981 }
14982
parse_VkImportSemaphoreSciSyncInfoNV(const char * s,Json::Value & obj,VkImportSemaphoreSciSyncInfoNV & o)14983 static void parse_VkImportSemaphoreSciSyncInfoNV(const char *s, Json::Value &obj, VkImportSemaphoreSciSyncInfoNV &o)
14984 {
14985
14986 parse_VkStructureType("sType", obj["sType"], (o.sType));
14987
14988 o.pNext = (VkImportSemaphoreSciSyncInfoNV *)parsePNextChain(obj);
14989
14990 parse_VkExternalSemaphoreHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
14991 }
14992
parse_VkSemaphoreGetSciSyncInfoNV(const char * s,Json::Value & obj,VkSemaphoreGetSciSyncInfoNV & o)14993 static void parse_VkSemaphoreGetSciSyncInfoNV(const char *s, Json::Value &obj, VkSemaphoreGetSciSyncInfoNV &o)
14994 {
14995
14996 parse_VkStructureType("sType", obj["sType"], (o.sType));
14997
14998 o.pNext = (VkSemaphoreGetSciSyncInfoNV *)parsePNextChain(obj);
14999
15000 parse_VkExternalSemaphoreHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
15001 }
15002
parse_VkPhysicalDeviceExternalSciSyncFeaturesNV(const char * s,Json::Value & obj,VkPhysicalDeviceExternalSciSyncFeaturesNV & o)15003 static void parse_VkPhysicalDeviceExternalSciSyncFeaturesNV(const char *s, Json::Value &obj,
15004 VkPhysicalDeviceExternalSciSyncFeaturesNV &o)
15005 {
15006
15007 parse_VkStructureType("sType", obj["sType"], (o.sType));
15008
15009 o.pNext = (VkPhysicalDeviceExternalSciSyncFeaturesNV *)parsePNextChain(obj);
15010
15011 parse_VkBool32("sciSyncFence", obj["sciSyncFence"], (o.sciSyncFence));
15012
15013 parse_VkBool32("sciSyncSemaphore", obj["sciSyncSemaphore"], (o.sciSyncSemaphore));
15014
15015 parse_VkBool32("sciSyncImport", obj["sciSyncImport"], (o.sciSyncImport));
15016
15017 parse_VkBool32("sciSyncExport", obj["sciSyncExport"], (o.sciSyncExport));
15018 }
15019
parse_VkExportMemorySciBufInfoNV(const char * s,Json::Value & obj,VkExportMemorySciBufInfoNV & o)15020 static void parse_VkExportMemorySciBufInfoNV(const char *s, Json::Value &obj, VkExportMemorySciBufInfoNV &o)
15021 {
15022
15023 parse_VkStructureType("sType", obj["sType"], (o.sType));
15024
15025 o.pNext = (VkExportMemorySciBufInfoNV *)parsePNextChain(obj);
15026
15027 parse_NvSciBufAttrList("pAttributes", obj["pAttributes"], (o.pAttributes));
15028 }
15029
parse_VkImportMemorySciBufInfoNV(const char * s,Json::Value & obj,VkImportMemorySciBufInfoNV & o)15030 static void parse_VkImportMemorySciBufInfoNV(const char *s, Json::Value &obj, VkImportMemorySciBufInfoNV &o)
15031 {
15032
15033 parse_VkStructureType("sType", obj["sType"], (o.sType));
15034
15035 o.pNext = (VkImportMemorySciBufInfoNV *)parsePNextChain(obj);
15036
15037 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
15038
15039 parse_NvSciBufObj("handle", obj["handle"], (o.handle));
15040 }
15041
parse_VkMemoryGetSciBufInfoNV(const char * s,Json::Value & obj,VkMemoryGetSciBufInfoNV & o)15042 static void parse_VkMemoryGetSciBufInfoNV(const char *s, Json::Value &obj, VkMemoryGetSciBufInfoNV &o)
15043 {
15044
15045 parse_VkStructureType("sType", obj["sType"], (o.sType));
15046
15047 o.pNext = (VkMemoryGetSciBufInfoNV *)parsePNextChain(obj);
15048
15049 parse_VkExternalMemoryHandleTypeFlagBits("handleType", obj["handleType"], (o.handleType));
15050 }
15051
parse_VkMemorySciBufPropertiesNV(const char * s,Json::Value & obj,VkMemorySciBufPropertiesNV & o)15052 static void parse_VkMemorySciBufPropertiesNV(const char *s, Json::Value &obj, VkMemorySciBufPropertiesNV &o)
15053 {
15054
15055 parse_VkStructureType("sType", obj["sType"], (o.sType));
15056
15057 o.pNext = (VkMemorySciBufPropertiesNV *)parsePNextChain(obj);
15058
15059 parse_uint32_t("memoryTypeBits", obj["memoryTypeBits"], (o.memoryTypeBits));
15060 }
15061
parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV(const char * s,Json::Value & obj,VkPhysicalDeviceExternalMemorySciBufFeaturesNV & o)15062 static void parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV(const char *s, Json::Value &obj,
15063 VkPhysicalDeviceExternalMemorySciBufFeaturesNV &o)
15064 {
15065
15066 parse_VkStructureType("sType", obj["sType"], (o.sType));
15067
15068 o.pNext = (VkPhysicalDeviceExternalMemorySciBufFeaturesNV *)parsePNextChain(obj);
15069
15070 parse_VkBool32("sciBufImport", obj["sciBufImport"], (o.sciBufImport));
15071
15072 parse_VkBool32("sciBufExport", obj["sciBufExport"], (o.sciBufExport));
15073 }
15074
15075 typedef VkPhysicalDeviceExternalMemorySciBufFeaturesNV VkPhysicalDeviceExternalSciBufFeaturesNV;
15076
parse_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT & o)15077 static void parse_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const char *s, Json::Value &obj,
15078 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &o)
15079 {
15080
15081 parse_VkStructureType("sType", obj["sType"], (o.sType));
15082
15083 o.pNext = (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)parsePNextChain(obj);
15084
15085 parse_VkBool32("extendedDynamicState2", obj["extendedDynamicState2"], (o.extendedDynamicState2));
15086
15087 parse_VkBool32("extendedDynamicState2LogicOp", obj["extendedDynamicState2LogicOp"],
15088 (o.extendedDynamicState2LogicOp));
15089
15090 parse_VkBool32("extendedDynamicState2PatchControlPoints", obj["extendedDynamicState2PatchControlPoints"],
15091 (o.extendedDynamicState2PatchControlPoints));
15092 }
15093
parse_VkPhysicalDeviceColorWriteEnableFeaturesEXT(const char * s,Json::Value & obj,VkPhysicalDeviceColorWriteEnableFeaturesEXT & o)15094 static void parse_VkPhysicalDeviceColorWriteEnableFeaturesEXT(const char *s, Json::Value &obj,
15095 VkPhysicalDeviceColorWriteEnableFeaturesEXT &o)
15096 {
15097
15098 parse_VkStructureType("sType", obj["sType"], (o.sType));
15099
15100 o.pNext = (VkPhysicalDeviceColorWriteEnableFeaturesEXT *)parsePNextChain(obj);
15101
15102 parse_VkBool32("colorWriteEnable", obj["colorWriteEnable"], (o.colorWriteEnable));
15103 }
15104
parse_VkPipelineColorWriteCreateInfoEXT(const char * s,Json::Value & obj,VkPipelineColorWriteCreateInfoEXT & o)15105 static void parse_VkPipelineColorWriteCreateInfoEXT(const char *s, Json::Value &obj,
15106 VkPipelineColorWriteCreateInfoEXT &o)
15107 {
15108
15109 parse_VkStructureType("sType", obj["sType"], (o.sType));
15110
15111 o.pNext = (VkPipelineColorWriteCreateInfoEXT *)parsePNextChain(obj);
15112
15113 parse_uint32_t("attachmentCount", obj["attachmentCount"], (o.attachmentCount));
15114
15115 (o.pColorWriteEnables) = (VkBool32 *)s_globalMem.allocate((o.attachmentCount), sizeof(VkBool32));
15116 Json::Value &obj_pColorWriteEnables_arr = obj["pColorWriteEnables"];
15117 for (unsigned int i = 0; i < obj_pColorWriteEnables_arr.size(); i++)
15118 {
15119 parse_VkBool32("pColorWriteEnables", obj_pColorWriteEnables_arr[i],
15120 const_cast<VkBool32 &>((o.pColorWriteEnables[i])));
15121 }
15122 }
15123
parse_VkApplicationParametersEXT(const char * s,Json::Value & obj,VkApplicationParametersEXT & o)15124 static void parse_VkApplicationParametersEXT(const char *s, Json::Value &obj, VkApplicationParametersEXT &o)
15125 {
15126
15127 parse_VkStructureType("sType", obj["sType"], (o.sType));
15128
15129 o.pNext = (VkApplicationParametersEXT *)parsePNextChain(obj);
15130
15131 parse_uint32_t("vendorID", obj["vendorID"], (o.vendorID));
15132
15133 parse_uint32_t("deviceID", obj["deviceID"], (o.deviceID));
15134
15135 parse_uint32_t("key", obj["key"], (o.key));
15136
15137 parse_uint64_t("value", obj["value"], (o.value));
15138 }
15139
parse_VkSemaphoreSciSyncPoolNV(const char * s,Json::Value & obj,VkSemaphoreSciSyncPoolNV & o)15140 static void parse_VkSemaphoreSciSyncPoolNV(const char *s, Json::Value &obj, VkSemaphoreSciSyncPoolNV &o)
15141 {
15142 // std::string _res = obj.asString();
15143 }
15144
parse_VkPhysicalDeviceExternalSciSync2FeaturesNV(const char * s,Json::Value & obj,VkPhysicalDeviceExternalSciSync2FeaturesNV & o)15145 static void parse_VkPhysicalDeviceExternalSciSync2FeaturesNV(const char *s, Json::Value &obj,
15146 VkPhysicalDeviceExternalSciSync2FeaturesNV &o)
15147 {
15148
15149 parse_VkStructureType("sType", obj["sType"], (o.sType));
15150
15151 o.pNext = (VkPhysicalDeviceExternalSciSync2FeaturesNV *)parsePNextChain(obj);
15152
15153 parse_VkBool32("sciSyncFence", obj["sciSyncFence"], (o.sciSyncFence));
15154
15155 parse_VkBool32("sciSyncSemaphore2", obj["sciSyncSemaphore2"], (o.sciSyncSemaphore2));
15156
15157 parse_VkBool32("sciSyncImport", obj["sciSyncImport"], (o.sciSyncImport));
15158
15159 parse_VkBool32("sciSyncExport", obj["sciSyncExport"], (o.sciSyncExport));
15160 }
15161
parse_VkSemaphoreSciSyncPoolCreateInfoNV(const char * s,Json::Value & obj,VkSemaphoreSciSyncPoolCreateInfoNV & o)15162 static void parse_VkSemaphoreSciSyncPoolCreateInfoNV(const char *s, Json::Value &obj,
15163 VkSemaphoreSciSyncPoolCreateInfoNV &o)
15164 {
15165
15166 parse_VkStructureType("sType", obj["sType"], (o.sType));
15167
15168 o.pNext = (VkSemaphoreSciSyncPoolCreateInfoNV *)parsePNextChain(obj);
15169
15170 parse_NvSciSyncObj("handle", obj["handle"], (o.handle));
15171 }
15172
parse_VkSemaphoreSciSyncCreateInfoNV(const char * s,Json::Value & obj,VkSemaphoreSciSyncCreateInfoNV & o)15173 static void parse_VkSemaphoreSciSyncCreateInfoNV(const char *s, Json::Value &obj, VkSemaphoreSciSyncCreateInfoNV &o)
15174 {
15175
15176 parse_VkStructureType("sType", obj["sType"], (o.sType));
15177
15178 o.pNext = (VkSemaphoreSciSyncCreateInfoNV *)parsePNextChain(obj);
15179
15180 /** TODO: Handle this - pFence **/
15181 }
15182
parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV(const char * s,Json::Value & obj,VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV & o)15183 static void parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV(
15184 const char *s, Json::Value &obj, VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV &o)
15185 {
15186
15187 parse_VkStructureType("sType", obj["sType"], (o.sType));
15188
15189 o.pNext = (VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV *)parsePNextChain(obj);
15190
15191 parse_uint32_t("semaphoreSciSyncPoolRequestCount", obj["semaphoreSciSyncPoolRequestCount"],
15192 (o.semaphoreSciSyncPoolRequestCount));
15193 }
15194
15195 } //End of namespace vk_json_parser
15196
15197 #endif // _VULKAN_JSON_PARSER_HPP