aboutsummaryrefslogtreecommitdiff
path: root/tests/cases/draw_triangle_list_using_tessellation.vkscript
diff options
context:
space:
mode:
authordan sinclair <dj2@everburning.com>2019-03-06 09:01:46 -0500
committerGitHub <noreply@github.com>2019-03-06 09:01:46 -0500
commitab8c5378de88946f4636680738fd295d658496af (patch)
treeb041de4add9864bce8ba237356c9e7ffe412e7bf /tests/cases/draw_triangle_list_using_tessellation.vkscript
parent0242b3c38c2bdf3fb56b0f2c3b6c048899e9ea50 (diff)
downloadamber-ab8c5378de88946f4636680738fd295d658496af.tar.gz
Rename vkscript test files. (#332)
This CL changes the extension on the vkscript test files to be .vkscript instead of .amber.
Diffstat (limited to 'tests/cases/draw_triangle_list_using_tessellation.vkscript')
-rw-r--r--tests/cases/draw_triangle_list_using_tessellation.vkscript148
1 files changed, 148 insertions, 0 deletions
diff --git a/tests/cases/draw_triangle_list_using_tessellation.vkscript b/tests/cases/draw_triangle_list_using_tessellation.vkscript
new file mode 100644
index 0000000..89a5787
--- /dev/null
+++ b/tests/cases/draw_triangle_list_using_tessellation.vkscript
@@ -0,0 +1,148 @@
+# Copyright 2019 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.
+
+[require]
+tessellationShader
+
+[vertex shader]
+#version 450
+
+layout(location = 0) in vec4 position;
+layout(location = 1) in vec4 vert_color;
+layout(location = 0) out vec4 tsc_color;
+
+void main() {
+ gl_Position = position;
+ tsc_color = vert_color;
+}
+
+[tessellation control shader]
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(vertices = 3) out;
+
+layout(location = 0) in vec4 tsc_color[];
+layout(location = 0) out vec4 tse_color[];
+
+#define ID gl_InvocationID
+
+void main()
+{
+ gl_out[ID].gl_Position = gl_in[ID].gl_Position;
+ tse_color[ID] = tsc_color[ID];
+ if (ID == 0) {
+ gl_TessLevelInner[0] = 5;
+ gl_TessLevelOuter[0] = 4;
+ gl_TessLevelOuter[1] = 5;
+ gl_TessLevelOuter[2] = 6;
+ }
+}
+
+[tessellation evaluation shader]
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(triangles, equal_spacing, cw) in;
+
+layout(location = 0) in vec4 tse_color[];
+layout(location = 0) out vec4 frag_color;
+
+void main()
+{
+ vec4 p0 = gl_TessCoord.x * gl_in[0].gl_Position;
+ vec4 p1 = gl_TessCoord.y * gl_in[1].gl_Position;
+ vec4 p2 = gl_TessCoord.z * gl_in[2].gl_Position;
+ gl_Position = p0 + p1 + p2;
+
+ vec4 q0 = gl_TessCoord.x * tse_color[0];
+ vec4 q1 = gl_TessCoord.y * tse_color[1];
+ vec4 q2 = gl_TessCoord.z * tse_color[2];
+ frag_color = q0 + q1 + q2;
+}
+
+[fragment shader]
+#version 450
+
+layout(location = 0) in vec4 frag_color;
+layout(location = 0) out vec4 final_color;
+
+void main() {
+ final_color = frag_color;
+}
+
+[vertex data]
+# position vert_color
+ 0/R8G8_SNORM 1/R8G8B8_UNORM
+
+# Red for entire frame
+# R8 G8 R8 G8 B8
+ -128 -128 255 0 0
+ 127 127 255 0 0
+ -128 127 255 0 0
+
+ -128 -128 255 0 0
+ 127 127 255 0 0
+ 127 -128 255 0 0
+
+# Green for half frame
+# R8 G8 R8 G8 B8
+ 0 -128 0 255 0
+ 127 127 0 255 0
+ 0 127 0 255 0
+
+ 0 -128 0 255 0
+ 127 127 0 255 0
+ 127 -128 0 255 0
+
+# Blue for quarter frame
+# R8 G8 R8 G8 B8
+ -128 0 0 0 255
+ 0 127 0 0 255
+ -128 127 0 0 255
+
+ -128 0 0 0 255
+ 0 127 0 0 255
+ 0 0 0 0 255
+
+# Mixed color for quarter frame
+# R8 G8 R8 G8 B8
+ 0 0 127 127 127
+ 127 127 127 127 127
+ 0 127 127 127 127
+
+ 0 0 127 127 127
+ 127 127 127 127 127
+ 127 0 127 127 127
+
+[test]
+clear
+
+draw arrays PATCH_LIST 0 6
+relative probe rect rgb (0.0, 0.0, 1.0, 1.0) (1.0, 0, 0)
+
+draw arrays PATCH_LIST 6 6
+relative probe rect rgb (0.0, 0.0, 0.5, 1.0) (1.0, 0, 0)
+relative probe rect rgb (0.5, 0.0, 0.5, 1.0) (0, 1.0, 0)
+
+draw arrays PATCH_LIST 12 6
+relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0, 0)
+relative probe rect rgb (0.5, 0.0, 0.5, 1.0) (0, 1.0, 0)
+relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0, 0, 1.0)
+
+draw arrays PATCH_LIST 18 6
+relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0, 0)
+relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0, 1.0, 0)
+relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0, 0, 1.0)
+relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (0.5, 0.5, 0.5)