Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled
This commit is contained in:
parent
1e8bc29f32
commit
769c02235f
44 changed files with 949 additions and 242 deletions
|
@ -0,0 +1,18 @@
|
|||
ivec2 Helper_GetStorageBuffer(uint aLow, uint aHigh)
|
||||
{
|
||||
uint64_t address = packUint2x32(uvec2(aLow, aHigh));
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
int offset = 0x40 + i * 4;
|
||||
uint baseLow = fp_c0_data[offset];
|
||||
uint baseHigh = fp_c0_data[offset + 1];
|
||||
uint size = fp_c0_data[offset + 2];
|
||||
uint64_t baseAddr = packUint2x32(uvec2(baseLow, baseHigh));
|
||||
if (address >= baseAddr && address < baseAddr + packUint2x32(uvec2(size, 0)))
|
||||
{
|
||||
return ivec2(i, int(unpackUint2x32(address - (baseAddr & ~63ul)).x) >> 2);
|
||||
}
|
||||
}
|
||||
return ivec2(0);
|
||||
}
|
|
@ -2,6 +2,8 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
|||
{
|
||||
static class HelperFunctionNames
|
||||
{
|
||||
public static string GetStorageBuffer = "Helper_GetStorageBuffer";
|
||||
|
||||
public static string Shuffle = "Helper_Shuffle";
|
||||
public static string ShuffleDown = "Helper_ShuffleDown";
|
||||
public static string ShuffleUp = "Helper_ShuffleUp";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue