aboutsummaryrefslogtreecommitdiff
path: root/tests/spec/glsl-es-1.00/execution/variable-index-write/vs-varying-array-mat3-index-col-row-wr.shader_test
blob: 79b6f98d987f6524491bb09e6d293a8ca2816864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
# Test generated by:
# ../../../glsl-1.10/variable-index-write.sh 1.00

[require]
GLSL ES >= 1.00
GL ES >= 2.0

[vertex shader]
attribute vec4 vertex;
mat4 projection = mat4(
    2.0/250.0, 0.0, 0.0, -1.0,
    0.0, 2.0/250.0, 0.0, -1.0,
    0.0, 0.0, -1.0, 0.0,
    0.0, 0.0, 0.0, 1.0);
uniform mat3 src_matrix;
uniform vec3 v;
uniform vec3 expect;
uniform int index;
uniform int row;
uniform int col;
uniform float value;
varying mat3 dst_matrix[3];

void main()
{
    gl_Position = vertex;
    gl_Position *= projection;

    dst_matrix[0] = mat3(0.0);
    dst_matrix[1] = mat3(0.0);
    dst_matrix[2] = mat3(0.0);

    /* Patch the supplied matrix with the supplied value.  If the resulting
     * matrix is correct, it will transform the input vector to the expected
     * value.  Verify that the distance between the result and the expected
     * vector is less than epsilon.
     *
     * NOTE: This test assumes that reads of arrays using non-constant
     * indicies works correctly.  If reads and writes happen to fail in an
     * identical manner, this test may give false positives.
     */
    dst_matrix[index] = src_matrix;
    dst_matrix[index][col][row] = value;
}

[fragment shader]
precision highp float;
precision highp int;
uniform mat3 src_matrix;
uniform vec3 v;
uniform vec3 expect;
uniform int index;
uniform int row;
uniform int col;
uniform float value;
varying mat3 dst_matrix[3];

void main()
{
    gl_FragColor = (distance(dst_matrix[index] * v, expect) < 1e-6)
        ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
}

[test]
clear color 0.5 0.5 0.5 0.5
clear

uniform int index 0
uniform int col 0
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 666.0 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.493944462129466
draw rect 5 5 10 10
probe rgb 10 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 666.0 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.722190133917966
draw rect 5 20 10 10
probe rgb 10 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 666.0 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.239853948232558
draw rect 5 35 10 10
probe rgb 10 40 0.0 1.0 0.0

uniform int col 1
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 666.0 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.550143078409278
draw rect 20 5 10 10
probe rgb 25 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 666.0 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.591962645398579
draw rect 20 20 10 10
probe rgb 25 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 666.0 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.467616286531193
draw rect 20 35 10 10
probe rgb 25 40 0.0 1.0 0.0

uniform int col 2
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 666.0 0.511303112962423 0.270815003356504
uniform float value 0.850846377186973
draw rect 35 5 10 10
probe rgb 40 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 666.0 0.270815003356504
uniform float value 0.511303112962423
draw rect 35 20 10 10
probe rgb 40 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 666.0
uniform float value 0.270815003356504
draw rect 35 35 10 10
probe rgb 40 40 0.0 1.0 0.0

uniform int index 1
uniform int col 0
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 666.0 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.493944462129466
draw rect 60 5 10 10
probe rgb 65 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 666.0 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.722190133917966
draw rect 60 20 10 10
probe rgb 65 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 666.0 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.239853948232558
draw rect 60 35 10 10
probe rgb 65 40 0.0 1.0 0.0

uniform int col 1
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 666.0 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.550143078409278
draw rect 75 5 10 10
probe rgb 80 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 666.0 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.591962645398579
draw rect 75 20 10 10
probe rgb 80 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 666.0 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.467616286531193
draw rect 75 35 10 10
probe rgb 80 40 0.0 1.0 0.0

uniform int col 2
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 666.0 0.511303112962423 0.270815003356504
uniform float value 0.850846377186973
draw rect 90 5 10 10
probe rgb 95 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 666.0 0.270815003356504
uniform float value 0.511303112962423
draw rect 90 20 10 10
probe rgb 95 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 666.0
uniform float value 0.270815003356504
draw rect 90 35 10 10
probe rgb 95 40 0.0 1.0 0.0

uniform int index 2
uniform int col 0
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 666.0 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.493944462129466
draw rect 115 5 10 10
probe rgb 120 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 666.0 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.722190133917966
draw rect 115 20 10 10
probe rgb 120 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 666.0 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.239853948232558
draw rect 115 35 10 10
probe rgb 120 40 0.0 1.0 0.0

uniform int col 1
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 666.0 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.550143078409278
draw rect 130 5 10 10
probe rgb 135 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 666.0 0.467616286531193 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.591962645398579
draw rect 130 20 10 10
probe rgb 135 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 666.0 0.850846377186973 0.511303112962423 0.270815003356504
uniform float value 0.467616286531193
draw rect 130 35 10 10
probe rgb 135 40 0.0 1.0 0.0

uniform int col 2
uniform int row 0
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 666.0 0.511303112962423 0.270815003356504
uniform float value 0.850846377186973
draw rect 145 5 10 10
probe rgb 150 10 0.0 1.0 0.0

uniform int row 1
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 666.0 0.270815003356504
uniform float value 0.511303112962423
draw rect 145 20 10 10
probe rgb 150 25 0.0 1.0 0.0

uniform int row 2
uniform vec3 v 0.681652305322399 0.210426138878113 0.185916924650237
uniform vec3 expect 0.610649606928364 0.711906885823636 0.312244778977868
uniform mat3x3 src_matrix 0.493944462129466 0.722190133917966 0.239853948232558 0.550143078409278 0.591962645398579 0.467616286531193 0.850846377186973 0.511303112962423 666.0
uniform float value 0.270815003356504
draw rect 145 35 10 10
probe rgb 150 40 0.0 1.0 0.0