1617a3babSopenharmony_ci#version 460
2617a3babSopenharmony_ci#extension GL_EXT_ray_tracing : enable
3617a3babSopenharmony_ci
4617a3babSopenharmony_cihitAttributeEXT vec3 attribs;
5617a3babSopenharmony_cilayout(location = 0) rayPayloadInEXT vec3 hitValue;
6617a3babSopenharmony_cilayout(set = 0, binding = 0, r32i) uniform iimage3D result;
7617a3babSopenharmony_ci
8617a3babSopenharmony_civoid main()
9617a3babSopenharmony_ci{
10617a3babSopenharmony_ci  float k = 1048576.0f;
11617a3babSopenharmony_ci  int ndx = -1;
12617a3babSopenharmony_ci  for (int col = 0; col < 3; col++)
13617a3babSopenharmony_ci  for (int row = 0; row < 4; row++)
14617a3babSopenharmony_ci  {
15617a3babSopenharmony_ci    ndx++;
16617a3babSopenharmony_ci    ivec3 p = ivec3(gl_LaunchIDEXT.xy, ndx);
17617a3babSopenharmony_ci    float r = k * gl_WorldToObject3x4EXT[col][row];
18617a3babSopenharmony_ci    ivec4 c = ivec4(int(r),0,0,1);
19617a3babSopenharmony_ci    imageStore(result, p, c);
20617a3babSopenharmony_ci  }
21617a3babSopenharmony_ci}
22