Replace BGRA and scale uniforms with a uniform block (#2496)
* Replace BGRA and scale uniforms with a uniform block * Setting the data again on program change is no longer needed * Optimize and resolve some warnings * Avoid redundant support buffer updates * Some optimizations to BindBuffers (now inlined) * Unify render scale arrays
This commit is contained in:
parent
b5b7e23fc4
commit
0f6ec446ea
13 changed files with 269 additions and 226 deletions
18
Ryujinx.Graphics.Shader/SupportBuffer.cs
Normal file
18
Ryujinx.Graphics.Shader/SupportBuffer.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
namespace Ryujinx.Graphics.Shader
|
||||
{
|
||||
public static class SupportBuffer
|
||||
{
|
||||
public const int FieldSize = 16; // Each field takes 16 bytes on default layout, even bool.
|
||||
|
||||
public const int FragmentAlphaTestOffset = 0;
|
||||
public const int FragmentIsBgraOffset = FieldSize;
|
||||
public const int FragmentIsBgraCount = 8;
|
||||
public const int FragmentRenderScaleOffset = FragmentIsBgraOffset + FragmentIsBgraCount * FieldSize;
|
||||
public const int ComputeRenderScaleOffset = FragmentRenderScaleOffset + FieldSize; // Skip first scale that is used for the render target
|
||||
|
||||
// One for the render target, 32 for the textures, and 8 for the images.
|
||||
private const int RenderScaleMaxCount = 1 + 32 + 8;
|
||||
|
||||
public const int RequiredSize = FragmentRenderScaleOffset + RenderScaleMaxCount * FieldSize;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue