#ifndef _VKSJSON_HPP #define _VKSJSON_HPP /*------------------------------------------------------------------------- * Vulkan CTS Framework * -------------------- * * 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. * *-------------------------------------------------------------------------*/ #include "vksCommon.hpp" #include "vkPrograms.hpp" #include "vkDefs.hpp" using namespace vk; namespace Json { class CharReader; } namespace vksc_server { struct VulkanPipelineStatistics; namespace json { struct Context { Context(); ~Context(); std::unique_ptr reader; }; void runGarbageCollection (); string writeJSON_VkGraphicsPipelineCreateInfo (const vk::VkGraphicsPipelineCreateInfo& pCreateInfo); string writeJSON_VkComputePipelineCreateInfo (const vk::VkComputePipelineCreateInfo& pCreateInfo); string writeJSON_VkRenderPassCreateInfo (const vk::VkRenderPassCreateInfo& pCreateInfo); string writeJSON_VkRenderPassCreateInfo2 (const vk::VkRenderPassCreateInfo2& pCreateInfo); string writeJSON_VkPipelineLayoutCreateInfo (const vk::VkPipelineLayoutCreateInfo& pCreateInfo); string writeJSON_VkDescriptorSetLayoutCreateInfo (const vk::VkDescriptorSetLayoutCreateInfo& pCreateInfo); string writeJSON_VkSamplerCreateInfo (const vk::VkSamplerCreateInfo& pCreateInfo); string writeJSON_VkSamplerYcbcrConversionCreateInfo (const vk::VkSamplerYcbcrConversionCreateInfo& pCreateInfo); string writeJSON_VkShaderModuleCreateInfo (const vk::VkShaderModuleCreateInfo& smCI); string writeJSON_VkDeviceObjectReservationCreateInfo (const vk::VkDeviceObjectReservationCreateInfo& dmrCI); string writeJSON_VkPipelineOfflineCreateInfo (const vk::VkPipelineOfflineCreateInfo& piInfo); string writeJSON_GraphicsPipeline_vkpccjson (const std::string& filePrefix, deUint32 pipelineIndex, const vk::VkPipelineOfflineCreateInfo id, const vk::VkGraphicsPipelineCreateInfo& gpCI, const vk::VkPhysicalDeviceFeatures2& deviceFeatures2, const std::vector& deviceExtensions, const std::map& samplerYcbcrConversions, const std::map& samplers, const std::map& descriptorSetLayouts, const std::map& renderPasses, const std::map& renderPasses2, const std::map& pipelineLayouts); string writeJSON_ComputePipeline_vkpccjson (const std::string& filePrefix, deUint32 pipelineIndex, const vk::VkPipelineOfflineCreateInfo id, const vk::VkComputePipelineCreateInfo& cpCI, const vk::VkPhysicalDeviceFeatures2& deviceFeatures2, const std::vector& deviceExtensions, const std::map& samplerYcbcrConversions, const std::map& samplers, const std::map& descriptorSetLayouts, const std::map& pipelineLayouts); string writeJSON_VkPhysicalDeviceFeatures2 (const vk::VkPhysicalDeviceFeatures2& features); string writeJSON_pNextChain (const void* pNext); void readJSON_VkGraphicsPipelineCreateInfo (Context& context, const string& graphicsPipelineCreateInfo, vk::VkGraphicsPipelineCreateInfo& gpCI); void readJSON_VkComputePipelineCreateInfo (Context& context, const string& computePipelineCreateInfo, vk::VkComputePipelineCreateInfo& cpCI); void readJSON_VkRenderPassCreateInfo (Context& context, const string& renderPassCreateInfo, vk::VkRenderPassCreateInfo& rpCI); void readJSON_VkRenderPassCreateInfo2 (Context& context, const string& renderPassCreateInfo, vk::VkRenderPassCreateInfo2& rpCI); void readJSON_VkDescriptorSetLayoutCreateInfo (Context& context, const string& descriptorSetLayoutCreateInfo, vk::VkDescriptorSetLayoutCreateInfo& dsCI); void readJSON_VkPipelineLayoutCreateInfo (Context& context, const string& pipelineLayoutCreateInfo, vk::VkPipelineLayoutCreateInfo& plCI); void readJSON_VkShaderModuleCreateInfo (Context& context, const string& shaderModuleCreate, vk::VkShaderModuleCreateInfo& smCI, vector& spirvShader); void readJSON_VkDeviceObjectReservationCreateInfo (Context& context, const string& deviceMemoryReservation, vk::VkDeviceObjectReservationCreateInfo& dmrCI); void readJSON_VkPipelineOfflineCreateInfo (Context& context, const string& pipelineIdentifierInfo, vk::VkPipelineOfflineCreateInfo& piInfo); void readJSON_VkSamplerCreateInfo (Context& context, const string& samplerCreateInfo, vk::VkSamplerCreateInfo& sCI); void readJSON_VkSamplerYcbcrConversionCreateInfo (Context& context, const std::string& samplerYcbcrConversionCreateInfo, vk::VkSamplerYcbcrConversionCreateInfo& sycCI); void readJSON_VkPhysicalDeviceFeatures2 (Context& context, const std::string& featuresJson, vk::VkPhysicalDeviceFeatures2& features); void* readJSON_pNextChain (Context& context, const std::string& chainJson); } } #endif // _VKSJSON_HPP