• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!amber
2# Copyright 2020 The Amber Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     https:#www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16SET ENGINE_DATA fence_timeout_ms 1000000
17
18VIRTUAL_FILE "vs.hlsl"
19struct VS_OUTPUT {
20  float4 pos : SV_POSITION;
21};
22
23VS_OUTPUT main(float4 pos : POSITION,
24               float4 color : COLOR) {
25  float a = 1.0;
26  float b = 2.0;
27  float c = 3.0;
28  float x = a + b + c;
29  {
30    float a = 3.0;
31    float b = 4.0;
32    x += a + b + c;
33    {
34      float a = 6.0;
35      x += a + b + c;
36    }
37    x += a + b + c;
38  }
39  x += a + b + c;
40
41  VS_OUTPUT vout;
42  vout.pos = pos;
43  vout.pos.w += x * 0.000001;
44  return vout;
45}
46END
47
48VIRTUAL_FILE "fs.hlsl"
49float4 main() : SV_TARGET {
50  return float4(1.0, 1.0, 1.0, 1.0);
51}
52END
53
54SHADER vertex vtex_shader HLSL VIRTUAL_FILE "vs.hlsl"
55SHADER fragment frag_shader HLSL VIRTUAL_FILE "fs.hlsl"
56
57BUFFER position_buf DATA_TYPE R8G8_SNORM DATA
58# Full frame
59-128 -128
60 127  127
61-128  127
62-128 -128
63 127  127
64 127 -128
65END
66
67BUFFER vert_color DATA_TYPE R8G8B8A8_UNORM DATA
68255   0   0 255
69255   0   0 255
70255   0   0 255
71255   0   0 255
72255   0   0 255
73255   0   0 255
74
75  0 255   0 255
76  0 255   0 255
77  0 255   0 255
78  0 255   0 255
79  0 255   0 255
80  0 255   0 255
81
82  0   0 255 255
83  0   0 255 255
84  0   0 255 255
85  0   0 255 255
86  0   0 255 255
87  0   0 255 255
88
89127 127 127 255
90127 127 127 255
91127 127 127 255
92127 127 127 255
93127 127 127 255
94127 127 127 255
95END
96
97BUFFER framebuffer FORMAT B8G8R8A8_UNORM
98
99PIPELINE graphics pipeline
100  ATTACH vtex_shader
101  SHADER_OPTIMIZATION vtex_shader
102    --legalize-hlsl
103  END
104
105  ATTACH frag_shader
106  SHADER_OPTIMIZATION frag_shader
107    --legalize-hlsl
108  END
109
110  VERTEX_DATA position_buf LOCATION 0
111  VERTEX_DATA vert_color LOCATION 1
112
113  BIND BUFFER framebuffer AS color LOCATION 0
114END
115
116CLEAR pipeline
117
118DEBUG pipeline DRAW_ARRAY AS TRIANGLE_LIST START_IDX 0 COUNT 6
119    THREAD VERTEX_INDEX 0
120        EXPECT LOCATION "vs.hlsl" 7 "  float a = 1.0;"
121        STEP_IN
122        EXPECT LOCATION "vs.hlsl" 8 "  float b = 2.0;"
123        EXPECT LOCAL "a" EQ 1.000000
124        STEP_IN
125        EXPECT LOCATION "vs.hlsl" 9 "  float c = 3.0;"
126        EXPECT LOCAL "a" EQ 1.000000
127        EXPECT LOCAL "b" EQ 2.000000
128        STEP_IN
129        EXPECT LOCATION "vs.hlsl" 10 "  float x = a + b + c;"
130        EXPECT LOCAL "a" EQ 1.000000
131        EXPECT LOCAL "b" EQ 2.000000
132        EXPECT LOCAL "c" EQ 3.000000
133        STEP_IN
134        EXPECT LOCATION "vs.hlsl" 12 "    float a = 3.0;"
135        EXPECT LOCAL "c" EQ 3.000000
136        EXPECT LOCAL "x" EQ 6.000000
137        STEP_IN
138        EXPECT LOCATION "vs.hlsl" 13 "    float b = 4.0;"
139        EXPECT LOCAL "a" EQ 3.000000
140        EXPECT LOCAL "c" EQ 3.000000
141        EXPECT LOCAL "x" EQ 6.000000
142        STEP_IN
143        EXPECT LOCATION "vs.hlsl" 14 "    x += a + b + c;"
144        EXPECT LOCAL "a" EQ 3.000000
145        EXPECT LOCAL "b" EQ 4.000000
146        EXPECT LOCAL "c" EQ 3.000000
147        EXPECT LOCAL "x" EQ 6.000000
148        STEP_IN
149        EXPECT LOCATION "vs.hlsl" 16 "      float a = 6.0;"
150        EXPECT LOCAL "b" EQ 4.000000
151        EXPECT LOCAL "c" EQ 3.000000
152        EXPECT LOCAL "x" EQ 16.000000
153        STEP_IN
154        EXPECT LOCATION "vs.hlsl" 17 "      x += a + b + c;"
155        EXPECT LOCAL "a" EQ 6.000000
156        EXPECT LOCAL "b" EQ 4.000000
157        EXPECT LOCAL "c" EQ 3.000000
158        EXPECT LOCAL "x" EQ 16.000000
159        STEP_IN
160        EXPECT LOCATION "vs.hlsl" 19 "    x += a + b + c;"
161        EXPECT LOCAL "a" EQ 3.000000
162        EXPECT LOCAL "b" EQ 4.000000
163        EXPECT LOCAL "c" EQ 3.000000
164        EXPECT LOCAL "x" EQ 29.000000
165        STEP_IN
166        EXPECT LOCATION "vs.hlsl" 21 "  x += a + b + c;"
167        EXPECT LOCAL "a" EQ 1.000000
168        EXPECT LOCAL "b" EQ 2.000000
169        EXPECT LOCAL "c" EQ 3.000000
170        EXPECT LOCAL "x" EQ 39.000000
171        STEP_IN
172        EXPECT LOCAL "x" EQ 45.000000
173        CONTINUE
174    END
175END
176
177EXPECT framebuffer IDX 0 0 SIZE 250 250 EQ_RGB 255 255 255
178