rsx: Workaround for nvidia linux

- For some reason, using 1.E-x notation does not work on nvidia linux. Could be a bug in spir-v generator or the driver itself
This commit is contained in:
kd-11 2017-12-31 10:08:09 +03:00
parent 55c324e062
commit 1ea5e7404a
3 changed files with 4 additions and 4 deletions

View File

@ -195,12 +195,12 @@ std::string FragmentProgramDecompiler::AddX2d()
//Failure to catch causes infinite values since theres alot of rcp(0)
std::string FragmentProgramDecompiler::NotZero(const std::string& code)
{
return "(max(abs(" + code + "), 1.E-10) * sign(" + code + "))";
return "(max(abs(" + code + "), 0.000001) * sign(" + code + "))";
}
std::string FragmentProgramDecompiler::NotZeroPositive(const std::string& code)
{
return "max(abs(" + code + "), 1.E-10)";
return "max(abs(" + code + "), 0.000001)";
}
std::string FragmentProgramDecompiler::ClampValue(const std::string& code, u32 precision)

View File

@ -337,7 +337,7 @@ namespace glsl
OS << " result.x = 1.;\n";
OS << " result.w = 1.;\n";
OS << " result.y = clamped_val.x;\n";
OS << " result.z = clamped_val.x > 0. ? exp(clamped_val.w * log(max(clamped_val.y, 1.E-10))) : 0.;\n";
OS << " result.z = clamped_val.x > 0. ? exp(clamped_val.w * log(max(clamped_val.y, 0.000001))) : 0.;\n";
OS << " return result;\n";
OS << "}\n\n";

View File

@ -376,7 +376,7 @@ void VertexProgramDecompiler::SetDSTSca(const std::string& code)
std::string VertexProgramDecompiler::NotZeroPositive(const std::string& code)
{
return "max(" + code + ", 1.E-10)";
return "max(" + code + ", 0.000001)";
}
std::string VertexProgramDecompiler::BuildFuncBody(const FuncInfo& func)