Initial tessellation shader support (#2534)
* Initial tessellation shader support * Nits * Re-arrange built-in table * This is not needed anymore * PR feedback
This commit is contained in:
parent
7603dbe3c8
commit
d512ce122c
42 changed files with 775 additions and 148 deletions
|
@ -19,15 +19,15 @@ namespace Ryujinx.Graphics.Shader.StructuredIr
|
|||
|
||||
public static VariableType GetVarType(OperandType type)
|
||||
{
|
||||
switch (type)
|
||||
return type switch
|
||||
{
|
||||
case OperandType.Attribute: return VariableType.F32;
|
||||
case OperandType.Constant: return VariableType.S32;
|
||||
case OperandType.ConstantBuffer: return VariableType.F32;
|
||||
case OperandType.Undefined: return VariableType.S32;
|
||||
}
|
||||
|
||||
throw new ArgumentException($"Invalid operand type \"{type}\".");
|
||||
OperandType.Attribute => VariableType.F32,
|
||||
OperandType.AttributePerPatch => VariableType.F32,
|
||||
OperandType.Constant => VariableType.S32,
|
||||
OperandType.ConstantBuffer => VariableType.F32,
|
||||
OperandType.Undefined => VariableType.S32,
|
||||
_ => throw new ArgumentException($"Invalid operand type \"{type}\".")
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
|
@ -282,6 +282,12 @@ namespace Ryujinx.Graphics.Shader.StructuredIr
|
|||
|
||||
public AstOperand GetOperandUse(Operand operand)
|
||||
{
|
||||
// If this flag is set, we're reading from an output attribute instead.
|
||||
if (operand.Type.IsAttribute() && (operand.Value & AttributeConsts.LoadOutputMask) != 0)
|
||||
{
|
||||
return GetOperandDef(operand);
|
||||
}
|
||||
|
||||
return GetOperand(operand);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue