#!amber # Copyright 2020 The Amber Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https:#www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. SET ENGINE_DATA fence_timeout_ms 1000000 VIRTUAL_FILE "vs.hlsl" struct VS_OUTPUT { float4 pos : SV_POSITION; float4 color : COLOR; }; VS_OUTPUT main(float4 pos : POSITION) { VS_OUTPUT vout; vout.pos = pos; vout.color = float4(25.1 / 255.0, 50.1 / 255.0, 100.1 / 255.0, 1.0); return vout; } END VIRTUAL_FILE "fs.hlsl" float4 main(float4 color : COLOR) : SV_TARGET { int r = color.r * 255; int g = color.g * 255; int b = color.b * 255; int a = color.a * 255; return color; } END SHADER vertex vtex_shader HLSL VIRTUAL_FILE "vs.hlsl" SHADER fragment frag_shader HLSL VIRTUAL_FILE "fs.hlsl" BUFFER position_buf DATA_TYPE R8G8_SNORM DATA # Full frame -128 -128 127 127 -128 127 -128 -128 127 127 127 -128 END BUFFER framebuffer FORMAT B8G8R8A8_UNORM PIPELINE graphics pipeline FRAMEBUFFER_SIZE 32 32 ATTACH vtex_shader SHADER_OPTIMIZATION vtex_shader --inline-entry-points-exhaustive --eliminate-dead-functions END ATTACH frag_shader SHADER_OPTIMIZATION frag_shader --inline-entry-points-exhaustive --eliminate-dead-functions END VERTEX_DATA position_buf LOCATION 0 BIND BUFFER framebuffer AS color LOCATION 0 END CLEAR pipeline DEBUG pipeline DRAW_ARRAY AS TRIANGLE_LIST START_IDX 0 COUNT 6 THREAD FRAGMENT_WINDOW_SPACE_POSITION 10 10 EXPECT LOCATION "fs.hlsl" 2 " int r = color.r * 255;" STEP_IN EXPECT LOCAL "r" EQ 25 EXPECT LOCATION "fs.hlsl" 3 " int g = color.g * 255;" STEP_IN EXPECT LOCAL "r" EQ 25 EXPECT LOCAL "g" EQ 50 EXPECT LOCATION "fs.hlsl" 4 " int b = color.b * 255;" STEP_IN EXPECT LOCAL "r" EQ 25 EXPECT LOCAL "g" EQ 50 EXPECT LOCAL "b" EQ 100 EXPECT LOCATION "fs.hlsl" 5 " int a = color.a * 255;" STEP_IN EXPECT LOCAL "r" EQ 25 EXPECT LOCAL "g" EQ 50 EXPECT LOCAL "b" EQ 100 EXPECT LOCAL "a" EQ 255 EXPECT LOCATION "fs.hlsl" 6 " return color;" CONTINUE END END EXPECT framebuffer IDX 0 0 SIZE 32 32 EQ_RGB 25 50 100