forked from Mirror/Ryujinx
parent
25ec4eddfa
commit
7cd52fecb5
1 changed files with 12 additions and 4 deletions
|
@ -116,12 +116,20 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
||||||
|
|
||||||
private static string GetVec4Indexed(string vectorName, string indexExpr)
|
private static string GetVec4Indexed(string vectorName, string indexExpr)
|
||||||
{
|
{
|
||||||
string result = $"{vectorName}.x";
|
bool canIndexVec4 = false;
|
||||||
for (int i = 1; i < 4; i++)
|
if (canIndexVec4)
|
||||||
{
|
{
|
||||||
result = $"(({indexExpr}) == {i}) ? ({vectorName}.{GetSwizzleMask(i)}) : ({result})";
|
return $"{vectorName}[{indexExpr}]";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string result = $"{vectorName}.x";
|
||||||
|
for (int i = 1; i < 4; i++)
|
||||||
|
{
|
||||||
|
result = $"(({indexExpr}) == {i}) ? ({vectorName}.{GetSwizzleMask(i)}) : ({result})";
|
||||||
|
}
|
||||||
|
return $"({result})";
|
||||||
}
|
}
|
||||||
return $"({result})";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetConstantBufferName(IAstNode slot, string offsetExpr, ShaderStage stage)
|
public static string GetConstantBufferName(IAstNode slot, string offsetExpr, ShaderStage stage)
|
||||||
|
|
Loading…
Reference in a new issue