1e5c31af7Sopenharmony_ci#ifndef _VKSCACHEBUILDER_HPP 2e5c31af7Sopenharmony_ci#define _VKSCACHEBUILDER_HPP 3e5c31af7Sopenharmony_ci 4e5c31af7Sopenharmony_ci/*------------------------------------------------------------------------- 5e5c31af7Sopenharmony_ci * Vulkan CTS Framework 6e5c31af7Sopenharmony_ci * -------------------- 7e5c31af7Sopenharmony_ci * 8e5c31af7Sopenharmony_ci * Copyright (c) 2021 The Khronos Group Inc. 9e5c31af7Sopenharmony_ci * 10e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 11e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License. 12e5c31af7Sopenharmony_ci * You may obtain a copy of the License at 13e5c31af7Sopenharmony_ci * 14e5c31af7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 15e5c31af7Sopenharmony_ci * 16e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 17e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 18e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and 20e5c31af7Sopenharmony_ci * limitations under the License. 21e5c31af7Sopenharmony_ci * 22e5c31af7Sopenharmony_ci *-------------------------------------------------------------------------*/ 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci#include "vksCommon.hpp" 25e5c31af7Sopenharmony_ci#include "vksStructsVKSC.hpp" 26e5c31af7Sopenharmony_ci 27e5c31af7Sopenharmony_ci#include "vkPrograms.hpp" 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_cinamespace vksc_server 30e5c31af7Sopenharmony_ci{ 31e5c31af7Sopenharmony_ci 32e5c31af7Sopenharmony_civoid exportFilesForExternalCompiler (const VulkanPipelineCacheInput& input, 33e5c31af7Sopenharmony_ci const std::string& path, 34e5c31af7Sopenharmony_ci const std::string& filePrefix); 35e5c31af7Sopenharmony_civector<u8> buildOfflinePipelineCache (const VulkanPipelineCacheInput& input, 36e5c31af7Sopenharmony_ci const std::string& pipelineCompilerPath, 37e5c31af7Sopenharmony_ci const std::string& pipelineCompilerDataDir, 38e5c31af7Sopenharmony_ci const std::string& pipelineCompilerArgs, 39e5c31af7Sopenharmony_ci const std::string& pipelineCompilerOutputFile, 40e5c31af7Sopenharmony_ci const std::string& pipelineCompilerLogFile, 41e5c31af7Sopenharmony_ci const std::string& pipelineCompilerFilePrefix); 42e5c31af7Sopenharmony_civector<u8> buildPipelineCache (const VulkanPipelineCacheInput& input, 43e5c31af7Sopenharmony_ci const vk::PlatformInterface& vkp, 44e5c31af7Sopenharmony_ci vk::VkInstance instance, 45e5c31af7Sopenharmony_ci const vk::InstanceInterface& vki, 46e5c31af7Sopenharmony_ci vk::VkPhysicalDevice physicalDevice, 47e5c31af7Sopenharmony_ci deUint32 queueIndex); 48e5c31af7Sopenharmony_cistd::vector<VulkanPipelineSize> extractSizesFromPipelineCache (const VulkanPipelineCacheInput& input, 49e5c31af7Sopenharmony_ci const vector<u8>& pipelineCache, 50e5c31af7Sopenharmony_ci deUint32 pipelineDefaultSize, 51e5c31af7Sopenharmony_ci bool recyclePipelineMemory); 52e5c31af7Sopenharmony_ci 53e5c31af7Sopenharmony_ci} 54e5c31af7Sopenharmony_ci 55e5c31af7Sopenharmony_ci#endif // _VKSCACHEBUILDER_HPP 56