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