@@ -89,13 +89,15 @@ void main() {
89
89
90
90
#else // USING_TEXTURE
91
91
92
+ #extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
93
+
92
94
VEC4_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 );
95
97
96
98
VEC4_T outtex = VEC4_T(0 );
97
99
98
- const ivec3 scales_pos = ivec3 (out_pos.x, 0 , 0 );
100
+ const u16vec3 scales_pos = u16vec3 (out_pos.x, 0 , 0 );
99
101
const VEC4_T scales = load_texel(t_scales, scales_pos);
100
102
101
103
for (int i = 0 ; i < K; i += 4 ) {
@@ -104,11 +106,11 @@ VEC4_T q_8w_linear(const ivec3 out_pos, const int K) {
104
106
const VEC4_T sums = VEC4_T(
105
107
dot (mat1_tex, load_texel(t_qmat2, qmat2_pos) * scales.x),
106
108
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),
108
110
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),
110
112
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));
112
114
113
115
outtex += sums;
114
116
0 commit comments