diff --git a/src/common/serialization.h b/src/common/serialization.h new file mode 100644 index 000000000..63c112021 --- /dev/null +++ b/src/common/serialization.h @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include + +namespace cereal { + +// boost::small_vector +template +void save(Archive& ar, boost::container::small_vector const& smallVector) { + ar(make_size_tag(static_cast(smallVector.size()))); + for (auto const& element : smallVector) + ar(element); +} + +template +void load(Archive& ar, boost::container::small_vector& smallVector) { + u32 elementCount; + ar(make_size_tag(elementCount)); + smallVector.resize(elementCount); + for (auto& element : smallVector) + ar(element); +} + +} \ No newline at end of file diff --git a/src/video_core/renderer_vulkan/shader_cache.cpp b/src/video_core/renderer_vulkan/shader_cache.cpp index 607c2de54..e4f14d699 100644 --- a/src/video_core/renderer_vulkan/shader_cache.cpp +++ b/src/video_core/renderer_vulkan/shader_cache.cpp @@ -281,7 +281,6 @@ bool CheckShaderCache(std::string shader_id) { } void GetShader(std::string shader_id, Shader::Info& info, std::vector& spv) { - // read spirv std::filesystem::path spirv_cache_filename = shader_id + ".spv"; std::filesystem::path spirv_cache_file_path = SHADER_CACHE_DIR / spirv_cache_filename; Common::FS::IOFile spirv_cache_file(spirv_cache_file_path, Common::FS::FileAccessMode::Read); @@ -289,7 +288,6 @@ void GetShader(std::string shader_id, Shader::Info& info, std::vector& spv) spirv_cache_file.Read(spv); spirv_cache_file.Close(); - // read resources std::filesystem::path resource_dump_filename = shader_id + ".resources"; std::filesystem::path resources_dump_file_path = SHADER_CACHE_DIR / resource_dump_filename; Common::FS::IOFile resources_dump_file(resources_dump_file_path,