diff options
author | dan sinclair <dj2@everburning.com> | 2019-03-06 09:01:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-06 09:01:46 -0500 |
commit | ab8c5378de88946f4636680738fd295d658496af (patch) | |
tree | b041de4add9864bce8ba237356c9e7ffe412e7bf /tests/cases/draw_triangle_list_using_tessellation.vkscript | |
parent | 0242b3c38c2bdf3fb56b0f2c3b6c048899e9ea50 (diff) | |
download | amber-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.vkscript | 148 |
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) |