diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp index 8c9f8e5ca2..1be65eb126 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp @@ -454,7 +454,7 @@ void VKFragmentProgram::Decompile(const RSXFragmentProgram& prog) void VKFragmentProgram::Compile() { fs::create_path(fs::get_config_dir() + "/shaderlog"); - fs::file(fs::get_config_dir() + "shaderlog/FragmentProgram.spirv", fs::rewrite).write(shader); + fs::file(fs::get_config_dir() + "shaderlog/FragmentProgram" + std::to_string(id) + ".spirv", fs::rewrite).write(shader); std::vector spir_v; if (!vk::compile_glsl_to_spv(shader, glsl::glsl_fragment_program, spir_v)) @@ -470,8 +470,6 @@ void VKFragmentProgram::Compile() VkDevice dev = (VkDevice)*vk::get_current_renderer(); vkCreateShaderModule(dev, &fs_info, nullptr, &handle); - - id = UINT32_MAX; } void VKFragmentProgram::Delete() diff --git a/rpcs3/Emu/RSX/VK/VKProgramBuffer.h b/rpcs3/Emu/RSX/VK/VKProgramBuffer.h index 29e08b8996..224c10a141 100644 --- a/rpcs3/Emu/RSX/VK/VKProgramBuffer.h +++ b/rpcs3/Emu/RSX/VK/VKProgramBuffer.h @@ -83,16 +83,16 @@ struct VKTraits void recompile_fragment_program(const RSXFragmentProgram &RSXFP, fragment_program_type& fragmentProgramData, size_t ID) { fragmentProgramData.Decompile(RSXFP); - fragmentProgramData.Compile(); fragmentProgramData.id = static_cast(ID); + fragmentProgramData.Compile(); } static void recompile_vertex_program(const RSXVertexProgram &RSXVP, vertex_program_type& vertexProgramData, size_t ID) { vertexProgramData.Decompile(RSXVP); - vertexProgramData.Compile(); vertexProgramData.id = static_cast(ID); + vertexProgramData.Compile(); } static diff --git a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp index 3cc898d287..96f37517dc 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp @@ -338,7 +338,7 @@ void VKVertexProgram::Decompile(const RSXVertexProgram& prog) void VKVertexProgram::Compile() { fs::create_path(fs::get_config_dir() + "/shaderlog"); - fs::file(fs::get_config_dir() + "shaderlog/VertexProgram.spirv", fs::rewrite).write(shader); + fs::file(fs::get_config_dir() + "shaderlog/VertexProgram" + std::to_string(id) + ".spirv", fs::rewrite).write(shader); std::vector spir_v; if (!vk::compile_glsl_to_spv(shader, glsl::glsl_vertex_program, spir_v)) @@ -353,8 +353,6 @@ void VKVertexProgram::Compile() VkDevice dev = (VkDevice)*vk::get_current_renderer(); vkCreateShaderModule(dev, &vs_info, nullptr, &handle); - - id = UINT32_MAX; } void VKVertexProgram::Delete()