@@ -16,16 +16,11 @@ layout(std430) buffer;
1616
1717#include "indexing_utils.h"
1818
19- layout (set = 0 , binding = 0 , ${IMAGE_FORMAT[ DTYPE]}) uniform PRECISION restrict writeonly ${IMAGE_T[NDIM][DTYPE]} image_out;
20- layout (set = 0 , binding = 1 ) uniform PRECISION sampler3D image_in;
19+ ${layout_declare_tensor( 0 , "w", "t_out", DTYPE, STORAGE)}
20+ ${layout_declare_tensor( 1 , "r", "t_in", DTYPE, STORAGE)}
2121
22- layout (set = 0 , binding = 2 ) uniform PRECISION restrict OutSizes {
23- ivec4 out_sizes;
24- };
25-
26- layout (set = 0 , binding = 3 ) uniform PRECISION restrict InSizes {
27- ivec4 in_sizes;
28- };
22+ ${layout_declare_ubo(2 , "ivec4 ", "out_sizes")}
23+ ${layout_declare_ubo(3 , "ivec4 ", "in_sizes")}
2924
3025layout (local_size_x_id = 0 , local_size_y_id = 1 , local_size_z_id = 2 ) in ;
3126
@@ -52,10 +47,10 @@ void main() {
5247 if (out_tensor_idx[out_packed_dim]++ < out_sizes[out_packed_dim]) {
5348 ivec4 user_coor = from_nchw_buffer_i(buf_indices[i], in_sizes);
5449 ivec4 in_pos_elem = to_texture_elem_pos(user_coor, in_sizes, in_packed_dim);
55- VEC4_T intex = texelFetch(image_in , in_pos_elem.xyz, 0 );
50+ VEC4_T intex = texelFetch(t_in , in_pos_elem.xyz, 0 );
5651 value[i] = intex[in_pos_elem.w];
5752 }
5853 }
5954
60- imageStore(image_out , out_pos, value);
55+ imageStore(t_out , out_pos, value);
6156}
0 commit comments