/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2015-2016 The Khronos Group Inc. // Copyright (c) 2015-2016 Valve Corporation // Copyright (c) 2015-2016 LunarG, Inc. // Copyright (c) 2015-2016 Google, 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. /////////////////////////////////////////////////////////////////////////////// #ifndef VKJSON_H_ #define VKJSON_H_ #include #include #include #include #include #ifdef WIN32 #undef min #undef max #endif /* * This file is autogenerated by vkjson_generator.py. Do not edit directly. */ struct VkJsonLayer { VkLayerProperties properties; std::vector extensions; }; struct VkJsonKHRVariablePointers { VkJsonKHRVariablePointers() { reported = false; memset(&variable_pointer_features_khr, 0, sizeof(VkPhysicalDeviceVariablePointerFeaturesKHR)); memset(&variable_pointers_features_khr, 0, sizeof(VkPhysicalDeviceVariablePointersFeaturesKHR)); } bool reported; VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointer_features_khr; VkPhysicalDeviceVariablePointersFeaturesKHR variable_pointers_features_khr; }; struct VkJsonKHRShaderFloat16Int8 { VkJsonKHRShaderFloat16Int8() { reported = false; memset(&shader_float16_int8_features_khr, 0, sizeof(VkPhysicalDeviceShaderFloat16Int8FeaturesKHR)); memset(&float16_int8_features_khr, 0, sizeof(VkPhysicalDeviceFloat16Int8FeaturesKHR)); } bool reported; VkPhysicalDeviceShaderFloat16Int8FeaturesKHR shader_float16_int8_features_khr; VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8_features_khr; }; struct VkJsonExtImage2dViewOf3d { VkJsonExtImage2dViewOf3d() { reported = false; memset(&image_2d_view_of_3d_features_ext, 0, sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)); } bool reported; VkPhysicalDeviceImage2DViewOf3DFeaturesEXT image_2d_view_of_3d_features_ext; }; struct VkJsonExtCustomBorderColor { VkJsonExtCustomBorderColor() { reported = false; memset(&custom_border_color_features_ext, 0, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT)); } bool reported; VkPhysicalDeviceCustomBorderColorFeaturesEXT custom_border_color_features_ext; }; struct VkJsonExtPrimitiveTopologyListRestart { VkJsonExtPrimitiveTopologyListRestart() { reported = false; memset(&primitive_topology_list_restart_features_ext, 0, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)); } bool reported; VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT primitive_topology_list_restart_features_ext; }; struct VkJsonExtProvokingVertex { VkJsonExtProvokingVertex() { reported = false; memset(&provoking_vertex_features_ext, 0, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT)); } bool reported; VkPhysicalDeviceProvokingVertexFeaturesEXT provoking_vertex_features_ext; }; struct VkJsonKHRIndexTypeUint8 { VkJsonKHRIndexTypeUint8() { reported = false; memset(&index_type_uint8_features_khr, 0, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesKHR)); } bool reported; VkPhysicalDeviceIndexTypeUint8FeaturesKHR index_type_uint8_features_khr; }; struct VkJsonExtIndexTypeUint8 { VkJsonExtIndexTypeUint8() { reported = false; memset(&index_type_uint8_features_ext, 0, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT)); } bool reported; VkPhysicalDeviceIndexTypeUint8FeaturesEXT index_type_uint8_features_ext; }; struct VkJsonKHRVertexAttributeDivisor { VkJsonKHRVertexAttributeDivisor() { reported = false; memset(&vertex_attribute_divisor_features_khr, 0, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR)); } bool reported; VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR vertex_attribute_divisor_features_khr; }; struct VkJsonExtVertexAttributeDivisor { VkJsonExtVertexAttributeDivisor() { reported = false; memset(&vertex_attribute_divisor_features_ext, 0, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)); } bool reported; VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT vertex_attribute_divisor_features_ext; }; struct VkJsonExtTransformFeedback { VkJsonExtTransformFeedback() { reported = false; memset(&transform_feedback_features_ext, 0, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT)); } bool reported; VkPhysicalDeviceTransformFeedbackFeaturesEXT transform_feedback_features_ext; }; struct VkJsonKHRShaderSubgroupUniformControlFlow { VkJsonKHRShaderSubgroupUniformControlFlow() { reported = false; memset(&shader_subgroup_uniform_control_flow_features_khr, 0, sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)); } bool reported; VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR shader_subgroup_uniform_control_flow_features_khr; }; struct VkJsonKHRShaderSubgroupExtendedTypes { VkJsonKHRShaderSubgroupExtendedTypes() { reported = false; memset(&shader_subgroup_extended_types_features_khr, 0, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR)); } bool reported; VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR shader_subgroup_extended_types_features_khr; }; struct VkJsonKHR8bitStorage { VkJsonKHR8bitStorage() { reported = false; memset(&bit8_storage_features_khr, 0, sizeof(VkPhysicalDevice8BitStorageFeaturesKHR)); } bool reported; VkPhysicalDevice8BitStorageFeaturesKHR bit8_storage_features_khr; }; struct VkJsonKHRShaderIntegerDotProduct { VkJsonKHRShaderIntegerDotProduct() { reported = false; memset(&shader_integer_dot_product_features_khr, 0, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR)); } bool reported; VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR shader_integer_dot_product_features_khr; }; struct VkJsonIMGRelaxedLineRasterization { VkJsonIMGRelaxedLineRasterization() { reported = false; memset(&relaxed_line_rasterization_features_img, 0, sizeof(VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG)); } bool reported; VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG relaxed_line_rasterization_features_img; }; struct VkJsonKHRLineRasterization { VkJsonKHRLineRasterization() { reported = false; memset(&line_rasterization_features_khr, 0, sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR)); } bool reported; VkPhysicalDeviceLineRasterizationFeaturesKHR line_rasterization_features_khr; }; struct VkJsonExtLineRasterization { VkJsonExtLineRasterization() { reported = false; memset(&line_rasterization_features_ext, 0, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT)); } bool reported; VkPhysicalDeviceLineRasterizationFeaturesEXT line_rasterization_features_ext; }; struct VkJsonExtPrimitivesGeneratedQuery { VkJsonExtPrimitivesGeneratedQuery() { reported = false; memset(&primitives_generated_query_features_ext, 0, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)); } bool reported; VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT primitives_generated_query_features_ext; }; struct VkJsonKHRShaderFloatControls { VkJsonKHRShaderFloatControls() { reported = false; memset(&float_controls_properties_khr, 0, sizeof(VkPhysicalDeviceFloatControlsPropertiesKHR)); } bool reported; VkPhysicalDeviceFloatControlsPropertiesKHR float_controls_properties_khr; }; struct VkJsonKHRDriverProperties { VkJsonKHRDriverProperties() { reported = false; memset(&driver_properties_khr, 0, sizeof(VkPhysicalDeviceDriverPropertiesKHR)); } bool reported; VkPhysicalDeviceDriverPropertiesKHR driver_properties_khr; }; struct VkJsonCore11 { VkJsonCore11() { memset(&properties, 0, sizeof(VkPhysicalDeviceVulkan11Properties)); memset(&features, 0, sizeof(VkPhysicalDeviceVulkan11Features)); } VkPhysicalDeviceVulkan11Properties properties; VkPhysicalDeviceVulkan11Features features; }; struct VkJsonCore12 { VkJsonCore12() { memset(&properties, 0, sizeof(VkPhysicalDeviceVulkan12Properties)); memset(&features, 0, sizeof(VkPhysicalDeviceVulkan12Features)); } VkPhysicalDeviceVulkan12Properties properties; VkPhysicalDeviceVulkan12Features features; }; struct VkJsonCore13 { VkJsonCore13() { memset(&properties, 0, sizeof(VkPhysicalDeviceVulkan13Properties)); memset(&features, 0, sizeof(VkPhysicalDeviceVulkan13Features)); } VkPhysicalDeviceVulkan13Properties properties; VkPhysicalDeviceVulkan13Features features; }; struct VkJsonCore14 { VkJsonCore14() { memset(&properties, 0, sizeof(VkPhysicalDeviceVulkan14Properties)); memset(&features, 0, sizeof(VkPhysicalDeviceVulkan14Features)); } VkPhysicalDeviceVulkan14Properties properties; VkPhysicalDeviceVulkan14Features features; std::vector copy_src_layouts; std::vector copy_dst_layouts; }; struct VkJsonDevice { VkJsonDevice() { memset(&properties, 0, sizeof(VkPhysicalDeviceProperties)); memset(&features, 0, sizeof(VkPhysicalDeviceFeatures)); memset(&memory, 0, sizeof(VkPhysicalDeviceMemoryProperties)); memset(&subgroup_properties, 0, sizeof(VkPhysicalDeviceSubgroupProperties)); memset(&point_clipping_properties, 0, sizeof(VkPhysicalDevicePointClippingProperties)); memset(&multiview_properties, 0, sizeof(VkPhysicalDeviceMultiviewProperties)); memset(&id_properties, 0, sizeof(VkPhysicalDeviceIDProperties)); memset(&maintenance3_properties, 0, sizeof(VkPhysicalDeviceMaintenance3Properties)); memset(&bit16_storage_features, 0, sizeof(VkPhysicalDevice16BitStorageFeatures)); memset(&multiview_features, 0, sizeof(VkPhysicalDeviceMultiviewFeatures)); memset(&variable_pointers_features, 0, sizeof(VkPhysicalDeviceVariablePointersFeatures)); memset(&protected_memory_features, 0, sizeof(VkPhysicalDeviceProtectedMemoryFeatures)); memset(&sampler_ycbcr_conversion_features, 0, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures)); memset(&shader_draw_parameter_features, 0, sizeof(VkPhysicalDeviceShaderDrawParameterFeatures)); } VkJsonKHRVariablePointers khr_variable_pointers; VkJsonKHRShaderFloat16Int8 khr_shader_float16_int8; VkJsonExtImage2dViewOf3d ext_image_2d_view_of_3d; VkJsonExtCustomBorderColor ext_custom_border_color; VkJsonExtPrimitiveTopologyListRestart ext_primitive_topology_list_restart; VkJsonExtProvokingVertex ext_provoking_vertex; VkJsonKHRIndexTypeUint8 khr_index_type_uint8; VkJsonExtIndexTypeUint8 ext_index_type_uint8; VkJsonKHRVertexAttributeDivisor khr_vertex_attribute_divisor; VkJsonExtVertexAttributeDivisor ext_vertex_attribute_divisor; VkJsonExtTransformFeedback ext_transform_feedback; VkJsonKHRShaderSubgroupUniformControlFlow khr_shader_subgroup_uniform_control_flow; VkJsonKHRShaderSubgroupExtendedTypes khr_shader_subgroup_extended_types; VkJsonKHR8bitStorage khr_8bit_storage; VkJsonKHRShaderIntegerDotProduct khr_shader_integer_dot_product; VkJsonIMGRelaxedLineRasterization img_relaxed_line_rasterization; VkJsonKHRLineRasterization khr_line_rasterization; VkJsonExtLineRasterization ext_line_rasterization; VkJsonExtPrimitivesGeneratedQuery ext_primitives_generated_query; VkJsonKHRShaderFloatControls khr_shader_float_controls; VkJsonKHRDriverProperties khr_driver_properties; VkJsonCore11 core11; VkJsonCore12 core12; VkJsonCore13 core13; VkJsonCore14 core14; VkPhysicalDeviceProperties properties; VkPhysicalDeviceFeatures features; VkPhysicalDeviceMemoryProperties memory; VkPhysicalDeviceSubgroupProperties subgroup_properties; VkPhysicalDevicePointClippingProperties point_clipping_properties; VkPhysicalDeviceMultiviewProperties multiview_properties; VkPhysicalDeviceIDProperties id_properties; VkPhysicalDeviceMaintenance3Properties maintenance3_properties; VkPhysicalDevice16BitStorageFeatures bit16_storage_features; VkPhysicalDeviceMultiviewFeatures multiview_features; VkPhysicalDeviceVariablePointersFeatures variable_pointers_features; VkPhysicalDeviceProtectedMemoryFeatures protected_memory_features; VkPhysicalDeviceSamplerYcbcrConversionFeatures sampler_ycbcr_conversion_features; VkPhysicalDeviceShaderDrawParameterFeatures shader_draw_parameter_features; std::vector queues; std::vector extensions; std::vector layers; std::map formats; std::map external_fence_properties; std::map external_semaphore_properties; }; struct VkJsonDeviceGroup { VkJsonDeviceGroup() { memset(&properties, 0, sizeof(VkPhysicalDeviceGroupProperties)); } VkPhysicalDeviceGroupProperties properties; std::vector device_inds; }; struct VkJsonInstance { VkJsonInstance() : api_version(0) {} uint32_t api_version; std::vector layers; std::vector extensions; std::vector devices; std::vector device_groups; }; VkJsonInstance VkJsonGetInstance(); std::string VkJsonInstanceToJson(const VkJsonInstance& instance); bool VkJsonInstanceFromJson(const std::string& json, VkJsonInstance* instance, std::string* errors); VkJsonDevice VkJsonGetDevice(VkPhysicalDevice device); std::string VkJsonDeviceToJson(const VkJsonDevice& device); bool VkJsonDeviceFromJson(const std::string& json, VkJsonDevice* device, std::string* errors); std::string VkJsonImageFormatPropertiesToJson( const VkImageFormatProperties& properties); bool VkJsonImageFormatPropertiesFromJson(const std::string& json, VkImageFormatProperties* properties, std::string* errors); // Backward-compatibility aliases typedef VkJsonDevice VkJsonAllProperties; inline VkJsonAllProperties VkJsonGetAllProperties( VkPhysicalDevice physicalDevice) { return VkJsonGetDevice(physicalDevice); } inline std::string VkJsonAllPropertiesToJson( const VkJsonAllProperties& properties) { return VkJsonDeviceToJson(properties); } inline bool VkJsonAllPropertiesFromJson(const std::string& json, VkJsonAllProperties* properties, std::string* errors) { return VkJsonDeviceFromJson(json, properties, errors); } #endif // VKJSON_H_