Fix value of constant vertex attributes (#2307)
This commit is contained in:
parent
79092310fa
commit
3fd6b55f04
@ -80,7 +80,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
if (attrib.IsZero)
|
||||
{
|
||||
// Disabling the attribute causes the shader to read a constant value.
|
||||
// The value is configurable, but by default is a vector of (0, 0, 0, 1).
|
||||
// We currently set the constant to (0, 0, 0, 0).
|
||||
DisableVertexAttrib(index);
|
||||
}
|
||||
else
|
||||
@ -176,6 +176,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||
{
|
||||
_vertexAttribsInUse &= ~mask;
|
||||
GL.DisableVertexAttribArray(index);
|
||||
GL.VertexAttrib4(index, 0f, 0f, 0f, 0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,19 +129,20 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||
{
|
||||
config.SetUsedFeature(FeatureFlags.Bindless);
|
||||
}
|
||||
else // Not bindless, fill up texture handles
|
||||
|
||||
for (int funcIndex = 0; funcIndex < cfg.Length; funcIndex++)
|
||||
{
|
||||
for (int funcIndex = 0; funcIndex < cfg.Length; funcIndex++)
|
||||
for (int blkIndex = 0; blkIndex < cfg[funcIndex].Length; blkIndex++)
|
||||
{
|
||||
for (int blkIndex = 0; blkIndex < cfg[funcIndex].Length; blkIndex++)
|
||||
Block block = cfg[funcIndex][blkIndex];
|
||||
|
||||
if (maxEndAddress < block.EndAddress)
|
||||
{
|
||||
Block block = cfg[funcIndex][blkIndex];
|
||||
|
||||
if (maxEndAddress < block.EndAddress)
|
||||
{
|
||||
maxEndAddress = block.EndAddress;
|
||||
}
|
||||
maxEndAddress = block.EndAddress;
|
||||
}
|
||||
|
||||
if (!hasBindless)
|
||||
{
|
||||
for (int index = 0; index < block.OpCodes.Count; index++)
|
||||
{
|
||||
if (block.OpCodes[index] is OpCodeTextureBase texture)
|
||||
|
Loading…
Reference in New Issue
Block a user