fix false alphakill flags when texture fetch is optimized away

This commit is contained in:
kd-11 2017-03-21 14:35:08 +03:00
parent 458e5fa4e1
commit 8fa3f0721e
4 changed files with 29 additions and 6 deletions

View file

@ -370,8 +370,12 @@ void GLFragmentDecompilerThread::insertMainEnd(std::stringstream & OS)
{
if (m_prog.textures_alpha_kill[index])
{
std::string fetch_texture = insert_texture_fetch(m_prog, index) + ".a";
OS << make_comparison_test((rsx::comparison_function)m_prog.textures_zfunc[index], "", "0", fetch_texture);
const std::string texture_name = "tex" + std::to_string(index);
if (m_parr.HasParamTypeless(PF_PARAM_UNIFORM, texture_name))
{
std::string fetch_texture = insert_texture_fetch(m_prog, index) + ".a";
OS << make_comparison_test((rsx::comparison_function)m_prog.textures_zfunc[index], "", "0", fetch_texture);
}
}
}