aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs
diff options
context:
space:
mode:
authorgdk <gab.dark.100@gmail.com>2019-11-15 20:41:06 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit8eb773d81f0b580851b840f3abc222b784523fbc (patch)
tree7be5a2a09072363d287728080224c1ad1188d286 /Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs
parent04102e5c9db600d4ea4ffc0b514bda6f5e300bca (diff)
Make the shader translator more error resilient (part 2)
Diffstat (limited to 'Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs')
-rw-r--r--Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs
index 95e9a20a..5aa925d9 100644
--- a/Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs
+++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs
@@ -60,6 +60,13 @@ namespace Ryujinx.Graphics.Shader.Instructions
IntegerType intType = (IntegerType)op.RawOpCode.Extract(8, 2);
+ if (intType == IntegerType.U64)
+ {
+ // TODO: Warning. This instruction supports 64-bits integers, but it is not implemented.
+
+ return;
+ }
+
bool isSmallInt = intType <= IntegerType.U16;
FPType floatType = (FPType)op.RawOpCode.Extract(10, 2);
@@ -118,6 +125,8 @@ namespace Ryujinx.Graphics.Shader.Instructions
IntegerType srcType = (IntegerType)op.RawOpCode.Extract(10, 2);
+ // TODO: Handle S/U64.
+
bool isSmallInt = srcType <= IntegerType.U16;
bool isSignedInt = op.RawOpCode.Extract(13);
@@ -153,7 +162,9 @@ namespace Ryujinx.Graphics.Shader.Instructions
if (srcType == IntegerType.U64 || dstType == IntegerType.U64)
{
- // TODO: Warning. This instruction doesn't support 64-bits integers
+ // TODO: Warning. This instruction doesn't support 64-bits integers.
+
+ return;
}
bool srcIsSmallInt = srcType <= IntegerType.U16;