Implement remaining shader double-precision instructions (#2845)
* Implement remaining shader double-precision instructions * Shader cache version bump
This commit is contained in:
parent
a0aa87366c
commit
650cc41c02
12 changed files with 282 additions and 121 deletions
|
@ -35,8 +35,16 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl.Instructions
|
|||
VariableType type = GetSrcVarType(operation.Inst, 0);
|
||||
|
||||
string srcExpr = GetSoureExpr(context, src, type);
|
||||
string zero;
|
||||
|
||||
NumberFormatter.TryFormat(0, type, out string zero);
|
||||
if (type == VariableType.F64)
|
||||
{
|
||||
zero = "0.0";
|
||||
}
|
||||
else
|
||||
{
|
||||
NumberFormatter.TryFormat(0, type, out zero);
|
||||
}
|
||||
|
||||
// Starting in the 496.13 NVIDIA driver, there's an issue with assigning variables to negated expressions.
|
||||
// (-expr) does not work, but (0.0 - expr) does. This should be removed once the issue is resolved.
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
|||
|
||||
public static bool TryFormat(int value, VariableType dstType, out string formatted)
|
||||
{
|
||||
if (dstType == VariableType.F32 || dstType == VariableType.F64)
|
||||
if (dstType == VariableType.F32)
|
||||
{
|
||||
return TryFormatFloat(BitConverter.Int32BitsToSingle(value), out formatted);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue