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, 33 const std::string& path, 34 const std::string& filePrefix); 35 vector<u8> buildOfflinePipelineCache (const VulkanPipelineCacheInput& input, 36 const std::string& pipelineCompilerPath, 37 const std::string& pipelineCompilerDataDir, 38 const std::string& pipelineCompilerArgs, 39 const std::string& pipelineCompilerOutputFile, 40 const std::string& pipelineCompilerLogFile, 41 const std::string& pipelineCompilerFilePrefix); 42 vector<u8> buildPipelineCache (const VulkanPipelineCacheInput& input, 43 const vk::PlatformInterface& vkp, 44 vk::VkInstance instance, 45 const vk::InstanceInterface& vki, 46 vk::VkPhysicalDevice physicalDevice, 47 deUint32 queueIndex); 48 std::vector<VulkanPipelineSize> extractSizesFromPipelineCache (const VulkanPipelineCacheInput& input, 49 const vector<u8>& pipelineCache, 50 deUint32 pipelineDefaultSize, 51 bool recyclePipelineMemory); 52 53 } 54 55 #endif // _VKSCACHEBUILDER_HPP 56