diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp index ab06fbdade..93e074248e 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp @@ -460,10 +460,12 @@ void VKFragmentDecompilerThread::insertMainEnd(std::stringstream & OS) OS << "void main()\n"; OS << "{\n"; - // FIXME: Workaround - OS << - " const uint rop_control = fs_contexts[_fs_context_offset].rop_control;\n" - " const float alpha_ref = fs_contexts[_fs_context_offset].alpha_ref;\n\n"; + if (m_prog.ctrl & RSX_SHADER_CONTROL_ALPHA_TEST) + { + OS << + " const uint rop_control = fs_contexts[_fs_context_offset].rop_control;\n" + " const float alpha_ref = fs_contexts[_fs_context_offset].alpha_ref;\n\n"; + } ::glsl::insert_rop_init(OS);