diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-11-15 20:41:06 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | 8eb773d81f0b580851b840f3abc222b784523fbc (patch) | |
| tree | 7be5a2a09072363d287728080224c1ad1188d286 /Ryujinx.Graphics.Shader/Instructions/InstEmitConversion.cs | |
| parent | 04102e5c9db600d4ea4ffc0b514bda6f5e300bca (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.cs | 13 |
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; |
