blob: d8f79ac232a91a2defebe93534a239f4b8b8139e [file] [log] [blame]
#ifndef _VULKAN_JSON_PARSER_HPP
#define _VULKAN_JSON_PARSER_HPP
/*
* Copyright (c) 2021 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*//*!
* \file
* \brief Defines JSON generators for Vulkan structures
*/
/********************************************************************************************/
/** This code is generated. To make changes, please modify the scripts or the relevant xml **/
/********************************************************************************************/
#pragma once
#include <iostream>
#include <map>
#include <cinttypes>
#include <algorithm>
#include <bitset>
#include <functional>
#include <sstream>
#include <cinttypes>
#include <json/json.h>
namespace vk_json_parser {
template <typename T1, typename T2>
class GlobalMem {
static constexpr size_t MAX_ALIGNMENT = alignof(std::max_align_t);
void grow(T1 size = 0) {
//push_back new single vector of size m_tabSize onto vec
void * p = calloc(size > m_tabSize ? size : m_tabSize, sizeof(T2));
assert(p);
m_vec.push_back(p);
m_pointer = 0U;
}
void * alloc(T1 size) {
// Align to the next multiple of MAX_ALIGNMENT.
size = (size + static_cast<T1>(MAX_ALIGNMENT) - 1) & ~(static_cast<T1>(MAX_ALIGNMENT) - 1);
void* result = static_cast<deUint8 *>(m_vec.back()) + m_pointer;
m_pointer += size;
return result;
}
public:
GlobalMem(T1 tabSize_ = 32768U)
: m_tabSize(tabSize_), m_pointer(0U)
{
}
void* allocate (T1 size)
{
if (m_vec.empty() || m_pointer+size >= m_tabSize) {
grow();
}
return alloc(size);
}
void* allocate (T1 count, T1 size)
{
T1 totalSize = count * size;
if (m_vec.empty() || m_pointer+totalSize >= m_tabSize)
{
grow(totalSize);
}
return alloc(totalSize);
}
// deallocates all memory. Any use of earlier allocated elements is forbidden
void clear()
{
// remove all vectors from vec excluding the one with index 0
for (size_t i=1 ; i<m_vec.size(); i++) {
free(m_vec[i]);
}
if (!m_vec.empty()) {
m_vec.resize(1);
}
m_pointer = 0;
}
~GlobalMem()
{
clear();
if (!m_vec.empty()) {
free(m_vec[0]);
}
}
private:
std::vector< void * > m_vec;
T1 m_tabSize;
T1 m_pointer;
};
static thread_local GlobalMem<deUint32, deUint8> s_globalMem(32768U);
// To make sure the generated data is consistent across platforms,
// we typecast to 32-bit.
static void parse_size_t(const char* s, Json::Value& obj, size_t& o)
{
deUint32 _res = static_cast<deUint32>(obj.asUInt());
o = _res;
}
static void parse_char(const char* s, Json::Value& obj, char o[])
{
std::string _res = obj.asString();
memcpy((void*)o, _res.c_str(), static_cast<deUint32>(_res.size()));
o[_res.size()] = '\0';
}
static void parse_char(const char* s, Json::Value& obj, const char* const*)
{
}
static void parse_char(const char* s, Json::Value& obj, const char** o)
{
std::string _res = obj.asString();
char *writePtr = (char *)s_globalMem.allocate(static_cast<deUint32>(_res.size()) + 1);
memcpy((void*)writePtr, _res.c_str(), _res.size());
writePtr[_res.size()] = '\0';
*o = writePtr;
}
static void parse_int32_t(const char* s, Json::Value& obj, deInt32& o)
{
o = obj.asInt();
}
static void parse_uint32_t(const char* s, Json::Value& obj, deUint32& o)
{
if (obj.isString())
if (obj.asString() == "VK_MAX_PHYSICAL_DEVICE_NAME_SIZE")
o = 256;
else if (obj.asString() == "VK_UUID_SIZE")
o = 16;
else if (obj.asString() == "VK_LUID_SIZE")
o = 8;
else if (obj.asString() == "VK_MAX_EXTENSION_NAME_SIZE")
o = 256;
else if (obj.asString() == "VK_MAX_DESCRIPTION_SIZE")
o = 256;
else if (obj.asString() == "VK_MAX_MEMORY_TYPES")
o = 32;
else if (obj.asString() == "VK_MAX_MEMORY_HEAPS")
o = 16;
else if (obj.asString() == "VK_REMAINING_MIP_LEVELS")
o = (~0U);
else if (obj.asString() == "VK_REMAINING_ARRAY_LAYERS")
o = (~0U);
else if (obj.asString() == "VK_ATTACHMENT_UNUSED")
o = (~0U);
else if (obj.asString() == "VK_TRUE")
o = 1;
else if (obj.asString() == "VK_FALSE")
o = 0;
else if (obj.asString() == "VK_QUEUE_FAMILY_IGNORED")
o = (~0U);
else if (obj.asString() == "VK_QUEUE_FAMILY_EXTERNAL")
o = (~1U);
else if (obj.asString() == "VK_QUEUE_FAMILY_FOREIGN_EXT")
o = (~2U);
else if (obj.asString() == "VK_SUBPASS_EXTERNAL")
o = (~0U);
else if (obj.asString() == "VK_MAX_DEVICE_GROUP_SIZE")
o = 32;
else if (obj.asString() == "VK_MAX_DRIVER_NAME_SIZE")
o = 256;
else if (obj.asString() == "VK_MAX_DRIVER_INFO_SIZE")
o = 256;
else if (obj.asString() == "VK_SHADER_UNUSED_KHR")
o = (~0U);
else if (obj.asString() == "VK_MAX_GLOBAL_PRIORITY_SIZE_EXT")
o = 16;
else
assert(false);
else
o = obj.asUInt();
}
static void parse_uint8_t(const char* s, Json::Value& obj, deUint8& o)
{
o = static_cast<deUint8>(obj.asUInt());
}
static void parse_uint64_t(const char* s, Json::Value& obj, deUint64& o)
{
if (obj.isString())
if (obj.asString() == "VK_WHOLE_SIZE")
o = (~0ULL);
else
assert(false);
else
o = obj.asUInt64();
}
static void parse_float(const char* s, Json::Value& obj, float& o)
{
if (obj.isString())
if (obj.asString() == "VK_LOD_CLAMP_NONE")
o = 1000.0F;
else if (obj.asString() == "NaN")
o = std::numeric_limits<float>::quiet_NaN();
else
assert(false);
else
o = obj.asFloat();
}
static void parse_int(const char* s, Json::Value& obj, int& o)
{
o = obj.asInt();
}
static void parse_double(const char* s, Json::Value& obj, double& o)
{
o = obj.asDouble();
}
static void parse_int64_t(const char* s, Json::Value& obj, deInt64& o)
{
o = obj.asInt64();
}
static void parse_uint16_t(const char* s, Json::Value& obj, deUint16& o)
{
o = static_cast<deUint16>(obj.asUInt());
}
static void parse_NvSciBufAttrList(const char* s, Json::Value& obj, vk::pt::NvSciBufAttrList& o)
{
o = static_cast<vk::pt::NvSciBufAttrList>(obj.asInt());
}
static void parse_NvSciBufObj(const char* s, Json::Value& obj, vk::pt::NvSciBufObj& o)
{
o = static_cast<vk::pt::NvSciBufObj>(obj.asInt());
}
static void parse_NvSciSyncAttrList(const char* s, Json::Value& obj, vk::pt::NvSciSyncAttrList& o)
{
o = static_cast<vk::pt::NvSciSyncAttrList>(obj.asInt());
}
static void parse_NvSciSyncObj(const char* s, Json::Value& obj, vk::pt::NvSciSyncObj& o)
{
o = static_cast<vk::pt::NvSciSyncObj>(obj.asInt());
}
// base64 encoder taken from executor/xeTestResultParser.cpp
static
std::vector<deUint8> base64decode(const std::string encoded)
{
int base64DecodeOffset = 0;
std::vector<deUint8> result;
for (std::size_t inNdx = 0; inNdx < encoded.size(); inNdx++)
{
deUint8 byte = encoded[inNdx];
deUint8 decodedBits = 0;
if (de::inRange<deUint8>(byte, 'A', 'Z'))
decodedBits = (deUint8)(byte - 'A');
else if (de::inRange<deUint8>(byte, 'a', 'z'))
decodedBits = (deUint8)(('Z' - 'A' + 1) + (byte - 'a'));
else if (de::inRange<deUint8>(byte, '0', '9'))
decodedBits = (deUint8)(('Z' - 'A' + 1) + ('z' - 'a' + 1) + (byte - '0'));
else if (byte == '+')
decodedBits = ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 1);
else if (byte == '/')
decodedBits = ('Z' - 'A' + 1) + ('z' - 'a' + 1) + ('9' - '0' + 2);
else
continue; // Not an B64 input character.
int phase = base64DecodeOffset % 4;
if (phase == 0)
result.resize(result.size() + 3, 0);
// if ((int)image->data.size() < (base64DecodeOffset >> 2) * 3 + 3)
// throw TestResultParseError("Malformed base64 data");
deUint8* outPtr = result.data() + (base64DecodeOffset >> 2) * 3;
switch (phase)
{
case 0: outPtr[0] |= (deUint8)(decodedBits << 2); break;
case 1: outPtr[0] = (deUint8)(outPtr[0] | (deUint8)(decodedBits >> 4)); outPtr[1] = (deUint8)(outPtr[1] | (deUint8)((decodedBits & 0xF) << 4)); break;
case 2: outPtr[1] = (deUint8)(outPtr[1] | (deUint8)(decodedBits >> 2)); outPtr[2] = (deUint8)(outPtr[2] | (deUint8)((decodedBits & 0x3) << 6)); break;
case 3: outPtr[2] |= decodedBits; break;
default:
DE_ASSERT(false);
}
base64DecodeOffset++;
}
return result;
}
static void parse_void_data(const void* s, Json::Value& obj, void* o, int oSize)
{
std::vector<deUint8> data;
if (obj.isString())
{
data = base64decode(obj.asString());
}
else
{
data.resize(oSize);
for (int i = 0; i < std::min(oSize, (int)obj.size()); i++)
{
parse_uint8_t("pData", obj[i], const_cast<deUint8&>(data[i]));
}
}
memcpy(o, data.data(), oSize);
}
/*************************************** Begin prototypes ***********************************/
static void parse_VkSampleMask(const char* s, Json::Value& obj, VkSampleMask& o);
static void parse_VkBool32(const char* s, Json::Value& obj, VkBool32& o);
static void parse_VkFlags(const char* s, Json::Value& obj, VkFlags& o);
static void parse_VkFlags64(const char* s, Json::Value& obj, VkFlags64& o);
static void parse_VkDeviceSize(const char* s, Json::Value& obj, VkDeviceSize& o);
static void parse_VkDeviceAddress(const char* s, Json::Value& obj, VkDeviceAddress& o);
static void parse_VkFramebufferCreateFlags(const char* s, Json::Value& obj, VkFramebufferCreateFlags& o);
static void parse_VkQueryPoolCreateFlags(const char* s, Json::Value& obj, VkQueryPoolCreateFlags& o);
static void parse_VkRenderPassCreateFlags(const char* s, Json::Value& obj, VkRenderPassCreateFlags& o);
static void parse_VkSamplerCreateFlags(const char* s, Json::Value& obj, VkSamplerCreateFlags& o);
static void parse_VkPipelineLayoutCreateFlags(const char* s, Json::Value& obj, VkPipelineLayoutCreateFlags& o);
static void parse_VkPipelineCacheCreateFlags(const char* s, Json::Value& obj, VkPipelineCacheCreateFlags& o);
static void parse_VkPipelineDepthStencilStateCreateFlags(const char* s, Json::Value& obj, VkPipelineDepthStencilStateCreateFlags& o);
static void parse_VkPipelineDynamicStateCreateFlags(const char* s, Json::Value& obj, VkPipelineDynamicStateCreateFlags& o);
static void parse_VkPipelineColorBlendStateCreateFlags(const char* s, Json::Value& obj, VkPipelineColorBlendStateCreateFlags& o);
static void parse_VkPipelineMultisampleStateCreateFlags(const char* s, Json::Value& obj, VkPipelineMultisampleStateCreateFlags& o);
static void parse_VkPipelineRasterizationStateCreateFlags(const char* s, Json::Value& obj, VkPipelineRasterizationStateCreateFlags& o);
static void parse_VkPipelineViewportStateCreateFlags(const char* s, Json::Value& obj, VkPipelineViewportStateCreateFlags& o);
static void parse_VkPipelineTessellationStateCreateFlags(const char* s, Json::Value& obj, VkPipelineTessellationStateCreateFlags& o);
static void parse_VkPipelineInputAssemblyStateCreateFlags(const char* s, Json::Value& obj, VkPipelineInputAssemblyStateCreateFlags& o);
static void parse_VkPipelineVertexInputStateCreateFlags(const char* s, Json::Value& obj, VkPipelineVertexInputStateCreateFlags& o);
static void parse_VkPipelineShaderStageCreateFlags(const char* s, Json::Value& obj, VkPipelineShaderStageCreateFlags& o);
static void parse_VkDescriptorSetLayoutCreateFlags(const char* s, Json::Value& obj, VkDescriptorSetLayoutCreateFlags& o);
static void parse_VkBufferViewCreateFlags(const char* s, Json::Value& obj, VkBufferViewCreateFlags& o);
static void parse_VkInstanceCreateFlags(const char* s, Json::Value& obj, VkInstanceCreateFlags& o);
static void parse_VkDeviceCreateFlags(const char* s, Json::Value& obj, VkDeviceCreateFlags& o);
static void parse_VkDeviceQueueCreateFlags(const char* s, Json::Value& obj, VkDeviceQueueCreateFlags& o);
static void parse_VkQueueFlags(const char* s, Json::Value& obj, VkQueueFlags& o);
static void parse_VkMemoryPropertyFlags(const char* s, Json::Value& obj, VkMemoryPropertyFlags& o);
static void parse_VkMemoryHeapFlags(const char* s, Json::Value& obj, VkMemoryHeapFlags& o);
static void parse_VkAccessFlags(const char* s, Json::Value& obj, VkAccessFlags& o);
static void parse_VkBufferUsageFlags(const char* s, Json::Value& obj, VkBufferUsageFlags& o);
static void parse_VkBufferCreateFlags(const char* s, Json::Value& obj, VkBufferCreateFlags& o);
static void parse_VkShaderStageFlags(const char* s, Json::Value& obj, VkShaderStageFlags& o);
static void parse_VkImageUsageFlags(const char* s, Json::Value& obj, VkImageUsageFlags& o);
static void parse_VkImageCreateFlags(const char* s, Json::Value& obj, VkImageCreateFlags& o);
static void parse_VkImageViewCreateFlags(const char* s, Json::Value& obj, VkImageViewCreateFlags& o);
static void parse_VkPipelineCreateFlags(const char* s, Json::Value& obj, VkPipelineCreateFlags& o);
static void parse_VkColorComponentFlags(const char* s, Json::Value& obj, VkColorComponentFlags& o);
static void parse_VkFenceCreateFlags(const char* s, Json::Value& obj, VkFenceCreateFlags& o);
static void parse_VkSemaphoreCreateFlags(const char* s, Json::Value& obj, VkSemaphoreCreateFlags& o);
static void parse_VkFormatFeatureFlags(const char* s, Json::Value& obj, VkFormatFeatureFlags& o);
static void parse_VkQueryControlFlags(const char* s, Json::Value& obj, VkQueryControlFlags& o);
static void parse_VkQueryResultFlags(const char* s, Json::Value& obj, VkQueryResultFlags& o);
static void parse_VkEventCreateFlags(const char* s, Json::Value& obj, VkEventCreateFlags& o);
static void parse_VkCommandPoolCreateFlags(const char* s, Json::Value& obj, VkCommandPoolCreateFlags& o);
static void parse_VkCommandPoolResetFlags(const char* s, Json::Value& obj, VkCommandPoolResetFlags& o);
static void parse_VkCommandBufferResetFlags(const char* s, Json::Value& obj, VkCommandBufferResetFlags& o);
static void parse_VkCommandBufferUsageFlags(const char* s, Json::Value& obj, VkCommandBufferUsageFlags& o);
static void parse_VkQueryPipelineStatisticFlags(const char* s, Json::Value& obj, VkQueryPipelineStatisticFlags& o);
static void parse_VkMemoryMapFlags(const char* s, Json::Value& obj, VkMemoryMapFlags& o);
static void parse_VkImageAspectFlags(const char* s, Json::Value& obj, VkImageAspectFlags& o);
static void parse_VkSubpassDescriptionFlags(const char* s, Json::Value& obj, VkSubpassDescriptionFlags& o);
static void parse_VkPipelineStageFlags(const char* s, Json::Value& obj, VkPipelineStageFlags& o);
static void parse_VkSampleCountFlags(const char* s, Json::Value& obj, VkSampleCountFlags& o);
static void parse_VkAttachmentDescriptionFlags(const char* s, Json::Value& obj, VkAttachmentDescriptionFlags& o);
static void parse_VkStencilFaceFlags(const char* s, Json::Value& obj, VkStencilFaceFlags& o);
static void parse_VkCullModeFlags(const char* s, Json::Value& obj, VkCullModeFlags& o);
static void parse_VkDescriptorPoolCreateFlags(const char* s, Json::Value& obj, VkDescriptorPoolCreateFlags& o);
static void parse_VkDescriptorPoolResetFlags(const char* s, Json::Value& obj, VkDescriptorPoolResetFlags& o);
static void parse_VkDependencyFlags(const char* s, Json::Value& obj, VkDependencyFlags& o);
static void parse_VkSubgroupFeatureFlags(const char* s, Json::Value& obj, VkSubgroupFeatureFlags& o);
static void parse_VkPerformanceCounterDescriptionFlagsKHR(const char* s, Json::Value& obj, VkPerformanceCounterDescriptionFlagsKHR& o);
static void parse_VkAcquireProfilingLockFlagsKHR(const char* s, Json::Value& obj, VkAcquireProfilingLockFlagsKHR& o);
static void parse_VkSemaphoreWaitFlags(const char* s, Json::Value& obj, VkSemaphoreWaitFlags& o);
static void parse_VkRefreshObjectFlagsKHR(const char* s, Json::Value& obj, VkRefreshObjectFlagsKHR& o);
static void parse_VkAccessFlags2KHR(const char* s, Json::Value& obj, VkAccessFlags2KHR& o);
static void parse_VkPipelineStageFlags2KHR(const char* s, Json::Value& obj, VkPipelineStageFlags2KHR& o);
static void parse_VkCompositeAlphaFlagsKHR(const char* s, Json::Value& obj, VkCompositeAlphaFlagsKHR& o);
static void parse_VkDisplayPlaneAlphaFlagsKHR(const char* s, Json::Value& obj, VkDisplayPlaneAlphaFlagsKHR& o);
static void parse_VkSurfaceTransformFlagsKHR(const char* s, Json::Value& obj, VkSurfaceTransformFlagsKHR& o);
static void parse_VkSwapchainCreateFlagsKHR(const char* s, Json::Value& obj, VkSwapchainCreateFlagsKHR& o);
static void parse_VkDisplayModeCreateFlagsKHR(const char* s, Json::Value& obj, VkDisplayModeCreateFlagsKHR& o);
static void parse_VkDisplaySurfaceCreateFlagsKHR(const char* s, Json::Value& obj, VkDisplaySurfaceCreateFlagsKHR& o);
static void parse_VkHeadlessSurfaceCreateFlagsEXT(const char* s, Json::Value& obj, VkHeadlessSurfaceCreateFlagsEXT& o);
static void parse_VkPeerMemoryFeatureFlags(const char* s, Json::Value& obj, VkPeerMemoryFeatureFlags& o);
static void parse_VkMemoryAllocateFlags(const char* s, Json::Value& obj, VkMemoryAllocateFlags& o);
static void parse_VkDeviceGroupPresentModeFlagsKHR(const char* s, Json::Value& obj, VkDeviceGroupPresentModeFlagsKHR& o);
static void parse_VkExternalMemoryHandleTypeFlags(const char* s, Json::Value& obj, VkExternalMemoryHandleTypeFlags& o);
static void parse_VkExternalMemoryFeatureFlags(const char* s, Json::Value& obj, VkExternalMemoryFeatureFlags& o);
static void parse_VkExternalSemaphoreHandleTypeFlags(const char* s, Json::Value& obj, VkExternalSemaphoreHandleTypeFlags& o);
static void parse_VkExternalSemaphoreFeatureFlags(const char* s, Json::Value& obj, VkExternalSemaphoreFeatureFlags& o);
static void parse_VkSemaphoreImportFlags(const char* s, Json::Value& obj, VkSemaphoreImportFlags& o);
static void parse_VkExternalFenceHandleTypeFlags(const char* s, Json::Value& obj, VkExternalFenceHandleTypeFlags& o);
static void parse_VkExternalFenceFeatureFlags(const char* s, Json::Value& obj, VkExternalFenceFeatureFlags& o);
static void parse_VkFenceImportFlags(const char* s, Json::Value& obj, VkFenceImportFlags& o);
static void parse_VkSurfaceCounterFlagsEXT(const char* s, Json::Value& obj, VkSurfaceCounterFlagsEXT& o);
static void parse_VkPipelineDiscardRectangleStateCreateFlagsEXT(const char* s, Json::Value& obj, VkPipelineDiscardRectangleStateCreateFlagsEXT& o);
static void parse_VkDebugUtilsMessageSeverityFlagsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessageSeverityFlagsEXT& o);
static void parse_VkDebugUtilsMessageTypeFlagsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessageTypeFlagsEXT& o);
static void parse_VkDebugUtilsMessengerCreateFlagsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessengerCreateFlagsEXT& o);
static void parse_VkDebugUtilsMessengerCallbackDataFlagsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessengerCallbackDataFlagsEXT& o);
static void parse_VkPipelineRasterizationConservativeStateCreateFlagsEXT(const char* s, Json::Value& obj, VkPipelineRasterizationConservativeStateCreateFlagsEXT& o);
static void parse_VkDescriptorBindingFlags(const char* s, Json::Value& obj, VkDescriptorBindingFlags& o);
static void parse_VkResolveModeFlags(const char* s, Json::Value& obj, VkResolveModeFlags& o);
static void parse_VkPipelineRasterizationDepthClipStateCreateFlagsEXT(const char* s, Json::Value& obj, VkPipelineRasterizationDepthClipStateCreateFlagsEXT& o);
static void parse_VkSubmitFlagsKHR(const char* s, Json::Value& obj, VkSubmitFlagsKHR& o);
static void parse_VkInstance(const char* s, Json::Value& obj, VkInstance& o);
static void parse_VkPhysicalDevice(const char* s, Json::Value& obj, VkPhysicalDevice& o);
static void parse_VkDevice(const char* s, Json::Value& obj, VkDevice& o);
static void parse_VkQueue(const char* s, Json::Value& obj, VkQueue& o);
static void parse_VkCommandBuffer(const char* s, Json::Value& obj, VkCommandBuffer& o);
static void parse_VkDeviceMemory(const char* s, Json::Value& obj, VkDeviceMemory& o);
static void parse_VkCommandPool(const char* s, Json::Value& obj, VkCommandPool& o);
static void parse_VkBuffer(const char* s, Json::Value& obj, VkBuffer& o);
static void parse_VkBufferView(const char* s, Json::Value& obj, VkBufferView& o);
static void parse_VkImage(const char* s, Json::Value& obj, VkImage& o);
static void parse_VkImageView(const char* s, Json::Value& obj, VkImageView& o);
static void parse_VkShaderModule(const char* s, Json::Value& obj, VkShaderModule& o);
static void parse_VkPipeline(const char* s, Json::Value& obj, VkPipeline& o);
static void parse_VkPipelineLayout(const char* s, Json::Value& obj, VkPipelineLayout& o);
static void parse_VkSampler(const char* s, Json::Value& obj, VkSampler& o);
static void parse_VkDescriptorSet(const char* s, Json::Value& obj, VkDescriptorSet& o);
static void parse_VkDescriptorSetLayout(const char* s, Json::Value& obj, VkDescriptorSetLayout& o);
static void parse_VkDescriptorPool(const char* s, Json::Value& obj, VkDescriptorPool& o);
static void parse_VkFence(const char* s, Json::Value& obj, VkFence& o);
static void parse_VkSemaphore(const char* s, Json::Value& obj, VkSemaphore& o);
static void parse_VkEvent(const char* s, Json::Value& obj, VkEvent& o);
static void parse_VkQueryPool(const char* s, Json::Value& obj, VkQueryPool& o);
static void parse_VkFramebuffer(const char* s, Json::Value& obj, VkFramebuffer& o);
static void parse_VkRenderPass(const char* s, Json::Value& obj, VkRenderPass& o);
static void parse_VkPipelineCache(const char* s, Json::Value& obj, VkPipelineCache& o);
static void parse_VkSamplerYcbcrConversion(const char* s, Json::Value& obj, VkSamplerYcbcrConversion& o);
static void parse_VkDisplayKHR(const char* s, Json::Value& obj, VkDisplayKHR& o);
static void parse_VkDisplayModeKHR(const char* s, Json::Value& obj, VkDisplayModeKHR& o);
static void parse_VkSurfaceKHR(const char* s, Json::Value& obj, VkSurfaceKHR& o);
static void parse_VkSwapchainKHR(const char* s, Json::Value& obj, VkSwapchainKHR& o);
static void parse_VkDebugUtilsMessengerEXT(const char* s, Json::Value& obj, VkDebugUtilsMessengerEXT& o);
static void parse_VkSemaphoreSciSyncPoolNV(const char* s, Json::Value& obj, VkSemaphoreSciSyncPoolNV& o);
static void parse_VkAttachmentLoadOp(const char* s, Json::Value& obj, VkAttachmentLoadOp& o);
static void parse_VkAttachmentStoreOp(const char* s, Json::Value& obj, VkAttachmentStoreOp& o);
static void parse_VkBlendFactor(const char* s, Json::Value& obj, VkBlendFactor& o);
static void parse_VkBlendOp(const char* s, Json::Value& obj, VkBlendOp& o);
static void parse_VkBorderColor(const char* s, Json::Value& obj, VkBorderColor& o);
static void parse_VkFramebufferCreateFlagBits(const char* s, Json::Value& obj, VkFramebufferCreateFlagBits& o);
static void parse_VkRenderPassCreateFlagBits(const char* s, Json::Value& obj, VkRenderPassCreateFlagBits& o);
static void parse_VkSamplerCreateFlagBits(const char* s, Json::Value& obj, VkSamplerCreateFlagBits& o);
static void parse_VkPipelineCacheHeaderVersion(const char* s, Json::Value& obj, VkPipelineCacheHeaderVersion& o);
static void parse_VkPipelineCacheCreateFlagBits(const char* s, Json::Value& obj, VkPipelineCacheCreateFlagBits& o);
static void parse_VkPipelineShaderStageCreateFlagBits(const char* s, Json::Value& obj, VkPipelineShaderStageCreateFlagBits& o);
static void parse_VkDescriptorSetLayoutCreateFlagBits(const char* s, Json::Value& obj, VkDescriptorSetLayoutCreateFlagBits& o);
static void parse_VkDeviceQueueCreateFlagBits(const char* s, Json::Value& obj, VkDeviceQueueCreateFlagBits& o);
static void parse_VkBufferCreateFlagBits(const char* s, Json::Value& obj, VkBufferCreateFlagBits& o);
static void parse_VkBufferUsageFlagBits(const char* s, Json::Value& obj, VkBufferUsageFlagBits& o);
static void parse_VkColorComponentFlagBits(const char* s, Json::Value& obj, VkColorComponentFlagBits& o);
static void parse_VkComponentSwizzle(const char* s, Json::Value& obj, VkComponentSwizzle& o);
static void parse_VkCommandPoolCreateFlagBits(const char* s, Json::Value& obj, VkCommandPoolCreateFlagBits& o);
static void parse_VkCommandPoolResetFlagBits(const char* s, Json::Value& obj, VkCommandPoolResetFlagBits& o);
static void parse_VkCommandBufferResetFlagBits(const char* s, Json::Value& obj, VkCommandBufferResetFlagBits& o);
static void parse_VkCommandBufferLevel(const char* s, Json::Value& obj, VkCommandBufferLevel& o);
static void parse_VkCommandBufferUsageFlagBits(const char* s, Json::Value& obj, VkCommandBufferUsageFlagBits& o);
static void parse_VkCompareOp(const char* s, Json::Value& obj, VkCompareOp& o);
static void parse_VkCullModeFlagBits(const char* s, Json::Value& obj, VkCullModeFlagBits& o);
static void parse_VkDescriptorType(const char* s, Json::Value& obj, VkDescriptorType& o);
static void parse_VkDynamicState(const char* s, Json::Value& obj, VkDynamicState& o);
static void parse_VkFenceCreateFlagBits(const char* s, Json::Value& obj, VkFenceCreateFlagBits& o);
static void parse_VkPolygonMode(const char* s, Json::Value& obj, VkPolygonMode& o);
static void parse_VkFormat(const char* s, Json::Value& obj, VkFormat& o);
static void parse_VkFormatFeatureFlagBits(const char* s, Json::Value& obj, VkFormatFeatureFlagBits& o);
static void parse_VkFrontFace(const char* s, Json::Value& obj, VkFrontFace& o);
static void parse_VkImageAspectFlagBits(const char* s, Json::Value& obj, VkImageAspectFlagBits& o);
static void parse_VkImageCreateFlagBits(const char* s, Json::Value& obj, VkImageCreateFlagBits& o);
static void parse_VkImageLayout(const char* s, Json::Value& obj, VkImageLayout& o);
static void parse_VkImageTiling(const char* s, Json::Value& obj, VkImageTiling& o);
static void parse_VkImageType(const char* s, Json::Value& obj, VkImageType& o);
static void parse_VkImageUsageFlagBits(const char* s, Json::Value& obj, VkImageUsageFlagBits& o);
static void parse_VkImageViewCreateFlagBits(const char* s, Json::Value& obj, VkImageViewCreateFlagBits& o);
static void parse_VkImageViewType(const char* s, Json::Value& obj, VkImageViewType& o);
static void parse_VkSharingMode(const char* s, Json::Value& obj, VkSharingMode& o);
static void parse_VkIndexType(const char* s, Json::Value& obj, VkIndexType& o);
static void parse_VkLogicOp(const char* s, Json::Value& obj, VkLogicOp& o);
static void parse_VkMemoryHeapFlagBits(const char* s, Json::Value& obj, VkMemoryHeapFlagBits& o);
static void parse_VkAccessFlagBits(const char* s, Json::Value& obj, VkAccessFlagBits& o);
static void parse_VkMemoryPropertyFlagBits(const char* s, Json::Value& obj, VkMemoryPropertyFlagBits& o);
static void parse_VkPhysicalDeviceType(const char* s, Json::Value& obj, VkPhysicalDeviceType& o);
static void parse_VkPipelineBindPoint(const char* s, Json::Value& obj, VkPipelineBindPoint& o);
static void parse_VkPipelineCreateFlagBits(const char* s, Json::Value& obj, VkPipelineCreateFlagBits& o);
static void parse_VkPrimitiveTopology(const char* s, Json::Value& obj, VkPrimitiveTopology& o);
static void parse_VkQueryControlFlagBits(const char* s, Json::Value& obj, VkQueryControlFlagBits& o);
static void parse_VkQueryPipelineStatisticFlagBits(const char* s, Json::Value& obj, VkQueryPipelineStatisticFlagBits& o);
static void parse_VkQueryResultFlagBits(const char* s, Json::Value& obj, VkQueryResultFlagBits& o);
static void parse_VkQueryType(const char* s, Json::Value& obj, VkQueryType& o);
static void parse_VkQueueFlagBits(const char* s, Json::Value& obj, VkQueueFlagBits& o);
static void parse_VkSubpassContents(const char* s, Json::Value& obj, VkSubpassContents& o);
static void parse_VkResult(const char* s, Json::Value& obj, VkResult& o);
static void parse_VkShaderStageFlagBits(const char* s, Json::Value& obj, VkShaderStageFlagBits& o);
static void parse_VkStencilFaceFlagBits(const char* s, Json::Value& obj, VkStencilFaceFlagBits& o);
static void parse_VkStencilOp(const char* s, Json::Value& obj, VkStencilOp& o);
static void parse_VkStructureType(const char* s, Json::Value& obj, VkStructureType& o);
static void parse_VkSystemAllocationScope(const char* s, Json::Value& obj, VkSystemAllocationScope& o);
static void parse_VkInternalAllocationType(const char* s, Json::Value& obj, VkInternalAllocationType& o);
static void parse_VkSamplerAddressMode(const char* s, Json::Value& obj, VkSamplerAddressMode& o);
static void parse_VkFilter(const char* s, Json::Value& obj, VkFilter& o);
static void parse_VkSamplerMipmapMode(const char* s, Json::Value& obj, VkSamplerMipmapMode& o);
static void parse_VkVertexInputRate(const char* s, Json::Value& obj, VkVertexInputRate& o);
static void parse_VkPipelineStageFlagBits(const char* s, Json::Value& obj, VkPipelineStageFlagBits& o);
static void parse_VkSampleCountFlagBits(const char* s, Json::Value& obj, VkSampleCountFlagBits& o);
static void parse_VkAttachmentDescriptionFlagBits(const char* s, Json::Value& obj, VkAttachmentDescriptionFlagBits& o);
static void parse_VkDescriptorPoolCreateFlagBits(const char* s, Json::Value& obj, VkDescriptorPoolCreateFlagBits& o);
static void parse_VkDependencyFlagBits(const char* s, Json::Value& obj, VkDependencyFlagBits& o);
static void parse_VkObjectType(const char* s, Json::Value& obj, VkObjectType& o);
static void parse_VkEventCreateFlagBits(const char* s, Json::Value& obj, VkEventCreateFlagBits& o);
static void parse_VkDiscardRectangleModeEXT(const char* s, Json::Value& obj, VkDiscardRectangleModeEXT& o);
static void parse_VkSubpassDescriptionFlagBits(const char* s, Json::Value& obj, VkSubpassDescriptionFlagBits& o);
static void parse_VkPointClippingBehavior(const char* s, Json::Value& obj, VkPointClippingBehavior& o);
static void parse_VkQueueGlobalPriorityEXT(const char* s, Json::Value& obj, VkQueueGlobalPriorityEXT& o);
static void parse_VkTimeDomainEXT(const char* s, Json::Value& obj, VkTimeDomainEXT& o);
static void parse_VkConservativeRasterizationModeEXT(const char* s, Json::Value& obj, VkConservativeRasterizationModeEXT& o);
static void parse_VkResolveModeFlagBits(const char* s, Json::Value& obj, VkResolveModeFlagBits& o);
static void parse_VkDescriptorBindingFlagBits(const char* s, Json::Value& obj, VkDescriptorBindingFlagBits& o);
static void parse_VkSemaphoreType(const char* s, Json::Value& obj, VkSemaphoreType& o);
static void parse_VkPerformanceCounterScopeKHR(const char* s, Json::Value& obj, VkPerformanceCounterScopeKHR& o);
static void parse_VkPerformanceCounterUnitKHR(const char* s, Json::Value& obj, VkPerformanceCounterUnitKHR& o);
static void parse_VkPerformanceCounterStorageKHR(const char* s, Json::Value& obj, VkPerformanceCounterStorageKHR& o);
static void parse_VkPerformanceCounterDescriptionFlagBitsKHR(const char* s, Json::Value& obj, VkPerformanceCounterDescriptionFlagBitsKHR& o);
static void parse_VkAcquireProfilingLockFlagBitsKHR(const char* s, Json::Value& obj, VkAcquireProfilingLockFlagBitsKHR& o);
static void parse_VkSemaphoreWaitFlagBits(const char* s, Json::Value& obj, VkSemaphoreWaitFlagBits& o);
static void parse_VkLineRasterizationModeEXT(const char* s, Json::Value& obj, VkLineRasterizationModeEXT& o);
static void parse_VkRefreshObjectFlagBitsKHR(const char* s, Json::Value& obj, VkRefreshObjectFlagBitsKHR& o);
static void parse_VkFaultLevel(const char* s, Json::Value& obj, VkFaultLevel& o);
static void parse_VkFaultType(const char* s, Json::Value& obj, VkFaultType& o);
static void parse_VkFaultQueryBehavior(const char* s, Json::Value& obj, VkFaultQueryBehavior& o);
static void parse_VkPipelineMatchControl(const char* s, Json::Value& obj, VkPipelineMatchControl& o);
static void parse_VkAccessFlagBits2KHR(const char* s, Json::Value& obj, VkAccessFlagBits2KHR& o);
static void parse_VkPipelineStageFlagBits2KHR(const char* s, Json::Value& obj, VkPipelineStageFlagBits2KHR& o);
static void parse_VkSciSyncClientTypeNV(const char* s, Json::Value& obj, VkSciSyncClientTypeNV& o);
static void parse_VkSciSyncPrimitiveTypeNV(const char* s, Json::Value& obj, VkSciSyncPrimitiveTypeNV& o);
static void parse_VkPipelineCacheValidationVersion(const char* s, Json::Value& obj, VkPipelineCacheValidationVersion& o);
static void parse_VkColorSpaceKHR(const char* s, Json::Value& obj, VkColorSpaceKHR& o);
static void parse_VkCompositeAlphaFlagBitsKHR(const char* s, Json::Value& obj, VkCompositeAlphaFlagBitsKHR& o);
static void parse_VkDisplayPlaneAlphaFlagBitsKHR(const char* s, Json::Value& obj, VkDisplayPlaneAlphaFlagBitsKHR& o);
static void parse_VkPresentModeKHR(const char* s, Json::Value& obj, VkPresentModeKHR& o);
static void parse_VkSurfaceTransformFlagBitsKHR(const char* s, Json::Value& obj, VkSurfaceTransformFlagBitsKHR& o);
static void parse_VkValidationFeatureEnableEXT(const char* s, Json::Value& obj, VkValidationFeatureEnableEXT& o);
static void parse_VkValidationFeatureDisableEXT(const char* s, Json::Value& obj, VkValidationFeatureDisableEXT& o);
static void parse_VkExternalMemoryHandleTypeFlagBits(const char* s, Json::Value& obj, VkExternalMemoryHandleTypeFlagBits& o);
static void parse_VkExternalMemoryFeatureFlagBits(const char* s, Json::Value& obj, VkExternalMemoryFeatureFlagBits& o);
static void parse_VkExternalSemaphoreHandleTypeFlagBits(const char* s, Json::Value& obj, VkExternalSemaphoreHandleTypeFlagBits& o);
static void parse_VkExternalSemaphoreFeatureFlagBits(const char* s, Json::Value& obj, VkExternalSemaphoreFeatureFlagBits& o);
static void parse_VkSemaphoreImportFlagBits(const char* s, Json::Value& obj, VkSemaphoreImportFlagBits& o);
static void parse_VkExternalFenceHandleTypeFlagBits(const char* s, Json::Value& obj, VkExternalFenceHandleTypeFlagBits& o);
static void parse_VkExternalFenceFeatureFlagBits(const char* s, Json::Value& obj, VkExternalFenceFeatureFlagBits& o);
static void parse_VkFenceImportFlagBits(const char* s, Json::Value& obj, VkFenceImportFlagBits& o);
static void parse_VkSurfaceCounterFlagBitsEXT(const char* s, Json::Value& obj, VkSurfaceCounterFlagBitsEXT& o);
static void parse_VkDisplayPowerStateEXT(const char* s, Json::Value& obj, VkDisplayPowerStateEXT& o);
static void parse_VkDeviceEventTypeEXT(const char* s, Json::Value& obj, VkDeviceEventTypeEXT& o);
static void parse_VkDisplayEventTypeEXT(const char* s, Json::Value& obj, VkDisplayEventTypeEXT& o);
static void parse_VkPeerMemoryFeatureFlagBits(const char* s, Json::Value& obj, VkPeerMemoryFeatureFlagBits& o);
static void parse_VkMemoryAllocateFlagBits(const char* s, Json::Value& obj, VkMemoryAllocateFlagBits& o);
static void parse_VkDeviceGroupPresentModeFlagBitsKHR(const char* s, Json::Value& obj, VkDeviceGroupPresentModeFlagBitsKHR& o);
static void parse_VkSwapchainCreateFlagBitsKHR(const char* s, Json::Value& obj, VkSwapchainCreateFlagBitsKHR& o);
static void parse_VkSubgroupFeatureFlagBits(const char* s, Json::Value& obj, VkSubgroupFeatureFlagBits& o);
static void parse_VkTessellationDomainOrigin(const char* s, Json::Value& obj, VkTessellationDomainOrigin& o);
static void parse_VkSamplerYcbcrModelConversion(const char* s, Json::Value& obj, VkSamplerYcbcrModelConversion& o);
static void parse_VkSamplerYcbcrRange(const char* s, Json::Value& obj, VkSamplerYcbcrRange& o);
static void parse_VkChromaLocation(const char* s, Json::Value& obj, VkChromaLocation& o);
static void parse_VkSamplerReductionMode(const char* s, Json::Value& obj, VkSamplerReductionMode& o);
static void parse_VkBlendOverlapEXT(const char* s, Json::Value& obj, VkBlendOverlapEXT& o);
static void parse_VkDebugUtilsMessageSeverityFlagBitsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessageSeverityFlagBitsEXT& o);
static void parse_VkDebugUtilsMessageTypeFlagBitsEXT(const char* s, Json::Value& obj, VkDebugUtilsMessageTypeFlagBitsEXT& o);
static void parse_VkShaderFloatControlsIndependence(const char* s, Json::Value& obj, VkShaderFloatControlsIndependence& o);
static void parse_VkFragmentShadingRateCombinerOpKHR(const char* s, Json::Value& obj, VkFragmentShadingRateCombinerOpKHR& o);
static void parse_VkSubmitFlagBitsKHR(const char* s, Json::Value& obj, VkSubmitFlagBitsKHR& o);
static void parse_VkVendorId(const char* s, Json::Value& obj, VkVendorId& o);
static void parse_VkDriverId(const char* s, Json::Value& obj, VkDriverId& o);
static void parse_VkBaseOutStructure(const char* s, Json::Value& obj, VkBaseOutStructure& o);
static void parse_VkBaseInStructure(const char* s, Json::Value& obj, VkBaseInStructure& o);
static void parse_VkOffset2D(const char* s, Json::Value& obj, VkOffset2D& o);
static void parse_VkOffset3D(const char* s, Json::Value& obj, VkOffset3D& o);
static void parse_VkExtent2D(const char* s, Json::Value& obj, VkExtent2D& o);
static void parse_VkExtent3D(const char* s, Json::Value& obj, VkExtent3D& o);
static void parse_VkViewport(const char* s, Json::Value& obj, VkViewport& o);
static void parse_VkRect2D(const char* s, Json::Value& obj, VkRect2D& o);
static void parse_VkClearRect(const char* s, Json::Value& obj, VkClearRect& o);
static void parse_VkComponentMapping(const char* s, Json::Value& obj, VkComponentMapping& o);
static void parse_VkPhysicalDeviceProperties(const char* s, Json::Value& obj, VkPhysicalDeviceProperties& o);
static void parse_VkExtensionProperties(const char* s, Json::Value& obj, VkExtensionProperties& o);
static void parse_VkLayerProperties(const char* s, Json::Value& obj, VkLayerProperties& o);
static void parse_VkApplicationInfo(const char* s, Json::Value& obj, VkApplicationInfo& o);
static void parse_VkAllocationCallbacks(const char* s, Json::Value& obj, VkAllocationCallbacks& o);
static void parse_VkDeviceQueueCreateInfo(const char* s, Json::Value& obj, VkDeviceQueueCreateInfo& o);
static void parse_VkDeviceCreateInfo(const char* s, Json::Value& obj, VkDeviceCreateInfo& o);
static void parse_VkInstanceCreateInfo(const char* s, Json::Value& obj, VkInstanceCreateInfo& o);
static void parse_VkQueueFamilyProperties(const char* s, Json::Value& obj, VkQueueFamilyProperties& o);
static void parse_VkPhysicalDeviceMemoryProperties(const char* s, Json::Value& obj, VkPhysicalDeviceMemoryProperties& o);
static void parse_VkMemoryAllocateInfo(const char* s, Json::Value& obj, VkMemoryAllocateInfo& o);
static void parse_VkMemoryRequirements(const char* s, Json::Value& obj, VkMemoryRequirements& o);
static void parse_VkMemoryType(const char* s, Json::Value& obj, VkMemoryType& o);
static void parse_VkMemoryHeap(const char* s, Json::Value& obj, VkMemoryHeap& o);
static void parse_VkMappedMemoryRange(const char* s, Json::Value& obj, VkMappedMemoryRange& o);
static void parse_VkFormatProperties(const char* s, Json::Value& obj, VkFormatProperties& o);
static void parse_VkImageFormatProperties(const char* s, Json::Value& obj, VkImageFormatProperties& o);
static void parse_VkDescriptorBufferInfo(const char* s, Json::Value& obj, VkDescriptorBufferInfo& o);
static void parse_VkDescriptorImageInfo(const char* s, Json::Value& obj, VkDescriptorImageInfo& o);
static void parse_VkWriteDescriptorSet(const char* s, Json::Value& obj, VkWriteDescriptorSet& o);
static void parse_VkCopyDescriptorSet(const char* s, Json::Value& obj, VkCopyDescriptorSet& o);
static void parse_VkBufferCreateInfo(const char* s, Json::Value& obj, VkBufferCreateInfo& o);
static void parse_VkBufferViewCreateInfo(const char* s, Json::Value& obj, VkBufferViewCreateInfo& o);
static void parse_VkImageSubresource(const char* s, Json::Value& obj, VkImageSubresource& o);
static void parse_VkImageSubresourceLayers(const char* s, Json::Value& obj, VkImageSubresourceLayers& o);
static void parse_VkImageSubresourceRange(const char* s, Json::Value& obj, VkImageSubresourceRange& o);
static void parse_VkMemoryBarrier(const char* s, Json::Value& obj, VkMemoryBarrier& o);
static void parse_VkBufferMemoryBarrier(const char* s, Json::Value& obj, VkBufferMemoryBarrier& o);
static void parse_VkImageMemoryBarrier(const char* s, Json::Value& obj, VkImageMemoryBarrier& o);
static void parse_VkImageCreateInfo(const char* s, Json::Value& obj, VkImageCreateInfo& o);
static void parse_VkSubresourceLayout(const char* s, Json::Value& obj, VkSubresourceLayout& o);
static void parse_VkImageViewCreateInfo(const char* s, Json::Value& obj, VkImageViewCreateInfo& o);
static void parse_VkBufferCopy(const char* s, Json::Value& obj, VkBufferCopy& o);
static void parse_VkImageCopy(const char* s, Json::Value& obj, VkImageCopy& o);
static void parse_VkImageBlit(const char* s, Json::Value& obj, VkImageBlit& o);
static void parse_VkBufferImageCopy(const char* s, Json::Value& obj, VkBufferImageCopy& o);
static void parse_VkImageResolve(const char* s, Json::Value& obj, VkImageResolve& o);
static void parse_VkDescriptorSetLayoutBinding(const char* s, Json::Value& obj, VkDescriptorSetLayoutBinding& o);
static void parse_VkDescriptorSetLayoutCreateInfo(const char* s, Json::Value& obj, VkDescriptorSetLayoutCreateInfo& o);
static void parse_VkDescriptorPoolSize(const char* s, Json::Value& obj, VkDescriptorPoolSize& o);
static void parse_VkDescriptorPoolCreateInfo(const char* s, Json::Value& obj, VkDescriptorPoolCreateInfo& o);
static void parse_VkDescriptorSetAllocateInfo(const char* s, Json::Value& obj, VkDescriptorSetAllocateInfo& o);
static void parse_VkSpecializationMapEntry(const char* s, Json::Value& obj, VkSpecializationMapEntry& o);
static void parse_VkSpecializationInfo(const char* s, Json::Value& obj, VkSpecializationInfo& o);
static void parse_VkPipelineShaderStageCreateInfo(const char* s, Json::Value& obj, VkPipelineShaderStageCreateInfo& o);
static void parse_VkComputePipelineCreateInfo(const char* s, Json::Value& obj, VkComputePipelineCreateInfo& o);
static void parse_VkVertexInputBindingDescription(const char* s, Json::Value& obj, VkVertexInputBindingDescription& o);
static void parse_VkVertexInputAttributeDescription(const char* s, Json::Value& obj, VkVertexInputAttributeDescription& o);
static void parse_VkPipelineVertexInputStateCreateInfo(const char* s, Json::Value& obj, VkPipelineVertexInputStateCreateInfo& o);
static void parse_VkPipelineInputAssemblyStateCreateInfo(const char* s, Json::Value& obj, VkPipelineInputAssemblyStateCreateInfo& o);
static void parse_VkPipelineTessellationStateCreateInfo(const char* s, Json::Value& obj, VkPipelineTessellationStateCreateInfo& o);
static void parse_VkPipelineViewportStateCreateInfo(const char* s, Json::Value& obj, VkPipelineViewportStateCreateInfo& o);
static void parse_VkPipelineRasterizationStateCreateInfo(const char* s, Json::Value& obj, VkPipelineRasterizationStateCreateInfo& o);
static void parse_VkPipelineMultisampleStateCreateInfo(const char* s, Json::Value& obj, VkPipelineMultisampleStateCreateInfo& o);
static void parse_VkPipelineColorBlendAttachmentState(const char* s, Json::Value& obj, VkPipelineColorBlendAttachmentState& o);
static void parse_VkPipelineColorBlendStateCreateInfo(const char* s, Json::Value& obj, VkPipelineColorBlendStateCreateInfo& o);
static void parse_VkPipelineDynamicStateCreateInfo(const char* s, Json::Value& obj, VkPipelineDynamicStateCreateInfo& o);
static void parse_VkStencilOpState(const char* s, Json::Value& obj, VkStencilOpState& o);
static void parse_VkPipelineDepthStencilStateCreateInfo(const char* s, Json::Value& obj, VkPipelineDepthStencilStateCreateInfo& o);
static void parse_VkGraphicsPipelineCreateInfo(const char* s, Json::Value& obj, VkGraphicsPipelineCreateInfo& o);
static void parse_VkPipelineCacheCreateInfo(const char* s, Json::Value& obj, VkPipelineCacheCreateInfo& o);
static void parse_VkPipelineCacheHeaderVersionOne(const char* s, Json::Value& obj, VkPipelineCacheHeaderVersionOne& o);
static void parse_VkPipelineCacheStageValidationIndexEntry(const char* s, Json::Value& obj, VkPipelineCacheStageValidationIndexEntry& o);
static void parse_VkPipelineCacheSafetyCriticalIndexEntry(const char* s, Json::Value& obj, VkPipelineCacheSafetyCriticalIndexEntry& o);
static void parse_VkPipelineCacheHeaderVersionSafetyCriticalOne(const char* s, Json::Value& obj, VkPipelineCacheHeaderVersionSafetyCriticalOne& o);
static void parse_VkPushConstantRange(const char* s, Json::Value& obj, VkPushConstantRange& o);
static void parse_VkPipelineLayoutCreateInfo(const char* s, Json::Value& obj, VkPipelineLayoutCreateInfo& o);
static void parse_VkSamplerCreateInfo(const char* s, Json::Value& obj, VkSamplerCreateInfo& o);
static void parse_VkCommandPoolCreateInfo(const char* s, Json::Value& obj, VkCommandPoolCreateInfo& o);
static void parse_VkCommandBufferAllocateInfo(const char* s, Json::Value& obj, VkCommandBufferAllocateInfo& o);
static void parse_VkCommandBufferInheritanceInfo(const char* s, Json::Value& obj, VkCommandBufferInheritanceInfo& o);
static void parse_VkCommandBufferBeginInfo(const char* s, Json::Value& obj, VkCommandBufferBeginInfo& o);
static void parse_VkRenderPassBeginInfo(const char* s, Json::Value& obj, VkRenderPassBeginInfo& o);
static void parse_VkClearDepthStencilValue(const char* s, Json::Value& obj, VkClearDepthStencilValue& o);
static void parse_VkClearAttachment(const char* s, Json::Value& obj, VkClearAttachment& o);
static void parse_VkAttachmentDescription(const char* s, Json::Value& obj, VkAttachmentDescription& o);
static void parse_VkAttachmentReference(const char* s, Json::Value& obj, VkAttachmentReference& o);
static void parse_VkSubpassDescription(const char* s, Json::Value& obj, VkSubpassDescription& o);
static void parse_VkSubpassDependency(const char* s, Json::Value& obj, VkSubpassDependency& o);
static void parse_VkRenderPassCreateInfo(const char* s, Json::Value& obj, VkRenderPassCreateInfo& o);
static void parse_VkEventCreateInfo(const char* s, Json::Value& obj, VkEventCreateInfo& o);
static void parse_VkFenceCreateInfo(const char* s, Json::Value& obj, VkFenceCreateInfo& o);
static void parse_VkPhysicalDeviceFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceFeatures& o);
static void parse_VkPhysicalDeviceSparseProperties(const char* s, Json::Value& obj, VkPhysicalDeviceSparseProperties& o);
static void parse_VkPhysicalDeviceLimits(const char* s, Json::Value& obj, VkPhysicalDeviceLimits& o);
static void parse_VkSemaphoreCreateInfo(const char* s, Json::Value& obj, VkSemaphoreCreateInfo& o);
static void parse_VkQueryPoolCreateInfo(const char* s, Json::Value& obj, VkQueryPoolCreateInfo& o);
static void parse_VkFramebufferCreateInfo(const char* s, Json::Value& obj, VkFramebufferCreateInfo& o);
static void parse_VkDrawIndirectCommand(const char* s, Json::Value& obj, VkDrawIndirectCommand& o);
static void parse_VkDrawIndexedIndirectCommand(const char* s, Json::Value& obj, VkDrawIndexedIndirectCommand& o);
static void parse_VkDispatchIndirectCommand(const char* s, Json::Value& obj, VkDispatchIndirectCommand& o);
static void parse_VkSubmitInfo(const char* s, Json::Value& obj, VkSubmitInfo& o);
static void parse_VkDisplayPropertiesKHR(const char* s, Json::Value& obj, VkDisplayPropertiesKHR& o);
static void parse_VkDisplayPlanePropertiesKHR(const char* s, Json::Value& obj, VkDisplayPlanePropertiesKHR& o);
static void parse_VkDisplayModeParametersKHR(const char* s, Json::Value& obj, VkDisplayModeParametersKHR& o);
static void parse_VkDisplayModePropertiesKHR(const char* s, Json::Value& obj, VkDisplayModePropertiesKHR& o);
static void parse_VkDisplayModeCreateInfoKHR(const char* s, Json::Value& obj, VkDisplayModeCreateInfoKHR& o);
static void parse_VkDisplayPlaneCapabilitiesKHR(const char* s, Json::Value& obj, VkDisplayPlaneCapabilitiesKHR& o);
static void parse_VkDisplaySurfaceCreateInfoKHR(const char* s, Json::Value& obj, VkDisplaySurfaceCreateInfoKHR& o);
static void parse_VkDisplayPresentInfoKHR(const char* s, Json::Value& obj, VkDisplayPresentInfoKHR& o);
static void parse_VkSurfaceCapabilitiesKHR(const char* s, Json::Value& obj, VkSurfaceCapabilitiesKHR& o);
static void parse_VkSurfaceFormatKHR(const char* s, Json::Value& obj, VkSurfaceFormatKHR& o);
static void parse_VkSwapchainCreateInfoKHR(const char* s, Json::Value& obj, VkSwapchainCreateInfoKHR& o);
static void parse_VkPresentInfoKHR(const char* s, Json::Value& obj, VkPresentInfoKHR& o);
static void parse_VkValidationFeaturesEXT(const char* s, Json::Value& obj, VkValidationFeaturesEXT& o);
static void parse_VkApplicationParametersEXT(const char* s, Json::Value& obj, VkApplicationParametersEXT& o);
static void parse_VkExportMemorySciBufInfoNV(const char* s, Json::Value& obj, VkExportMemorySciBufInfoNV& o);
static void parse_VkImportMemorySciBufInfoNV(const char* s, Json::Value& obj, VkImportMemorySciBufInfoNV& o);
static void parse_VkMemoryGetSciBufInfoNV(const char* s, Json::Value& obj, VkMemoryGetSciBufInfoNV& o);
static void parse_VkMemorySciBufPropertiesNV(const char* s, Json::Value& obj, VkMemorySciBufPropertiesNV& o);
static void parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV(const char* s, Json::Value& obj, VkPhysicalDeviceExternalMemorySciBufFeaturesNV& o);
static void parse_VkPhysicalDeviceExternalSciBufFeaturesNV(const char* s, Json::Value& obj, VkPhysicalDeviceExternalSciBufFeaturesNV& o);
static void parse_VkPhysicalDeviceFeatures2(const char* s, Json::Value& obj, VkPhysicalDeviceFeatures2& o);
static void parse_VkPhysicalDeviceProperties2(const char* s, Json::Value& obj, VkPhysicalDeviceProperties2& o);
static void parse_VkFormatProperties2(const char* s, Json::Value& obj, VkFormatProperties2& o);
static void parse_VkImageFormatProperties2(const char* s, Json::Value& obj, VkImageFormatProperties2& o);
static void parse_VkPhysicalDeviceImageFormatInfo2(const char* s, Json::Value& obj, VkPhysicalDeviceImageFormatInfo2& o);
static void parse_VkQueueFamilyProperties2(const char* s, Json::Value& obj, VkQueueFamilyProperties2& o);
static void parse_VkPhysicalDeviceMemoryProperties2(const char* s, Json::Value& obj, VkPhysicalDeviceMemoryProperties2& o);
static void parse_VkConformanceVersion(const char* s, Json::Value& obj, VkConformanceVersion& o);
static void parse_VkPhysicalDeviceDriverProperties(const char* s, Json::Value& obj, VkPhysicalDeviceDriverProperties& o);
static void parse_VkPresentRegionsKHR(const char* s, Json::Value& obj, VkPresentRegionsKHR& o);
static void parse_VkPresentRegionKHR(const char* s, Json::Value& obj, VkPresentRegionKHR& o);
static void parse_VkRectLayerKHR(const char* s, Json::Value& obj, VkRectLayerKHR& o);
static void parse_VkPhysicalDeviceVariablePointersFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceVariablePointersFeatures& o);
static void parse_VkPhysicalDeviceVariablePointerFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceVariablePointerFeatures& o);
static void parse_VkExternalMemoryProperties(const char* s, Json::Value& obj, VkExternalMemoryProperties& o);
static void parse_VkPhysicalDeviceExternalImageFormatInfo(const char* s, Json::Value& obj, VkPhysicalDeviceExternalImageFormatInfo& o);
static void parse_VkExternalImageFormatProperties(const char* s, Json::Value& obj, VkExternalImageFormatProperties& o);
static void parse_VkPhysicalDeviceExternalBufferInfo(const char* s, Json::Value& obj, VkPhysicalDeviceExternalBufferInfo& o);
static void parse_VkExternalBufferProperties(const char* s, Json::Value& obj, VkExternalBufferProperties& o);
static void parse_VkPhysicalDeviceIDProperties(const char* s, Json::Value& obj, VkPhysicalDeviceIDProperties& o);
static void parse_VkExternalMemoryImageCreateInfo(const char* s, Json::Value& obj, VkExternalMemoryImageCreateInfo& o);
static void parse_VkExternalMemoryBufferCreateInfo(const char* s, Json::Value& obj, VkExternalMemoryBufferCreateInfo& o);
static void parse_VkExportMemoryAllocateInfo(const char* s, Json::Value& obj, VkExportMemoryAllocateInfo& o);
static void parse_VkImportMemoryFdInfoKHR(const char* s, Json::Value& obj, VkImportMemoryFdInfoKHR& o);
static void parse_VkMemoryFdPropertiesKHR(const char* s, Json::Value& obj, VkMemoryFdPropertiesKHR& o);
static void parse_VkMemoryGetFdInfoKHR(const char* s, Json::Value& obj, VkMemoryGetFdInfoKHR& o);
static void parse_VkPhysicalDeviceExternalSemaphoreInfo(const char* s, Json::Value& obj, VkPhysicalDeviceExternalSemaphoreInfo& o);
static void parse_VkExternalSemaphoreProperties(const char* s, Json::Value& obj, VkExternalSemaphoreProperties& o);
static void parse_VkExportSemaphoreCreateInfo(const char* s, Json::Value& obj, VkExportSemaphoreCreateInfo& o);
static void parse_VkImportSemaphoreFdInfoKHR(const char* s, Json::Value& obj, VkImportSemaphoreFdInfoKHR& o);
static void parse_VkSemaphoreGetFdInfoKHR(const char* s, Json::Value& obj, VkSemaphoreGetFdInfoKHR& o);
static void parse_VkPhysicalDeviceExternalFenceInfo(const char* s, Json::Value& obj, VkPhysicalDeviceExternalFenceInfo& o);
static void parse_VkExternalFenceProperties(const char* s, Json::Value& obj, VkExternalFenceProperties& o);
static void parse_VkExportFenceCreateInfo(const char* s, Json::Value& obj, VkExportFenceCreateInfo& o);
static void parse_VkImportFenceFdInfoKHR(const char* s, Json::Value& obj, VkImportFenceFdInfoKHR& o);
static void parse_VkFenceGetFdInfoKHR(const char* s, Json::Value& obj, VkFenceGetFdInfoKHR& o);
static void parse_VkExportFenceSciSyncInfoNV(const char* s, Json::Value& obj, VkExportFenceSciSyncInfoNV& o);
static void parse_VkImportFenceSciSyncInfoNV(const char* s, Json::Value& obj, VkImportFenceSciSyncInfoNV& o);
static void parse_VkFenceGetSciSyncInfoNV(const char* s, Json::Value& obj, VkFenceGetSciSyncInfoNV& o);
static void parse_VkExportSemaphoreSciSyncInfoNV(const char* s, Json::Value& obj, VkExportSemaphoreSciSyncInfoNV& o);
static void parse_VkImportSemaphoreSciSyncInfoNV(const char* s, Json::Value& obj, VkImportSemaphoreSciSyncInfoNV& o);
static void parse_VkSemaphoreGetSciSyncInfoNV(const char* s, Json::Value& obj, VkSemaphoreGetSciSyncInfoNV& o);
static void parse_VkSciSyncAttributesInfoNV(const char* s, Json::Value& obj, VkSciSyncAttributesInfoNV& o);
static void parse_VkPhysicalDeviceExternalSciSyncFeaturesNV(const char* s, Json::Value& obj, VkPhysicalDeviceExternalSciSyncFeaturesNV& o);
static void parse_VkPhysicalDeviceExternalSciSync2FeaturesNV(const char* s, Json::Value& obj, VkPhysicalDeviceExternalSciSync2FeaturesNV& o);
static void parse_VkSemaphoreSciSyncPoolCreateInfoNV(const char* s, Json::Value& obj, VkSemaphoreSciSyncPoolCreateInfoNV& o);
static void parse_VkSemaphoreSciSyncCreateInfoNV(const char* s, Json::Value& obj, VkSemaphoreSciSyncCreateInfoNV& o);
static void parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV(const char* s, Json::Value& obj, VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV& o);
static void parse_VkPhysicalDeviceMultiviewFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceMultiviewFeatures& o);
static void parse_VkPhysicalDeviceMultiviewProperties(const char* s, Json::Value& obj, VkPhysicalDeviceMultiviewProperties& o);
static void parse_VkRenderPassMultiviewCreateInfo(const char* s, Json::Value& obj, VkRenderPassMultiviewCreateInfo& o);
static void parse_VkSurfaceCapabilities2EXT(const char* s, Json::Value& obj, VkSurfaceCapabilities2EXT& o);
static void parse_VkDisplayPowerInfoEXT(const char* s, Json::Value& obj, VkDisplayPowerInfoEXT& o);
static void parse_VkDeviceEventInfoEXT(const char* s, Json::Value& obj, VkDeviceEventInfoEXT& o);
static void parse_VkDisplayEventInfoEXT(const char* s, Json::Value& obj, VkDisplayEventInfoEXT& o);
static void parse_VkSwapchainCounterCreateInfoEXT(const char* s, Json::Value& obj, VkSwapchainCounterCreateInfoEXT& o);
static void parse_VkPhysicalDeviceGroupProperties(const char* s, Json::Value& obj, VkPhysicalDeviceGroupProperties& o);
static void parse_VkMemoryAllocateFlagsInfo(const char* s, Json::Value& obj, VkMemoryAllocateFlagsInfo& o);
static void parse_VkBindBufferMemoryInfo(const char* s, Json::Value& obj, VkBindBufferMemoryInfo& o);
static void parse_VkBindBufferMemoryDeviceGroupInfo(const char* s, Json::Value& obj, VkBindBufferMemoryDeviceGroupInfo& o);
static void parse_VkBindImageMemoryInfo(const char* s, Json::Value& obj, VkBindImageMemoryInfo& o);
static void parse_VkBindImageMemoryDeviceGroupInfo(const char* s, Json::Value& obj, VkBindImageMemoryDeviceGroupInfo& o);
static void parse_VkDeviceGroupRenderPassBeginInfo(const char* s, Json::Value& obj, VkDeviceGroupRenderPassBeginInfo& o);
static void parse_VkDeviceGroupCommandBufferBeginInfo(const char* s, Json::Value& obj, VkDeviceGroupCommandBufferBeginInfo& o);
static void parse_VkDeviceGroupSubmitInfo(const char* s, Json::Value& obj, VkDeviceGroupSubmitInfo& o);
static void parse_VkDeviceGroupPresentCapabilitiesKHR(const char* s, Json::Value& obj, VkDeviceGroupPresentCapabilitiesKHR& o);
static void parse_VkImageSwapchainCreateInfoKHR(const char* s, Json::Value& obj, VkImageSwapchainCreateInfoKHR& o);
static void parse_VkBindImageMemorySwapchainInfoKHR(const char* s, Json::Value& obj, VkBindImageMemorySwapchainInfoKHR& o);
static void parse_VkAcquireNextImageInfoKHR(const char* s, Json::Value& obj, VkAcquireNextImageInfoKHR& o);
static void parse_VkDeviceGroupPresentInfoKHR(const char* s, Json::Value& obj, VkDeviceGroupPresentInfoKHR& o);
static void parse_VkDeviceGroupDeviceCreateInfo(const char* s, Json::Value& obj, VkDeviceGroupDeviceCreateInfo& o);
static void parse_VkDeviceGroupSwapchainCreateInfoKHR(const char* s, Json::Value& obj, VkDeviceGroupSwapchainCreateInfoKHR& o);
static void parse_VkXYColorEXT(const char* s, Json::Value& obj, VkXYColorEXT& o);
static void parse_VkHdrMetadataEXT(const char* s, Json::Value& obj, VkHdrMetadataEXT& o);
static void parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceDiscardRectanglePropertiesEXT& o);
static void parse_VkPipelineDiscardRectangleStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineDiscardRectangleStateCreateInfoEXT& o);
static void parse_VkInputAttachmentAspectReference(const char* s, Json::Value& obj, VkInputAttachmentAspectReference& o);
static void parse_VkRenderPassInputAttachmentAspectCreateInfo(const char* s, Json::Value& obj, VkRenderPassInputAttachmentAspectCreateInfo& o);
static void parse_VkPhysicalDeviceSurfaceInfo2KHR(const char* s, Json::Value& obj, VkPhysicalDeviceSurfaceInfo2KHR& o);
static void parse_VkSurfaceCapabilities2KHR(const char* s, Json::Value& obj, VkSurfaceCapabilities2KHR& o);
static void parse_VkSurfaceFormat2KHR(const char* s, Json::Value& obj, VkSurfaceFormat2KHR& o);
static void parse_VkDisplayProperties2KHR(const char* s, Json::Value& obj, VkDisplayProperties2KHR& o);
static void parse_VkDisplayPlaneProperties2KHR(const char* s, Json::Value& obj, VkDisplayPlaneProperties2KHR& o);
static void parse_VkDisplayModeProperties2KHR(const char* s, Json::Value& obj, VkDisplayModeProperties2KHR& o);
static void parse_VkDisplayPlaneInfo2KHR(const char* s, Json::Value& obj, VkDisplayPlaneInfo2KHR& o);
static void parse_VkDisplayPlaneCapabilities2KHR(const char* s, Json::Value& obj, VkDisplayPlaneCapabilities2KHR& o);
static void parse_VkSharedPresentSurfaceCapabilitiesKHR(const char* s, Json::Value& obj, VkSharedPresentSurfaceCapabilitiesKHR& o);
static void parse_VkPhysicalDevice16BitStorageFeatures(const char* s, Json::Value& obj, VkPhysicalDevice16BitStorageFeatures& o);
static void parse_VkPhysicalDeviceSubgroupProperties(const char* s, Json::Value& obj, VkPhysicalDeviceSubgroupProperties& o);
static void parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& o);
static void parse_VkBufferMemoryRequirementsInfo2(const char* s, Json::Value& obj, VkBufferMemoryRequirementsInfo2& o);
static void parse_VkImageMemoryRequirementsInfo2(const char* s, Json::Value& obj, VkImageMemoryRequirementsInfo2& o);
static void parse_VkMemoryRequirements2(const char* s, Json::Value& obj, VkMemoryRequirements2& o);
static void parse_VkPhysicalDevicePointClippingProperties(const char* s, Json::Value& obj, VkPhysicalDevicePointClippingProperties& o);
static void parse_VkMemoryDedicatedRequirements(const char* s, Json::Value& obj, VkMemoryDedicatedRequirements& o);
static void parse_VkMemoryDedicatedAllocateInfo(const char* s, Json::Value& obj, VkMemoryDedicatedAllocateInfo& o);
static void parse_VkImageViewUsageCreateInfo(const char* s, Json::Value& obj, VkImageViewUsageCreateInfo& o);
static void parse_VkPipelineTessellationDomainOriginStateCreateInfo(const char* s, Json::Value& obj, VkPipelineTessellationDomainOriginStateCreateInfo& o);
static void parse_VkSamplerYcbcrConversionInfo(const char* s, Json::Value& obj, VkSamplerYcbcrConversionInfo& o);
static void parse_VkSamplerYcbcrConversionCreateInfo(const char* s, Json::Value& obj, VkSamplerYcbcrConversionCreateInfo& o);
static void parse_VkBindImagePlaneMemoryInfo(const char* s, Json::Value& obj, VkBindImagePlaneMemoryInfo& o);
static void parse_VkImagePlaneMemoryRequirementsInfo(const char* s, Json::Value& obj, VkImagePlaneMemoryRequirementsInfo& o);
static void parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceSamplerYcbcrConversionFeatures& o);
static void parse_VkSamplerYcbcrConversionImageFormatProperties(const char* s, Json::Value& obj, VkSamplerYcbcrConversionImageFormatProperties& o);
static void parse_VkProtectedSubmitInfo(const char* s, Json::Value& obj, VkProtectedSubmitInfo& o);
static void parse_VkPhysicalDeviceProtectedMemoryFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceProtectedMemoryFeatures& o);
static void parse_VkPhysicalDeviceProtectedMemoryProperties(const char* s, Json::Value& obj, VkPhysicalDeviceProtectedMemoryProperties& o);
static void parse_VkDeviceQueueInfo2(const char* s, Json::Value& obj, VkDeviceQueueInfo2& o);
static void parse_VkPhysicalDeviceSamplerFilterMinmaxProperties(const char* s, Json::Value& obj, VkPhysicalDeviceSamplerFilterMinmaxProperties& o);
static void parse_VkSampleLocationEXT(const char* s, Json::Value& obj, VkSampleLocationEXT& o);
static void parse_VkSampleLocationsInfoEXT(const char* s, Json::Value& obj, VkSampleLocationsInfoEXT& o);
static void parse_VkAttachmentSampleLocationsEXT(const char* s, Json::Value& obj, VkAttachmentSampleLocationsEXT& o);
static void parse_VkSubpassSampleLocationsEXT(const char* s, Json::Value& obj, VkSubpassSampleLocationsEXT& o);
static void parse_VkRenderPassSampleLocationsBeginInfoEXT(const char* s, Json::Value& obj, VkRenderPassSampleLocationsBeginInfoEXT& o);
static void parse_VkPipelineSampleLocationsStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineSampleLocationsStateCreateInfoEXT& o);
static void parse_VkPhysicalDeviceSampleLocationsPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceSampleLocationsPropertiesEXT& o);
static void parse_VkMultisamplePropertiesEXT(const char* s, Json::Value& obj, VkMultisamplePropertiesEXT& o);
static void parse_VkSamplerReductionModeCreateInfo(const char* s, Json::Value& obj, VkSamplerReductionModeCreateInfo& o);
static void parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& o);
static void parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& o);
static void parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineColorBlendAdvancedStateCreateInfoEXT& o);
static void parse_VkImageFormatListCreateInfo(const char* s, Json::Value& obj, VkImageFormatListCreateInfo& o);
static void parse_VkPhysicalDeviceMaintenance3Properties(const char* s, Json::Value& obj, VkPhysicalDeviceMaintenance3Properties& o);
static void parse_VkDescriptorSetLayoutSupport(const char* s, Json::Value& obj, VkDescriptorSetLayoutSupport& o);
static void parse_VkPhysicalDeviceShaderDrawParametersFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceShaderDrawParametersFeatures& o);
static void parse_VkPhysicalDeviceShaderDrawParameterFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceShaderDrawParameterFeatures& o);
static void parse_VkPhysicalDeviceShaderFloat16Int8Features(const char* s, Json::Value& obj, VkPhysicalDeviceShaderFloat16Int8Features& o);
static void parse_VkPhysicalDeviceFloatControlsProperties(const char* s, Json::Value& obj, VkPhysicalDeviceFloatControlsProperties& o);
static void parse_VkPhysicalDeviceHostQueryResetFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceHostQueryResetFeatures& o);
static void parse_VkDeviceQueueGlobalPriorityCreateInfoEXT(const char* s, Json::Value& obj, VkDeviceQueueGlobalPriorityCreateInfoEXT& o);
static void parse_VkDebugUtilsObjectNameInfoEXT(const char* s, Json::Value& obj, VkDebugUtilsObjectNameInfoEXT& o);
static void parse_VkDebugUtilsObjectTagInfoEXT(const char* s, Json::Value& obj, VkDebugUtilsObjectTagInfoEXT& o);
static void parse_VkDebugUtilsLabelEXT(const char* s, Json::Value& obj, VkDebugUtilsLabelEXT& o);
static void parse_VkDebugUtilsMessengerCreateInfoEXT(const char* s, Json::Value& obj, VkDebugUtilsMessengerCreateInfoEXT& o);
static void parse_VkDebugUtilsMessengerCallbackDataEXT(const char* s, Json::Value& obj, VkDebugUtilsMessengerCallbackDataEXT& o);
static void parse_VkImportMemoryHostPointerInfoEXT(const char* s, Json::Value& obj, VkImportMemoryHostPointerInfoEXT& o);
static void parse_VkMemoryHostPointerPropertiesEXT(const char* s, Json::Value& obj, VkMemoryHostPointerPropertiesEXT& o);
static void parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceExternalMemoryHostPropertiesEXT& o);
static void parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceConservativeRasterizationPropertiesEXT& o);
static void parse_VkCalibratedTimestampInfoEXT(const char* s, Json::Value& obj, VkCalibratedTimestampInfoEXT& o);
static void parse_VkPipelineRasterizationConservativeStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineRasterizationConservativeStateCreateInfoEXT& o);
static void parse_VkPhysicalDeviceDescriptorIndexingFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceDescriptorIndexingFeatures& o);
static void parse_VkPhysicalDeviceDescriptorIndexingProperties(const char* s, Json::Value& obj, VkPhysicalDeviceDescriptorIndexingProperties& o);
static void parse_VkDescriptorSetLayoutBindingFlagsCreateInfo(const char* s, Json::Value& obj, VkDescriptorSetLayoutBindingFlagsCreateInfo& o);
static void parse_VkDescriptorSetVariableDescriptorCountAllocateInfo(const char* s, Json::Value& obj, VkDescriptorSetVariableDescriptorCountAllocateInfo& o);
static void parse_VkDescriptorSetVariableDescriptorCountLayoutSupport(const char* s, Json::Value& obj, VkDescriptorSetVariableDescriptorCountLayoutSupport& o);
static void parse_VkAttachmentDescription2(const char* s, Json::Value& obj, VkAttachmentDescription2& o);
static void parse_VkAttachmentReference2(const char* s, Json::Value& obj, VkAttachmentReference2& o);
static void parse_VkSubpassDescription2(const char* s, Json::Value& obj, VkSubpassDescription2& o);
static void parse_VkSubpassDependency2(const char* s, Json::Value& obj, VkSubpassDependency2& o);
static void parse_VkRenderPassCreateInfo2(const char* s, Json::Value& obj, VkRenderPassCreateInfo2& o);
static void parse_VkSubpassBeginInfo(const char* s, Json::Value& obj, VkSubpassBeginInfo& o);
static void parse_VkSubpassEndInfo(const char* s, Json::Value& obj, VkSubpassEndInfo& o);
static void parse_VkPhysicalDeviceTimelineSemaphoreFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceTimelineSemaphoreFeatures& o);
static void parse_VkPhysicalDeviceTimelineSemaphoreProperties(const char* s, Json::Value& obj, VkPhysicalDeviceTimelineSemaphoreProperties& o);
static void parse_VkSemaphoreTypeCreateInfo(const char* s, Json::Value& obj, VkSemaphoreTypeCreateInfo& o);
static void parse_VkTimelineSemaphoreSubmitInfo(const char* s, Json::Value& obj, VkTimelineSemaphoreSubmitInfo& o);
static void parse_VkSemaphoreWaitInfo(const char* s, Json::Value& obj, VkSemaphoreWaitInfo& o);
static void parse_VkSemaphoreSignalInfo(const char* s, Json::Value& obj, VkSemaphoreSignalInfo& o);
static void parse_VkVertexInputBindingDivisorDescriptionEXT(const char* s, Json::Value& obj, VkVertexInputBindingDivisorDescriptionEXT& o);
static void parse_VkPipelineVertexInputDivisorStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineVertexInputDivisorStateCreateInfoEXT& o);
static void parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& o);
static void parse_VkPhysicalDevicePCIBusInfoPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDevicePCIBusInfoPropertiesEXT& o);
static void parse_VkPhysicalDevice8BitStorageFeatures(const char* s, Json::Value& obj, VkPhysicalDevice8BitStorageFeatures& o);
static void parse_VkPhysicalDeviceVulkanMemoryModelFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceVulkanMemoryModelFeatures& o);
static void parse_VkPhysicalDeviceShaderAtomicInt64Features(const char* s, Json::Value& obj, VkPhysicalDeviceShaderAtomicInt64Features& o);
static void parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& o);
static void parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& o);
static void parse_VkPhysicalDeviceDepthStencilResolveProperties(const char* s, Json::Value& obj, VkPhysicalDeviceDepthStencilResolveProperties& o);
static void parse_VkSubpassDescriptionDepthStencilResolve(const char* s, Json::Value& obj, VkSubpassDescriptionDepthStencilResolve& o);
static void parse_VkImageViewASTCDecodeModeEXT(const char* s, Json::Value& obj, VkImageViewASTCDecodeModeEXT& o);
static void parse_VkPhysicalDeviceASTCDecodeFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceASTCDecodeFeaturesEXT& o);
static void parse_VkDrmFormatModifierPropertiesListEXT(const char* s, Json::Value& obj, VkDrmFormatModifierPropertiesListEXT& o);
static void parse_VkDrmFormatModifierPropertiesEXT(const char* s, Json::Value& obj, VkDrmFormatModifierPropertiesEXT& o);
static void parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(const char* s, Json::Value& obj, VkPhysicalDeviceImageDrmFormatModifierInfoEXT& o);
static void parse_VkImageDrmFormatModifierListCreateInfoEXT(const char* s, Json::Value& obj, VkImageDrmFormatModifierListCreateInfoEXT& o);
static void parse_VkImageDrmFormatModifierExplicitCreateInfoEXT(const char* s, Json::Value& obj, VkImageDrmFormatModifierExplicitCreateInfoEXT& o);
static void parse_VkImageDrmFormatModifierPropertiesEXT(const char* s, Json::Value& obj, VkImageDrmFormatModifierPropertiesEXT& o);
static void parse_VkImageStencilUsageCreateInfo(const char* s, Json::Value& obj, VkImageStencilUsageCreateInfo& o);
static void parse_VkPhysicalDeviceScalarBlockLayoutFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceScalarBlockLayoutFeatures& o);
static void parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceUniformBufferStandardLayoutFeatures& o);
static void parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceDepthClipEnableFeaturesEXT& o);
static void parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineRasterizationDepthClipStateCreateInfoEXT& o);
static void parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceMemoryBudgetPropertiesEXT& o);
static void parse_VkPhysicalDeviceBufferDeviceAddressFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceBufferDeviceAddressFeatures& o);
static void parse_VkBufferDeviceAddressInfo(const char* s, Json::Value& obj, VkBufferDeviceAddressInfo& o);
static void parse_VkBufferOpaqueCaptureAddressCreateInfo(const char* s, Json::Value& obj, VkBufferOpaqueCaptureAddressCreateInfo& o);
static void parse_VkPhysicalDeviceImageViewImageFormatInfoEXT(const char* s, Json::Value& obj, VkPhysicalDeviceImageViewImageFormatInfoEXT& o);
static void parse_VkFilterCubicImageViewImageFormatPropertiesEXT(const char* s, Json::Value& obj, VkFilterCubicImageViewImageFormatPropertiesEXT& o);
static void parse_VkPhysicalDeviceImagelessFramebufferFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceImagelessFramebufferFeatures& o);
static void parse_VkFramebufferAttachmentsCreateInfo(const char* s, Json::Value& obj, VkFramebufferAttachmentsCreateInfo& o);
static void parse_VkFramebufferAttachmentImageInfo(const char* s, Json::Value& obj, VkFramebufferAttachmentImageInfo& o);
static void parse_VkRenderPassAttachmentBeginInfo(const char* s, Json::Value& obj, VkRenderPassAttachmentBeginInfo& o);
static void parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& o);
static void parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& o);
static void parse_VkPhysicalDevicePerformanceQueryFeaturesKHR(const char* s, Json::Value& obj, VkPhysicalDevicePerformanceQueryFeaturesKHR& o);
static void parse_VkPhysicalDevicePerformanceQueryPropertiesKHR(const char* s, Json::Value& obj, VkPhysicalDevicePerformanceQueryPropertiesKHR& o);
static void parse_VkPerformanceCounterKHR(const char* s, Json::Value& obj, VkPerformanceCounterKHR& o);
static void parse_VkPerformanceCounterDescriptionKHR(const char* s, Json::Value& obj, VkPerformanceCounterDescriptionKHR& o);
static void parse_VkQueryPoolPerformanceCreateInfoKHR(const char* s, Json::Value& obj, VkQueryPoolPerformanceCreateInfoKHR& o);
static void parse_VkAcquireProfilingLockInfoKHR(const char* s, Json::Value& obj, VkAcquireProfilingLockInfoKHR& o);
static void parse_VkPerformanceQuerySubmitInfoKHR(const char* s, Json::Value& obj, VkPerformanceQuerySubmitInfoKHR& o);
static void parse_VkPerformanceQueryReservationInfoKHR(const char* s, Json::Value& obj, VkPerformanceQueryReservationInfoKHR& o);
static void parse_VkHeadlessSurfaceCreateInfoEXT(const char* s, Json::Value& obj, VkHeadlessSurfaceCreateInfoEXT& o);
static void parse_VkPhysicalDeviceShaderClockFeaturesKHR(const char* s, Json::Value& obj, VkPhysicalDeviceShaderClockFeaturesKHR& o);
static void parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceIndexTypeUint8FeaturesEXT& o);
static void parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& o);
static void parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(const char* s, Json::Value& obj, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& o);
static void parse_VkAttachmentReferenceStencilLayout(const char* s, Json::Value& obj, VkAttachmentReferenceStencilLayout& o);
static void parse_VkAttachmentDescriptionStencilLayout(const char* s, Json::Value& obj, VkAttachmentDescriptionStencilLayout& o);
static void parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& o);
static void parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& o);
static void parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT& o);
static void parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& o);
static void parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& o);
static void parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& o);
static void parse_VkMemoryOpaqueCaptureAddressAllocateInfo(const char* s, Json::Value& obj, VkMemoryOpaqueCaptureAddressAllocateInfo& o);
static void parse_VkDeviceMemoryOpaqueCaptureAddressInfo(const char* s, Json::Value& obj, VkDeviceMemoryOpaqueCaptureAddressInfo& o);
static void parse_VkPhysicalDeviceLineRasterizationFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceLineRasterizationFeaturesEXT& o);
static void parse_VkPhysicalDeviceLineRasterizationPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceLineRasterizationPropertiesEXT& o);
static void parse_VkPipelineRasterizationLineStateCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineRasterizationLineStateCreateInfoEXT& o);
static void parse_VkPhysicalDeviceVulkan11Features(const char* s, Json::Value& obj, VkPhysicalDeviceVulkan11Features& o);
static void parse_VkPhysicalDeviceVulkan11Properties(const char* s, Json::Value& obj, VkPhysicalDeviceVulkan11Properties& o);
static void parse_VkPhysicalDeviceVulkan12Features(const char* s, Json::Value& obj, VkPhysicalDeviceVulkan12Features& o);
static void parse_VkPhysicalDeviceVulkan12Properties(const char* s, Json::Value& obj, VkPhysicalDeviceVulkan12Properties& o);
static void parse_VkFaultData(const char* s, Json::Value& obj, VkFaultData& o);
static void parse_VkFaultCallbackInfo(const char* s, Json::Value& obj, VkFaultCallbackInfo& o);
static void parse_VkSamplerCustomBorderColorCreateInfoEXT(const char* s, Json::Value& obj, VkSamplerCustomBorderColorCreateInfoEXT& o);
static void parse_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceCustomBorderColorPropertiesEXT& o);
static void parse_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceCustomBorderColorFeaturesEXT& o);
static void parse_VkRefreshObjectKHR(const char* s, Json::Value& obj, VkRefreshObjectKHR& o);
static void parse_VkRefreshObjectListKHR(const char* s, Json::Value& obj, VkRefreshObjectListKHR& o);
static void parse_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& o);
static void parse_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& o);
static void parse_VkPipelineOfflineCreateInfo(const char* s, Json::Value& obj, VkPipelineOfflineCreateInfo& o);
static void parse_VkPhysicalDeviceRobustness2FeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceRobustness2FeaturesEXT& o);
static void parse_VkPhysicalDeviceRobustness2PropertiesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceRobustness2PropertiesEXT& o);
static void parse_VkPhysicalDeviceImageRobustnessFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceImageRobustnessFeaturesEXT& o);
static void parse_VkPhysicalDevice4444FormatsFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDevice4444FormatsFeaturesEXT& o);
static void parse_VkBufferCopy2KHR(const char* s, Json::Value& obj, VkBufferCopy2KHR& o);
static void parse_VkImageCopy2KHR(const char* s, Json::Value& obj, VkImageCopy2KHR& o);
static void parse_VkImageBlit2KHR(const char* s, Json::Value& obj, VkImageBlit2KHR& o);
static void parse_VkBufferImageCopy2KHR(const char* s, Json::Value& obj, VkBufferImageCopy2KHR& o);
static void parse_VkImageResolve2KHR(const char* s, Json::Value& obj, VkImageResolve2KHR& o);
static void parse_VkCopyBufferInfo2KHR(const char* s, Json::Value& obj, VkCopyBufferInfo2KHR& o);
static void parse_VkCopyImageInfo2KHR(const char* s, Json::Value& obj, VkCopyImageInfo2KHR& o);
static void parse_VkBlitImageInfo2KHR(const char* s, Json::Value& obj, VkBlitImageInfo2KHR& o);
static void parse_VkCopyBufferToImageInfo2KHR(const char* s, Json::Value& obj, VkCopyBufferToImageInfo2KHR& o);
static void parse_VkCopyImageToBufferInfo2KHR(const char* s, Json::Value& obj, VkCopyImageToBufferInfo2KHR& o);
static void parse_VkResolveImageInfo2KHR(const char* s, Json::Value& obj, VkResolveImageInfo2KHR& o);
static void parse_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& o);
static void parse_VkFragmentShadingRateAttachmentInfoKHR(const char* s, Json::Value& obj, VkFragmentShadingRateAttachmentInfoKHR& o);
static void parse_VkPipelineFragmentShadingRateStateCreateInfoKHR(const char* s, Json::Value& obj, VkPipelineFragmentShadingRateStateCreateInfoKHR& o);
static void parse_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(const char* s, Json::Value& obj, VkPhysicalDeviceFragmentShadingRateFeaturesKHR& o);
static void parse_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(const char* s, Json::Value& obj, VkPhysicalDeviceFragmentShadingRatePropertiesKHR& o);
static void parse_VkPhysicalDeviceFragmentShadingRateKHR(const char* s, Json::Value& obj, VkPhysicalDeviceFragmentShadingRateKHR& o);
static void parse_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(const char* s, Json::Value& obj, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR& o);
static void parse_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& o);
static void parse_VkVertexInputBindingDescription2EXT(const char* s, Json::Value& obj, VkVertexInputBindingDescription2EXT& o);
static void parse_VkVertexInputAttributeDescription2EXT(const char* s, Json::Value& obj, VkVertexInputAttributeDescription2EXT& o);
static void parse_VkPhysicalDeviceColorWriteEnableFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceColorWriteEnableFeaturesEXT& o);
static void parse_VkPipelineColorWriteCreateInfoEXT(const char* s, Json::Value& obj, VkPipelineColorWriteCreateInfoEXT& o);
static void parse_VkMemoryBarrier2KHR(const char* s, Json::Value& obj, VkMemoryBarrier2KHR& o);
static void parse_VkImageMemoryBarrier2KHR(const char* s, Json::Value& obj, VkImageMemoryBarrier2KHR& o);
static void parse_VkBufferMemoryBarrier2KHR(const char* s, Json::Value& obj, VkBufferMemoryBarrier2KHR& o);
static void parse_VkDependencyInfoKHR(const char* s, Json::Value& obj, VkDependencyInfoKHR& o);
static void parse_VkSemaphoreSubmitInfoKHR(const char* s, Json::Value& obj, VkSemaphoreSubmitInfoKHR& o);
static void parse_VkCommandBufferSubmitInfoKHR(const char* s, Json::Value& obj, VkCommandBufferSubmitInfoKHR& o);
static void parse_VkSubmitInfo2KHR(const char* s, Json::Value& obj, VkSubmitInfo2KHR& o);
static void parse_VkQueueFamilyCheckpointProperties2NV(const char* s, Json::Value& obj, VkQueueFamilyCheckpointProperties2NV& o);
static void parse_VkCheckpointData2NV(const char* s, Json::Value& obj, VkCheckpointData2NV& o);
static void parse_VkPhysicalDeviceSynchronization2FeaturesKHR(const char* s, Json::Value& obj, VkPhysicalDeviceSynchronization2FeaturesKHR& o);
static void parse_VkPhysicalDeviceVulkanSC10Properties(const char* s, Json::Value& obj, VkPhysicalDeviceVulkanSC10Properties& o);
static void parse_VkPipelinePoolSize(const char* s, Json::Value& obj, VkPipelinePoolSize& o);
static void parse_VkDeviceObjectReservationCreateInfo(const char* s, Json::Value& obj, VkDeviceObjectReservationCreateInfo& o);
static void parse_VkCommandPoolMemoryReservationCreateInfo(const char* s, Json::Value& obj, VkCommandPoolMemoryReservationCreateInfo& o);
static void parse_VkCommandPoolMemoryConsumption(const char* s, Json::Value& obj, VkCommandPoolMemoryConsumption& o);
static void parse_VkPhysicalDeviceVulkanSC10Features(const char* s, Json::Value& obj, VkPhysicalDeviceVulkanSC10Features& o);
static void parse_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(const char* s, Json::Value& obj, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& o);
static void parse_VkDrmFormatModifierPropertiesList2EXT(const char* s, Json::Value& obj, VkDrmFormatModifierPropertiesList2EXT& o);
static void parse_VkDrmFormatModifierProperties2EXT(const char* s, Json::Value& obj, VkDrmFormatModifierProperties2EXT& o);
/*************************************** End prototypes ***********************************/
static
void* parsePNextChain(Json::Value& obj) {
VkBaseInStructure o;
Json::Value& pNextObj = obj["pNext"];
if (pNextObj.empty() || (pNextObj.isString() && pNextObj.asString() == "NULL")) return nullptr;
parse_VkStructureType("sType", pNextObj["sType"], (o.sType));
void* p = nullptr;
switch (o.sType) {
case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkDisplayPresentInfoKHR));
parse_VkDisplayPresentInfoKHR("", pNextObj, *((VkDisplayPresentInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkValidationFeaturesEXT));
parse_VkValidationFeaturesEXT("", pNextObj, *((VkValidationFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT:
{
p = s_globalMem.allocate(sizeof(VkApplicationParametersEXT));
parse_VkApplicationParametersEXT("", pNextObj, *((VkApplicationParametersEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkExportMemorySciBufInfoNV));
parse_VkExportMemorySciBufInfoNV("", pNextObj, *((VkExportMemorySciBufInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkImportMemorySciBufInfoNV));
parse_VkImportMemorySciBufInfoNV("", pNextObj, *((VkImportMemorySciBufInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalMemorySciBufFeaturesNV));
parse_VkPhysicalDeviceExternalMemorySciBufFeaturesNV("", pNextObj, *((VkPhysicalDeviceExternalMemorySciBufFeaturesNV*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFeatures2));
parse_VkPhysicalDeviceFeatures2("", pNextObj, *((VkPhysicalDeviceFeatures2*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDriverProperties));
parse_VkPhysicalDeviceDriverProperties("", pNextObj, *((VkPhysicalDeviceDriverProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
{
p = s_globalMem.allocate(sizeof(VkPresentRegionsKHR));
parse_VkPresentRegionsKHR("", pNextObj, *((VkPresentRegionsKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVariablePointersFeatures));
parse_VkPhysicalDeviceVariablePointersFeatures("", pNextObj, *((VkPhysicalDeviceVariablePointersFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalImageFormatInfo));
parse_VkPhysicalDeviceExternalImageFormatInfo("", pNextObj, *((VkPhysicalDeviceExternalImageFormatInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkExternalImageFormatProperties));
parse_VkExternalImageFormatProperties("", pNextObj, *((VkExternalImageFormatProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceIDProperties));
parse_VkPhysicalDeviceIDProperties("", pNextObj, *((VkPhysicalDeviceIDProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkExternalMemoryImageCreateInfo));
parse_VkExternalMemoryImageCreateInfo("", pNextObj, *((VkExternalMemoryImageCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkExternalMemoryBufferCreateInfo));
parse_VkExternalMemoryBufferCreateInfo("", pNextObj, *((VkExternalMemoryBufferCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkExportMemoryAllocateInfo));
parse_VkExportMemoryAllocateInfo("", pNextObj, *((VkExportMemoryAllocateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkImportMemoryFdInfoKHR));
parse_VkImportMemoryFdInfoKHR("", pNextObj, *((VkImportMemoryFdInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkExportSemaphoreCreateInfo));
parse_VkExportSemaphoreCreateInfo("", pNextObj, *((VkExportSemaphoreCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkExportFenceCreateInfo));
parse_VkExportFenceCreateInfo("", pNextObj, *((VkExportFenceCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_FENCE_SCI_SYNC_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkExportFenceSciSyncInfoNV));
parse_VkExportFenceSciSyncInfoNV("", pNextObj, *((VkExportFenceSciSyncInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_SCI_SYNC_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkExportSemaphoreSciSyncInfoNV));
parse_VkExportSemaphoreSciSyncInfoNV("", pNextObj, *((VkExportSemaphoreSciSyncInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_FEATURES_NV:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalSciSyncFeaturesNV));
parse_VkPhysicalDeviceExternalSciSyncFeaturesNV("", pNextObj, *((VkPhysicalDeviceExternalSciSyncFeaturesNV*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalSciSync2FeaturesNV));
parse_VkPhysicalDeviceExternalSciSync2FeaturesNV("", pNextObj, *((VkPhysicalDeviceExternalSciSync2FeaturesNV*)p));
}
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkSemaphoreSciSyncCreateInfoNV));
parse_VkSemaphoreSciSyncCreateInfoNV("", pNextObj, *((VkSemaphoreSciSyncCreateInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV:
{
p = s_globalMem.allocate(sizeof(VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV));
parse_VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV("", pNextObj, *((VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMultiviewFeatures));
parse_VkPhysicalDeviceMultiviewFeatures("", pNextObj, *((VkPhysicalDeviceMultiviewFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMultiviewProperties));
parse_VkPhysicalDeviceMultiviewProperties("", pNextObj, *((VkPhysicalDeviceMultiviewProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkRenderPassMultiviewCreateInfo));
parse_VkRenderPassMultiviewCreateInfo("", pNextObj, *((VkRenderPassMultiviewCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkSwapchainCounterCreateInfoEXT));
parse_VkSwapchainCounterCreateInfoEXT("", pNextObj, *((VkSwapchainCounterCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
{
p = s_globalMem.allocate(sizeof(VkMemoryAllocateFlagsInfo));
parse_VkMemoryAllocateFlagsInfo("", pNextObj, *((VkMemoryAllocateFlagsInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
{
p = s_globalMem.allocate(sizeof(VkBindBufferMemoryDeviceGroupInfo));
parse_VkBindBufferMemoryDeviceGroupInfo("", pNextObj, *((VkBindBufferMemoryDeviceGroupInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
{
p = s_globalMem.allocate(sizeof(VkBindImageMemoryDeviceGroupInfo));
parse_VkBindImageMemoryDeviceGroupInfo("", pNextObj, *((VkBindImageMemoryDeviceGroupInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupRenderPassBeginInfo));
parse_VkDeviceGroupRenderPassBeginInfo("", pNextObj, *((VkDeviceGroupRenderPassBeginInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupCommandBufferBeginInfo));
parse_VkDeviceGroupCommandBufferBeginInfo("", pNextObj, *((VkDeviceGroupCommandBufferBeginInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupSubmitInfo));
parse_VkDeviceGroupSubmitInfo("", pNextObj, *((VkDeviceGroupSubmitInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkImageSwapchainCreateInfoKHR));
parse_VkImageSwapchainCreateInfoKHR("", pNextObj, *((VkImageSwapchainCreateInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkBindImageMemorySwapchainInfoKHR));
parse_VkBindImageMemorySwapchainInfoKHR("", pNextObj, *((VkBindImageMemorySwapchainInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupPresentInfoKHR));
parse_VkDeviceGroupPresentInfoKHR("", pNextObj, *((VkDeviceGroupPresentInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupDeviceCreateInfo));
parse_VkDeviceGroupDeviceCreateInfo("", pNextObj, *((VkDeviceGroupDeviceCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkDeviceGroupSwapchainCreateInfoKHR));
parse_VkDeviceGroupSwapchainCreateInfoKHR("", pNextObj, *((VkDeviceGroupSwapchainCreateInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT));
parse_VkPhysicalDeviceDiscardRectanglePropertiesEXT("", pNextObj, *((VkPhysicalDeviceDiscardRectanglePropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT));
parse_VkPipelineDiscardRectangleStateCreateInfoEXT("", pNextObj, *((VkPipelineDiscardRectangleStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkRenderPassInputAttachmentAspectCreateInfo));
parse_VkRenderPassInputAttachmentAspectCreateInfo("", pNextObj, *((VkRenderPassInputAttachmentAspectCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
{
p = s_globalMem.allocate(sizeof(VkSharedPresentSurfaceCapabilitiesKHR));
parse_VkSharedPresentSurfaceCapabilitiesKHR("", pNextObj, *((VkSharedPresentSurfaceCapabilitiesKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevice16BitStorageFeatures));
parse_VkPhysicalDevice16BitStorageFeatures("", pNextObj, *((VkPhysicalDevice16BitStorageFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupProperties));
parse_VkPhysicalDeviceSubgroupProperties("", pNextObj, *((VkPhysicalDeviceSubgroupProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
parse_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures("", pNextObj, *((VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevicePointClippingProperties));
parse_VkPhysicalDevicePointClippingProperties("", pNextObj, *((VkPhysicalDevicePointClippingProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
{
p = s_globalMem.allocate(sizeof(VkMemoryDedicatedRequirements));
parse_VkMemoryDedicatedRequirements("", pNextObj, *((VkMemoryDedicatedRequirements*)p));
}
break;
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkMemoryDedicatedAllocateInfo));
parse_VkMemoryDedicatedAllocateInfo("", pNextObj, *((VkMemoryDedicatedAllocateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkImageViewUsageCreateInfo));
parse_VkImageViewUsageCreateInfo("", pNextObj, *((VkImageViewUsageCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkPipelineTessellationDomainOriginStateCreateInfo));
parse_VkPipelineTessellationDomainOriginStateCreateInfo("", pNextObj, *((VkPipelineTessellationDomainOriginStateCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
{
p = s_globalMem.allocate(sizeof(VkSamplerYcbcrConversionInfo));
parse_VkSamplerYcbcrConversionInfo("", pNextObj, *((VkSamplerYcbcrConversionInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
{
p = s_globalMem.allocate(sizeof(VkBindImagePlaneMemoryInfo));
parse_VkBindImagePlaneMemoryInfo("", pNextObj, *((VkBindImagePlaneMemoryInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
{
p = s_globalMem.allocate(sizeof(VkImagePlaneMemoryRequirementsInfo));
parse_VkImagePlaneMemoryRequirementsInfo("", pNextObj, *((VkImagePlaneMemoryRequirementsInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
parse_VkPhysicalDeviceSamplerYcbcrConversionFeatures("", pNextObj, *((VkPhysicalDeviceSamplerYcbcrConversionFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkSamplerYcbcrConversionImageFormatProperties));
parse_VkSamplerYcbcrConversionImageFormatProperties("", pNextObj, *((VkSamplerYcbcrConversionImageFormatProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
{
p = s_globalMem.allocate(sizeof(VkProtectedSubmitInfo));
parse_VkProtectedSubmitInfo("", pNextObj, *((VkProtectedSubmitInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
parse_VkPhysicalDeviceProtectedMemoryFeatures("", pNextObj, *((VkPhysicalDeviceProtectedMemoryFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceProtectedMemoryProperties));
parse_VkPhysicalDeviceProtectedMemoryProperties("", pNextObj, *((VkPhysicalDeviceProtectedMemoryProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties));
parse_VkPhysicalDeviceSamplerFilterMinmaxProperties("", pNextObj, *((VkPhysicalDeviceSamplerFilterMinmaxProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkSampleLocationsInfoEXT));
parse_VkSampleLocationsInfoEXT("", pNextObj, *((VkSampleLocationsInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkRenderPassSampleLocationsBeginInfoEXT));
parse_VkRenderPassSampleLocationsBeginInfoEXT("", pNextObj, *((VkRenderPassSampleLocationsBeginInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineSampleLocationsStateCreateInfoEXT));
parse_VkPipelineSampleLocationsStateCreateInfoEXT("", pNextObj, *((VkPipelineSampleLocationsStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT));
parse_VkPhysicalDeviceSampleLocationsPropertiesEXT("", pNextObj, *((VkPhysicalDeviceSampleLocationsPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkSamplerReductionModeCreateInfo));
parse_VkSamplerReductionModeCreateInfo("", pNextObj, *((VkSamplerReductionModeCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
parse_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT("", pNextObj, *((VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT));
parse_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT("", pNextObj, *((VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT));
parse_VkPipelineColorBlendAdvancedStateCreateInfoEXT("", pNextObj, *((VkPipelineColorBlendAdvancedStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkImageFormatListCreateInfo));
parse_VkImageFormatListCreateInfo("", pNextObj, *((VkImageFormatListCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMaintenance3Properties));
parse_VkPhysicalDeviceMaintenance3Properties("", pNextObj, *((VkPhysicalDeviceMaintenance3Properties*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
parse_VkPhysicalDeviceShaderDrawParametersFeatures("", pNextObj, *((VkPhysicalDeviceShaderDrawParametersFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
parse_VkPhysicalDeviceShaderFloat16Int8Features("", pNextObj, *((VkPhysicalDeviceShaderFloat16Int8Features*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFloatControlsProperties));
parse_VkPhysicalDeviceFloatControlsProperties("", pNextObj, *((VkPhysicalDeviceFloatControlsProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceHostQueryResetFeatures));
parse_VkPhysicalDeviceHostQueryResetFeatures("", pNextObj, *((VkPhysicalDeviceHostQueryResetFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkDeviceQueueGlobalPriorityCreateInfoEXT));
parse_VkDeviceQueueGlobalPriorityCreateInfoEXT("", pNextObj, *((VkDeviceQueueGlobalPriorityCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkDebugUtilsMessengerCreateInfoEXT));
parse_VkDebugUtilsMessengerCreateInfoEXT("", pNextObj, *((VkDebugUtilsMessengerCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkImportMemoryHostPointerInfoEXT));
parse_VkImportMemoryHostPointerInfoEXT("", pNextObj, *((VkImportMemoryHostPointerInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT));
parse_VkPhysicalDeviceExternalMemoryHostPropertiesEXT("", pNextObj, *((VkPhysicalDeviceExternalMemoryHostPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT));
parse_VkPhysicalDeviceConservativeRasterizationPropertiesEXT("", pNextObj, *((VkPhysicalDeviceConservativeRasterizationPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT));
parse_VkPipelineRasterizationConservativeStateCreateInfoEXT("", pNextObj, *((VkPipelineRasterizationConservativeStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
parse_VkPhysicalDeviceDescriptorIndexingFeatures("", pNextObj, *((VkPhysicalDeviceDescriptorIndexingFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDescriptorIndexingProperties));
parse_VkPhysicalDeviceDescriptorIndexingProperties("", pNextObj, *((VkPhysicalDeviceDescriptorIndexingProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo));
parse_VkDescriptorSetLayoutBindingFlagsCreateInfo("", pNextObj, *((VkDescriptorSetLayoutBindingFlagsCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo));
parse_VkDescriptorSetVariableDescriptorCountAllocateInfo("", pNextObj, *((VkDescriptorSetVariableDescriptorCountAllocateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
{
p = s_globalMem.allocate(sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport));
parse_VkDescriptorSetVariableDescriptorCountLayoutSupport("", pNextObj, *((VkDescriptorSetVariableDescriptorCountLayoutSupport*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
parse_VkPhysicalDeviceTimelineSemaphoreFeatures("", pNextObj, *((VkPhysicalDeviceTimelineSemaphoreFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTimelineSemaphoreProperties));
parse_VkPhysicalDeviceTimelineSemaphoreProperties("", pNextObj, *((VkPhysicalDeviceTimelineSemaphoreProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkSemaphoreTypeCreateInfo));
parse_VkSemaphoreTypeCreateInfo("", pNextObj, *((VkSemaphoreTypeCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
{
p = s_globalMem.allocate(sizeof(VkTimelineSemaphoreSubmitInfo));
parse_VkTimelineSemaphoreSubmitInfo("", pNextObj, *((VkTimelineSemaphoreSubmitInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT));
parse_VkPipelineVertexInputDivisorStateCreateInfoEXT("", pNextObj, *((VkPipelineVertexInputDivisorStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT));
parse_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT("", pNextObj, *((VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT));
parse_VkPhysicalDevicePCIBusInfoPropertiesEXT("", pNextObj, *((VkPhysicalDevicePCIBusInfoPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevice8BitStorageFeatures));
parse_VkPhysicalDevice8BitStorageFeatures("", pNextObj, *((VkPhysicalDevice8BitStorageFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
parse_VkPhysicalDeviceVulkanMemoryModelFeatures("", pNextObj, *((VkPhysicalDeviceVulkanMemoryModelFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
parse_VkPhysicalDeviceShaderAtomicInt64Features("", pNextObj, *((VkPhysicalDeviceShaderAtomicInt64Features*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
parse_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT("", pNextObj, *((VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
parse_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT("", pNextObj, *((VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDepthStencilResolveProperties));
parse_VkPhysicalDeviceDepthStencilResolveProperties("", pNextObj, *((VkPhysicalDeviceDepthStencilResolveProperties*)p));
}
break;
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
{
p = s_globalMem.allocate(sizeof(VkSubpassDescriptionDepthStencilResolve));
parse_VkSubpassDescriptionDepthStencilResolve("", pNextObj, *((VkSubpassDescriptionDepthStencilResolve*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
{
p = s_globalMem.allocate(sizeof(VkImageViewASTCDecodeModeEXT));
parse_VkImageViewASTCDecodeModeEXT("", pNextObj, *((VkImageViewASTCDecodeModeEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
parse_VkPhysicalDeviceASTCDecodeFeaturesEXT("", pNextObj, *((VkPhysicalDeviceASTCDecodeFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
{
p = s_globalMem.allocate(sizeof(VkDrmFormatModifierPropertiesListEXT));
parse_VkDrmFormatModifierPropertiesListEXT("", pNextObj, *((VkDrmFormatModifierPropertiesListEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT));
parse_VkPhysicalDeviceImageDrmFormatModifierInfoEXT("", pNextObj, *((VkPhysicalDeviceImageDrmFormatModifierInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkImageDrmFormatModifierListCreateInfoEXT));
parse_VkImageDrmFormatModifierListCreateInfoEXT("", pNextObj, *((VkImageDrmFormatModifierListCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT));
parse_VkImageDrmFormatModifierExplicitCreateInfoEXT("", pNextObj, *((VkImageDrmFormatModifierExplicitCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkImageStencilUsageCreateInfo));
parse_VkImageStencilUsageCreateInfo("", pNextObj, *((VkImageStencilUsageCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
parse_VkPhysicalDeviceScalarBlockLayoutFeatures("", pNextObj, *((VkPhysicalDeviceScalarBlockLayoutFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
parse_VkPhysicalDeviceUniformBufferStandardLayoutFeatures("", pNextObj, *((VkPhysicalDeviceUniformBufferStandardLayoutFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
parse_VkPhysicalDeviceDepthClipEnableFeaturesEXT("", pNextObj, *((VkPhysicalDeviceDepthClipEnableFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT));
parse_VkPipelineRasterizationDepthClipStateCreateInfoEXT("", pNextObj, *((VkPipelineRasterizationDepthClipStateCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT));
parse_VkPhysicalDeviceMemoryBudgetPropertiesEXT("", pNextObj, *((VkPhysicalDeviceMemoryBudgetPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
parse_VkPhysicalDeviceBufferDeviceAddressFeatures("", pNextObj, *((VkPhysicalDeviceBufferDeviceAddressFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkBufferOpaqueCaptureAddressCreateInfo));
parse_VkBufferOpaqueCaptureAddressCreateInfo("", pNextObj, *((VkBufferOpaqueCaptureAddressCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT));
parse_VkPhysicalDeviceImageViewImageFormatInfoEXT("", pNextObj, *((VkPhysicalDeviceImageViewImageFormatInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT));
parse_VkFilterCubicImageViewImageFormatPropertiesEXT("", pNextObj, *((VkFilterCubicImageViewImageFormatPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
parse_VkPhysicalDeviceImagelessFramebufferFeatures("", pNextObj, *((VkPhysicalDeviceImagelessFramebufferFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkFramebufferAttachmentsCreateInfo));
parse_VkFramebufferAttachmentsCreateInfo("", pNextObj, *((VkFramebufferAttachmentsCreateInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
{
p = s_globalMem.allocate(sizeof(VkRenderPassAttachmentBeginInfo));
parse_VkRenderPassAttachmentBeginInfo("", pNextObj, *((VkRenderPassAttachmentBeginInfo*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT));
parse_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT("", pNextObj, *((VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
parse_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT("", pNextObj, *((VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
parse_VkPhysicalDevicePerformanceQueryFeaturesKHR("", pNextObj, *((VkPhysicalDevicePerformanceQueryFeaturesKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR));
parse_VkPhysicalDevicePerformanceQueryPropertiesKHR("", pNextObj, *((VkPhysicalDevicePerformanceQueryPropertiesKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkQueryPoolPerformanceCreateInfoKHR));
parse_VkQueryPoolPerformanceCreateInfoKHR("", pNextObj, *((VkQueryPoolPerformanceCreateInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkPerformanceQuerySubmitInfoKHR));
parse_VkPerformanceQuerySubmitInfoKHR("", pNextObj, *((VkPerformanceQuerySubmitInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR:
{
p = s_globalMem.allocate(sizeof(VkPerformanceQueryReservationInfoKHR));
parse_VkPerformanceQueryReservationInfoKHR("", pNextObj, *((VkPerformanceQueryReservationInfoKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
parse_VkPhysicalDeviceShaderClockFeaturesKHR("", pNextObj, *((VkPhysicalDeviceShaderClockFeaturesKHR*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
parse_VkPhysicalDeviceIndexTypeUint8FeaturesEXT("", pNextObj, *((VkPhysicalDeviceIndexTypeUint8FeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
parse_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT("", pNextObj, *((VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
parse_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures("", pNextObj, *((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*)p));
}
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
{
p = s_globalMem.allocate(sizeof(VkAttachmentReferenceStencilLayout));
parse_VkAttachmentReferenceStencilLayout("", pNextObj, *((VkAttachmentReferenceStencilLayout*)p));
}
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
{
p = s_globalMem.allocate(sizeof(VkAttachmentDescriptionStencilLayout));
parse_VkAttachmentDescriptionStencilLayout("", pNextObj, *((VkAttachmentDescriptionStencilLayout*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT));
parse_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT("", pNextObj, *((VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
parse_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT("", pNextObj, *((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT));
parse_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT("", pNextObj, *((VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT));
parse_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT("", pNextObj, *((VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
{
p = s_globalMem.allocate(sizeof(VkPhysicalDeviceSubgroupSizeControlPropertiesEXT));
parse_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT("", pNextObj, *((VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
{
p = s_globalMem.allocate(sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT));
parse_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT("", pNextObj, *((VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*)p));
}
break;
case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
{
p = s_globalMem.allocate(sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo));
parse_VkMemoryOpaqueCaptureAddressAllocateInfo("",