diff --git a/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp b/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp index c32d3542f2..c33f73b7ae 100644 --- a/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp +++ b/rpcs3/Emu/RSX/Program/SPIRVCommon.cpp @@ -135,27 +135,30 @@ namespace spirv glslang::EShClient client; glslang::EShTargetClientVersion target_version; + glslang::EShTargetLanguageVersion spirv_version; EShMessages msg; if (rules == ::glsl::glsl_rules_vulkan) { client = glslang::EShClientVulkan; - target_version = glslang::EShTargetClientVersion::EShTargetVulkan_1_0; + target_version = glslang::EShTargetClientVersion::EShTargetVulkan_1_2; + spirv_version = glslang::EShTargetLanguageVersion::EShTargetSpv_1_5; msg = static_cast(EShMsgVulkanRules | EShMsgSpvRules | EShMsgEnhanced); } else { client = glslang::EShClientOpenGL; target_version = glslang::EShTargetClientVersion::EShTargetOpenGL_450; + spirv_version = glslang::EShTargetLanguageVersion::EShTargetSpv_1_0; msg = static_cast(EShMsgDefault | EShMsgSpvRules | EShMsgEnhanced); } glslang::TProgram program; glslang::TShader shader_object(lang); - shader_object.setEnvInput(glslang::EShSourceGlsl, lang, client, 100); + shader_object.setEnvInput(glslang::EShSourceGlsl, lang, client, 100); // NOTE: 100 here is the spec revision of GL_KHR_vulkan_glsl. There is only one version (100) for the past 10 years. shader_object.setEnvClient(client, target_version); - shader_object.setEnvTarget(glslang::EshTargetSpv, glslang::EShTargetLanguageVersion::EShTargetSpv_1_0); + shader_object.setEnvTarget(glslang::EshTargetSpv, spirv_version); bool success = false; const char* shader_text = shader.data();