mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-02-08 10:39:43 +00:00
34 lines
No EOL
828 B
GLSL
34 lines
No EOL
828 B
GLSL
layout (buffer_reference, std430, buffer_reference_align = 8) buffer buffer_regions_block
|
|
{
|
|
uint blockIndices[1 << 14];
|
|
uvec2 pointers[];
|
|
};
|
|
|
|
layout (buffer_reference, std430, buffer_reference_align = 1) buffer uint8_t_ptr
|
|
{
|
|
uint8_t value;
|
|
};
|
|
|
|
layout (buffer_reference, std430, buffer_reference_align = 2) buffer uint16_t_ptr
|
|
{
|
|
uint16_t value;
|
|
};
|
|
|
|
layout (buffer_reference, std430, buffer_reference_align = 4) buffer uint_ptr
|
|
{
|
|
uint value;
|
|
};
|
|
|
|
uvec2 Helper_TranslateAddress(uvec2 address)
|
|
{
|
|
buffer_regions_block br = buffer_regions_block(s_page_table.xy);
|
|
|
|
uint l0 = (address.x >> 12) & 0x3fff;
|
|
uint l1 = ((address.x >> 26) & 0x3f) | ((address.y << 6) & 0x3fc0);
|
|
|
|
uvec2 hostAddress = br.pointers[br.blockIndices[l1] + l0];
|
|
|
|
hostAddress.x += (address.x & 0xfff);
|
|
|
|
return hostAddress;
|
|
} |