aboutsummaryrefslogtreecommitdiff
path: root/tests/spec/glsl-es-1.00/execution/variable-index-write/vs-varying-mat3-col-row-wr.shader_test
blob: b38fa70056376791f1ef75d1cbee486fc1a7559d (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
# 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 row;
uniform int col;
uniform float value;
varying mat3 dst_matrix;

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


    /* 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.
     */
    dst_matrix = src_matrix;
    dst_matrix[col][row] = value;
}

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

void main()
{
    gl_FragColor = (distance(dst_matrix * 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 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