diag_mask_inf.comp 799 B

12345678910111213141516171819202122232425262728293031323334
  1. #version 450
  2. #extension GL_EXT_shader_16bit_storage : require
  3. #extension GL_EXT_control_flow_attributes : enable
  4. layout (push_constant) uniform parameter
  5. {
  6. uint ncols;
  7. uint rows_per_channel;
  8. uint n_past;
  9. } p;
  10. #include "types.comp"
  11. layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
  12. layout (binding = 0) readonly buffer X {A_TYPE data_a[];};
  13. layout (binding = 1) writeonly buffer D {D_TYPE data_d[];};
  14. void main() {
  15. const uint col = gl_GlobalInvocationID.y;
  16. const uint row = gl_GlobalInvocationID.x;
  17. if (col >= p.ncols) {
  18. return;
  19. }
  20. const uint i = row*p.ncols + col;
  21. if (col > p.n_past + row % p.rows_per_channel) {
  22. data_d[i] = D_TYPE(uintBitsToFloat(0xFF800000));
  23. } else {
  24. data_d[i] = D_TYPE(data_a[i]);
  25. }
  26. }