Guest User

Untitled

a guest
Apr 27th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. GLSL: #version 330
  2. #extension GL_ARB_compute_shader : require
  3. #extension GL_ARB_shader_bit_encoding : require
  4. #extension GL_ARB_shader_storage_buffer_object : require
  5. layout (local_size_x = 3, local_size_y = 2, local_size_z = 1) in;
  6. ivec4 temp0[3];
  7. layout (binding = 16) buffer csssbo16 { ivec4 ssbocontents16[]; };
  8. void main(void)
  9. {
  10. temp0[0].x = ivec4(gl_NumWorkGroups.x, gl_NumWorkGroups.x, gl_NumWorkGroups.x, gl_NumWorkGroups.x) * ivec4(gl_NumWorkGroups.y, gl_NumWorkGroups.y, gl_NumWorkGroups.y, gl_NumWorkGroups.y).x;
  11. temp0[0].x = (temp0[0].xxxx * ivec4(gl_WorkGroupID.z, gl_WorkGroupID.z, gl_WorkGroupID.z, gl_WorkGroupID.z)).x;
  12. temp0[0].x = ivec4(gl_NumWorkGroups.x, gl_NumWorkGroups.x, gl_NumWorkGroups.x, gl_NumWorkGroups.x) * ivec4(gl_WorkGroupID.y, gl_WorkGroupID.y, gl_WorkGroupID.y, gl_WorkGroupID.y) + temp0[0].xxxx.x;
  13. temp0[0].x = (temp0[0].xxxx + ivec4(gl_WorkGroupID.x, gl_WorkGroupID.x, gl_WorkGroupID.x, gl_WorkGroupID.x)).x;
  14. temp0[1].x = (ivec4(gl_LocalInvocationID.y, gl_LocalInvocationID.y, gl_LocalInvocationID.y, gl_LocalInvocationID.y) * ivec4((ivec4(3U,3U,3U,3U)))).x;
  15. temp0[1].x = (ivec4(6U,6U,6U,6U) * ivec4(gl_LocalInvocationID.z, gl_LocalInvocationID.z, gl_LocalInvocationID.z, gl_LocalInvocationID.z) + temp0[1].xxxx).x));
  16. temp0[1].x = (ivec4(temp0[1].xxxx) + ivec4(gl_LocalInvocationID.x, gl_LocalInvocationID.x, gl_LocalInvocationID.x, gl_LocalInvocationID.x)).x);
  17. temp0[1].x = (ivec4(6U,6U,6U,6U) * temp0[0].xxxx + temp0[1].xxxx).x;
  18. temp0[2].x = (ivec4(temp0[1].xxxx) * (ivec4(16U,16U,16U,16U))).x;
  19. temp0[2].x = ssbocontents16[int(temp0[2].xxxx)>>4]).x;
  20. temp0[0].x = (temp0[0].xxxx * (ivec4(16U,16U,16U,16U)) + (ivec4(12288U,12288U,12288U,12288U)).x);
  21. temp0[0].x = atomicMin(ssbocontents16[int(temp0[0].xxxx) >> 4].x, (temp0[2].xxxx).x);
  22. temp0[1].x = ((temp0[1].xxxx) * (ivec4(16U,16U,16U,16U)) + (ivec4(6144U,6144U,6144U,6144U))).x;
  23. ssbocontents16[int(temp0[1].xxxx)>>4].x = ( temp0[0].xxxx ).x;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment