Ver código fonte

(Graphics.Shader): Handle EmitSuatom constant dests and EmitSuld zero dest reg. (#5504)

* (Graphics.Shader): Handle EmitSuatom constant dests.

* Proper fix for EmitSuatom; fix EmitSuld.
Domenico V 2 anos atrás
pai
commit
86931cc3f1

+ 6 - 1
src/Ryujinx.Graphics.Shader/Instructions/InstEmitSurface.cs

@@ -218,7 +218,7 @@ namespace Ryujinx.Graphics.Shader.Instructions
                 return context.Copy(Register(srcB++, RegisterType.Gpr));
                 return context.Copy(Register(srcB++, RegisterType.Gpr));
             }
             }
 
 
-            Operand d = dest != RegisterConsts.RegisterZeroIndex ? Register(dest, RegisterType.Gpr) : null;
+            Operand d = Register(dest, RegisterType.Gpr);
 
 
             List<Operand> sourcesList = new();
             List<Operand> sourcesList = new();
 
 
@@ -304,6 +304,11 @@ namespace Ryujinx.Graphics.Shader.Instructions
             bool byteAddress,
             bool byteAddress,
             bool isBindless)
             bool isBindless)
         {
         {
+            if (srcB == RegisterConsts.RegisterZeroIndex)
+            {
+                return;
+            }
+
             context.Config.SetUsedFeature(FeatureFlags.IntegerSampling);
             context.Config.SetUsedFeature(FeatureFlags.IntegerSampling);
 
 
             SamplerType type = ConvertSamplerType(dimensions);
             SamplerType type = ConvertSamplerType(dimensions);