@@ -89,13 +89,15 @@ void main() {
8989
9090#else // USING_TEXTURE
9191
92+ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
93+
9294VEC4_T q_8w_linear(const ivec3 out_pos, const int K) {
93- ivec3 mat1_pos = ivec3 (0 , out_pos.yz);
94- ivec3 qmat2_pos = ivec3 (0 , out_pos.x * 4 , 0 );
95+ u16vec3 mat1_pos = u16vec3 (0 , out_pos.yz);
96+ u16vec3 qmat2_pos = u16vec3 (0 , out_pos.x * 4 , 0 );
9597
9698 VEC4_T outtex = VEC4_T(0 );
9799
98- const ivec3 scales_pos = ivec3 (out_pos.x, 0 , 0 );
100+ const u16vec3 scales_pos = u16vec3 (out_pos.x, 0 , 0 );
99101 const VEC4_T scales = load_texel(t_scales, scales_pos);
100102
101103 for (int i = 0 ; i < K; i += 4 ) {
@@ -104,11 +106,11 @@ VEC4_T q_8w_linear(const ivec3 out_pos, const int K) {
104106 const VEC4_T sums = VEC4_T(
105107 dot (mat1_tex, load_texel(t_qmat2, qmat2_pos) * scales.x),
106108 dot (mat1_tex,
107- load_texel(t_qmat2, qmat2_pos + ivec3 (0 , 1 , 0 )) * scales.y),
109+ load_texel(t_qmat2, qmat2_pos + u16vec3 (0 , 1 , 0 )) * scales.y),
108110 dot (mat1_tex,
109- load_texel(t_qmat2, qmat2_pos + ivec3 (0 , 2 , 0 )) * scales.z),
111+ load_texel(t_qmat2, qmat2_pos + u16vec3 (0 , 2 , 0 )) * scales.z),
110112 dot (mat1_tex,
111- load_texel(t_qmat2, qmat2_pos + ivec3 (0 , 3 , 0 )) * scales.w));
113+ load_texel(t_qmat2, qmat2_pos + u16vec3 (0 , 3 , 0 )) * scales.w));
112114
113115 outtex += sums;
114116
0 commit comments