Move MaxUboSize definition (#530)

* Move MaxUboSize definition

This fix a crash on Ryujinx.ShaderTools caused by the absence of an
OpenGL context.

* Use a constant for the value in ShaderTools

* Address comments
This commit is contained in:
Thomas Guillemard 2018-12-18 01:32:12 +01:00 committed by gdkchan
parent 6aaf9ccb53
commit 33e7c89822
4 changed files with 10 additions and 7 deletions

View file

@ -31,7 +31,9 @@ namespace Ryujinx.Graphics.Gal.Shader
private StringBuilder SB;
public GlslDecompiler()
public int MaxUboSize { get; }
public GlslDecompiler(int MaxUboSize)
{
InstsExpr = new Dictionary<ShaderIrInst, GetInstExpr>()
{
@ -106,6 +108,8 @@ namespace Ryujinx.Graphics.Gal.Shader
{ ShaderIrInst.Utof, GetUtofExpr },
{ ShaderIrInst.Xor, GetXorExpr }
};
this.MaxUboSize = MaxUboSize / 16;
}
public GlslProgram Decompile(
@ -259,7 +263,7 @@ namespace Ryujinx.Graphics.Gal.Shader
{
SB.AppendLine($"layout (std140) uniform {DeclInfo.Name} {{");
SB.AppendLine($"{IdentationStr}vec4 {DeclInfo.Name}_data[{GlslDecl.MaxUboSize}];");
SB.AppendLine($"{IdentationStr}vec4 {DeclInfo.Name}_data[{MaxUboSize}];");
SB.AppendLine("};");
}