 ee1038e542
			
		
	
	
		ee1038e542
		
			
		
	
	
	
	
		
			
			* Initial support for shader attribute indexing * Support output indexing too, other improvements * Fix order * Address feedback
		
			
				
	
	
		
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			842 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			842 B
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Ryujinx.Graphics.Shader.Instructions;
 | |
| 
 | |
| namespace Ryujinx.Graphics.Shader.Decoders
 | |
| {
 | |
|     class OpCodeAttribute : OpCodeAluReg, IOpCodeAttribute
 | |
|     {
 | |
|         public int  AttributeOffset { get; }
 | |
|         public bool Patch           { get; }
 | |
|         public int  Count           { get; }
 | |
| 
 | |
|         public bool Phys => !Patch && AttributeOffset == 0 && !Ra.IsRZ;
 | |
|         public bool Indexed => Phys;
 | |
| 
 | |
|         public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeAttribute(emitter, address, opCode);
 | |
| 
 | |
|         public OpCodeAttribute(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
 | |
|         {
 | |
|             AttributeOffset = opCode.Extract(20, 10);
 | |
|             Patch           = opCode.Extract(31);
 | |
|             Count           = opCode.Extract(47, 2) + 1;
 | |
|         }
 | |
|     }
 | |
| } |