 9dfe81770a
			
		
	
	
		9dfe81770a
		
			
		
	
	
	
	
		
			
			* Change AggregateType to include vector type counts * Replace VariableType uses with AggregateType and delete VariableType * Support new local vector types on SPIR-V and GLSL * Start using vector outputs for texture operations * Use vectors on more texture operations * Use vector output for ImageLoad operations * Replace all uses of single destination texture constructors with multi destination ones * Update textureGatherOffsets replacement to split vector operations * Shader cache version bump Co-authored-by: Ac_K <Acoustik666@gmail.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			No EOL
		
	
	
		
			1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			No EOL
		
	
	
		
			1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Ryujinx.Graphics.Shader.Translation;
 | |
| using System;
 | |
| 
 | |
| namespace Ryujinx.Graphics.Shader
 | |
| {
 | |
|     public enum AttributeType : byte
 | |
|     {
 | |
|         // Generic types.
 | |
|         Float,
 | |
|         Sint,
 | |
|         Uint
 | |
|     }
 | |
| 
 | |
|     static class AttributeTypeExtensions
 | |
|     {
 | |
|         public static string ToVec4Type(this AttributeType type)
 | |
|         {
 | |
|             return type switch
 | |
|             {
 | |
|                 AttributeType.Float => "vec4",
 | |
|                 AttributeType.Sint => "ivec4",
 | |
|                 AttributeType.Uint => "uvec4",
 | |
|                 _ => throw new ArgumentException($"Invalid attribute type \"{type}\".")
 | |
|             };
 | |
|         }
 | |
| 
 | |
|         public static AggregateType ToAggregateType(this AttributeType type)
 | |
|         {
 | |
|             return type switch
 | |
|             {
 | |
|                 AttributeType.Float => AggregateType.FP32,
 | |
|                 AttributeType.Sint => AggregateType.S32,
 | |
|                 AttributeType.Uint => AggregateType.U32,
 | |
|                 _ => throw new ArgumentException($"Invalid attribute type \"{type}\".")
 | |
|             };
 | |
|         }
 | |
|     }
 | |
| } |