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