yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeLower all ByteAddressBuffer uses for SPIRV. (#3143)6437c38e0

master
876 B30 linesraw
1#version 450
2#extension GL_EXT_nonuniform_qualifier : require
3layout(row_major) uniform;
4layout(row_major) buffer;
5layout(std430, binding = 1) buffer StructuredBuffer_int_t_0 {
6    int _data[];
7} g_aoa_0[];
8layout(std430, binding = 0) buffer StructuredBuffer_int_t_1 {
9    int _data[];
10} outputBuffer_0;
11layout(local_size_x = 8, local_size_y = 1, local_size_z = 1) in;
12void main()
13{
14    int index_0 = int(gl_GlobalInvocationID.x);
15    int innerIndex_0 = index_0 & 3;
16    int _S1 = nonuniformEXT(index_0 >> 2);
17    uvec2 _S2 = uvec2(g_aoa_0[_S1]._data.length(), 0);
18    uint bufferCount_0 = _S2.x;
19    int innerIndex_1;
20    if(innerIndex_0 >= int(bufferCount_0))
21    {
22        innerIndex_1 = int(bufferCount_0 - 1U);
23    }
24    else
25    {
26        innerIndex_1 = innerIndex_0;
27    }
28    outputBuffer_0._data[uint(index_0)] = g_aoa_0[_S1]._data[uint(innerIndex_1)];
29    return;
30}