From e9afe474fdd076edc1961277a57bd5cca64cb525 Mon Sep 17 00:00:00 2001 From: Ari Suonpaa Date: Tue, 12 May 2020 09:53:41 +0300 Subject: [PATCH] Test multiple fragment output locations Added tests that write to multiple fragment output locations. One test group uses an output array and another shuffles the writes based on fragment coordinates. VK-GL-CTS Issue: 2179 New tests: dEQP-VK.draw.output_location.* Components: Vulkan Change-Id: If3a5d49dd171874b6451581616ca67141124a283 --- AndroidGen.mk | 1 + android/cts/master/vk-master-2020-03-01.txt | 44 +++++ android/cts/master/vk-master.txt | 44 +++++ ...10g11r11-ufloat-pack32-highp-output-float.amber | 155 ++++++++++++++++ ...b10g11r11-ufloat-pack32-highp-output-vec2.amber | 155 ++++++++++++++++ .../array/b10g11r11-ufloat-pack32-highp.amber | 155 ++++++++++++++++ ...b10g11r11-ufloat-pack32-lowp-output-float.amber | 155 ++++++++++++++++ .../b10g11r11-ufloat-pack32-lowp-output-vec2.amber | 155 ++++++++++++++++ .../array/b10g11r11-ufloat-pack32-lowp.amber | 155 ++++++++++++++++ ...g11r11-ufloat-pack32-mediump-output-float.amber | 155 ++++++++++++++++ ...0g11r11-ufloat-pack32-mediump-output-vec2.amber | 155 ++++++++++++++++ .../array/b10g11r11-ufloat-pack32-mediump.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-highp-output-vec2.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-highp-output-vec3.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-highp.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-lowp-output-vec2.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-lowp-output-vec3.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-lowp.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-mediump-output-vec2.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-mediump-output-vec3.amber | 155 ++++++++++++++++ .../array/b8g8r8a8-unorm-mediump.amber | 155 ++++++++++++++++ .../array/r16g16-sfloat-highp-output-float.amber | 155 ++++++++++++++++ .../array/r16g16-sfloat-highp.amber | 155 ++++++++++++++++ .../array/r16g16-sfloat-lowp-output-float.amber | 155 ++++++++++++++++ .../output_location/array/r16g16-sfloat-lowp.amber | 155 ++++++++++++++++ .../array/r16g16-sfloat-mediump-output-float.amber | 155 ++++++++++++++++ .../array/r16g16-sfloat-mediump.amber | 155 ++++++++++++++++ .../output_location/array/r32-sfloat-highp.amber | 155 ++++++++++++++++ .../output_location/array/r32-sfloat-lowp.amber | 155 ++++++++++++++++ .../output_location/array/r32-sfloat-mediump.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-highp-output-vec2.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-highp-output-vec3.amber | 155 ++++++++++++++++ .../array/r32g32b32a32-sfloat-highp.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-lowp-output-vec2.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-lowp-output-vec3.amber | 155 ++++++++++++++++ .../array/r32g32b32a32-sfloat-lowp.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-mediump-output-vec2.amber | 155 ++++++++++++++++ .../r32g32b32a32-sfloat-mediump-output-vec3.amber | 155 ++++++++++++++++ .../array/r32g32b32a32-sfloat-mediump.amber | 155 ++++++++++++++++ .../array/r8g8-uint-highp-output-uint.amber | 155 ++++++++++++++++ .../output_location/array/r8g8-uint-highp.amber | 155 ++++++++++++++++ .../array/r8g8-uint-lowp-output-uint.amber | 155 ++++++++++++++++ .../output_location/array/r8g8-uint-lowp.amber | 155 ++++++++++++++++ .../array/r8g8-uint-mediump-output-uint.amber | 155 ++++++++++++++++ .../output_location/array/r8g8-uint-mediump.amber | 155 ++++++++++++++++ .../shuffle/inputs-outputs-mod.amber | 202 +++++++++++++++++++++ .../output_location/shuffle/inputs-outputs.amber | 136 ++++++++++++++ .../vulkancts/modules/vulkan/draw/CMakeLists.txt | 2 + .../vulkan/draw/vktDrawOutputLocationTests.cpp | 137 ++++++++++++++ .../vulkan/draw/vktDrawOutputLocationTests.hpp | 40 ++++ .../vulkancts/modules/vulkan/draw/vktDrawTests.cpp | 2 + external/vulkancts/mustpass/master/vk-default.txt | 44 +++++ 52 files changed, 7162 insertions(+) create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber create mode 100644 external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber create mode 100644 external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp create mode 100644 external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp diff --git a/AndroidGen.mk b/AndroidGen.mk index d1f1a10..3cb30fe 100644 --- a/AndroidGen.mk +++ b/AndroidGen.mk @@ -130,6 +130,7 @@ LOCAL_SRC_FILES := \ external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp \ external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp \ external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp \ + external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp \ external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp \ external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp \ external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp \ diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt index 97cfc64..68f6127 100644 --- a/android/cts/master/vk-master-2020-03-01.txt +++ b/android/cts/master/vk-master-2020-03-01.txt @@ -145717,6 +145717,50 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r32-sfloat-highp +dEQP-VK.draw.output_location.array.r32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32-sfloat-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-highp +dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-lowp +dEQP-VK.draw.output_location.array.r8g8-uint-lowp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint +dEQP-VK.draw.output_location.shuffle.inputs-outputs +dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod dEQP-VK.compute.basic.concurrent_compute dEQP-VK.compute.cooperative_matrix.length.float32_float32.buffer.rowmajor dEQP-VK.compute.cooperative_matrix.length.float32_float32.buffer.colmajor diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index d383ebb..7654a63 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -448434,6 +448434,50 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r32-sfloat-highp +dEQP-VK.draw.output_location.array.r32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32-sfloat-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-highp +dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-lowp +dEQP-VK.draw.output_location.array.r8g8-uint-lowp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint +dEQP-VK.draw.output_location.shuffle.inputs-outputs +dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod dEQP-VK.compute.basic.empty_shader dEQP-VK.compute.basic.concurrent_compute dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber new file mode 100644 index 0000000..aae7452 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out highp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out highp float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber new file mode 100644 index 0000000..e70eb2b --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out highp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out highp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber new file mode 100644 index 0000000..fbcd9f5 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out highp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out highp vec3 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber new file mode 100644 index 0000000..bd0d5ce --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out lowp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out lowp float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber new file mode 100644 index 0000000..ff63314 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out lowp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out lowp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber new file mode 100644 index 0000000..9b02cb9 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out lowp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out lowp vec3 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber new file mode 100644 index 0000000..62c1559 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out mediump float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out mediump float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber new file mode 100644 index 0000000..f45a265 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out mediump vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out mediump vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber new file mode 100644 index 0000000..6625674 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in[3]; +layout(location = 0) smooth out vec3 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in[3]; +layout(location = 0) out mediump vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out mediump vec3 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32 +BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32 + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber new file mode 100644 index 0000000..c58c617 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber new file mode 100644 index 0000000..d0b5d13 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber new file mode 100644 index 0000000..429f3ad --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber new file mode 100644 index 0000000..97e38af --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber new file mode 100644 index 0000000..d513377 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber new file mode 100644 index 0000000..909a486 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber new file mode 100644 index 0000000..6818bd4 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber new file mode 100644 index 0000000..5a0858f --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber new file mode 100644 index 0000000..ee040c1 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +255 0 0 255 +END + +BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA + 0 0 255 255 +255 255 0 255 +255 0 0 255 + 0 255 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber new file mode 100644 index 0000000..9bf2fbd --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out highp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out highp float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber new file mode 100644 index 0000000..f83c249 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out highp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out highp vec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber new file mode 100644 index 0000000..8bfe403 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out lowp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out lowp float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber new file mode 100644 index 0000000..91f210e --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out lowp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out lowp vec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber new file mode 100644 index 0000000..37b6d42 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out mediump float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out mediump float frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber new file mode 100644 index 0000000..ab6dd50 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in[3]; +layout(location = 0) smooth out vec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in[3]; +layout(location = 0) out mediump vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec2 color_in; +layout(location = 0) smooth out vec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec2 color_in; +layout(location = 0) out mediump vec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R16G16_SFLOAT +BUFFER framebuffer1 FORMAT R16G16_SFLOAT +BUFFER framebuffer2 FORMAT R16G16_SFLOAT + +BUFFER ref0 FORMAT R16G16_SFLOAT +BUFFER ref1 FORMAT R16G16_SFLOAT +BUFFER ref2 FORMAT R16G16_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA +1.0 0.0 +0.0 1.0 +0.0 0.0 +1.0 1.0 +END + +BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA +0.0 1.0 +0.0 0.0 +1.0 1.0 +1.0 0.0 +END + +BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA +0.0 0.0 +1.0 1.0 +1.0 0.0 +0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber new file mode 100644 index 0000000..e222881 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in[3]; +layout(location = 0) smooth out float color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in float color_in[3]; +layout(location = 0) out highp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in; +layout(location = 0) smooth out float color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in float color_in; +layout(location = 0) out highp float frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32_SFLOAT +BUFFER framebuffer1 FORMAT R32_SFLOAT +BUFFER framebuffer2 FORMAT R32_SFLOAT + +BUFFER ref0 FORMAT R32_SFLOAT +BUFFER ref1 FORMAT R32_SFLOAT +BUFFER ref2 FORMAT R32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32_SFLOAT DATA +1.0 +0.0 +0.0 +1.0 +END + +BUFFER color1 DATA_TYPE R32_SFLOAT DATA +0.0 +0.0 +1.0 +1.0 +END + +BUFFER color2 DATA_TYPE R32_SFLOAT DATA +0.0 +1.0 +1.0 +0.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber new file mode 100644 index 0000000..6fb5f17 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in[3]; +layout(location = 0) smooth out float color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in float color_in[3]; +layout(location = 0) out lowp float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in; +layout(location = 0) smooth out float color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in float color_in; +layout(location = 0) out lowp float frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32_SFLOAT +BUFFER framebuffer1 FORMAT R32_SFLOAT +BUFFER framebuffer2 FORMAT R32_SFLOAT + +BUFFER ref0 FORMAT R32_SFLOAT +BUFFER ref1 FORMAT R32_SFLOAT +BUFFER ref2 FORMAT R32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32_SFLOAT DATA +1.0 +0.0 +0.0 +1.0 +END + +BUFFER color1 DATA_TYPE R32_SFLOAT DATA +0.0 +0.0 +1.0 +1.0 +END + +BUFFER color2 DATA_TYPE R32_SFLOAT DATA +0.0 +1.0 +1.0 +0.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber new file mode 100644 index 0000000..769eade --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in[3]; +layout(location = 0) smooth out float color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in float color_in[3]; +layout(location = 0) out mediump float frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in float color_in; +layout(location = 0) smooth out float color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in float color_in; +layout(location = 0) out mediump float frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32_SFLOAT +BUFFER framebuffer1 FORMAT R32_SFLOAT +BUFFER framebuffer2 FORMAT R32_SFLOAT + +BUFFER ref0 FORMAT R32_SFLOAT +BUFFER ref1 FORMAT R32_SFLOAT +BUFFER ref2 FORMAT R32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32_SFLOAT DATA +1.0 +0.0 +0.0 +1.0 +END + +BUFFER color1 DATA_TYPE R32_SFLOAT DATA +0.0 +0.0 +1.0 +1.0 +END + +BUFFER color2 DATA_TYPE R32_SFLOAT DATA +0.0 +1.0 +1.0 +0.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber new file mode 100644 index 0000000..fbac98a --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber new file mode 100644 index 0000000..e1b0b29 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber new file mode 100644 index 0000000..fef288c --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out highp vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber new file mode 100644 index 0000000..5bab42a --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber new file mode 100644 index 0000000..213ab95 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber new file mode 100644 index 0000000..7abe705 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out lowp vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out lowp vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber new file mode 100644 index 0000000..f158f74 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xy; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec2 frag_out; +void main() +{ + frag_out = color_in.xy; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber new file mode 100644 index 0000000..eb9c9ca --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec3 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].xyz; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec3 frag_out; +void main() +{ + frag_out = color_in.xyz; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber new file mode 100644 index 0000000..7185e28 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in[3]; +layout(location = 0) smooth out vec4 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in[3]; +layout(location = 0) out mediump vec4 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out mediump vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT +BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT + +BUFFER ref0 FORMAT R32G32B32A32_SFLOAT +BUFFER ref1 FORMAT R32G32B32A32_SFLOAT +BUFFER ref2 FORMAT R32G32B32A32_SFLOAT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +END + +BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 1.0 0.0 1.0 +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +END + +BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA +0.0 0.0 1.0 1.0 +1.0 1.0 0.0 1.0 +1.0 0.0 0.0 1.0 +0.0 1.0 0.0 1.0 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber new file mode 100644 index 0000000..395996c --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out highp uint frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out highp uint frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber new file mode 100644 index 0000000..b67e53b --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out highp uvec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out highp uvec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber new file mode 100644 index 0000000..1b9cf1f --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out lowp uint frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out lowp uint frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber new file mode 100644 index 0000000..cd7d8af --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out lowp uvec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out lowp uvec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber new file mode 100644 index 0000000..31ae57b --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out mediump uint frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i].x; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out mediump uint frag_out; +void main() +{ + frag_out = color_in.x; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber new file mode 100644 index 0000000..30a46c9 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber @@ -0,0 +1,155 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in[3]; +layout(location = 0) flat out uvec2 color_out[3]; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + for (int i = 0; i < 3; i++) + color_out[i] = color_in[i]; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in[3]; +layout(location = 0) out mediump uvec2 frag_out[3]; +void main() +{ + for (int i = 0; i < 3; i++) + frag_out[i] = color_in[i]; +} +END + +SHADER vertex vert_shader_ref GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out mediump uvec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R8G8_UINT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT R8G8_UINT + +BUFFER ref0 FORMAT R8G8_UINT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT R8G8_UINT + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8_UINT DATA +255 0 + 0 255 + 0 0 +255 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R8G8_UINT DATA + 0 0 +255 255 +255 0 + 0 255 +END + + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref + ATTACH frag_shader_ref + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +CLEAR_COLOR pipeline 0 0 0 0 +CLEAR pipeline +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref0 0 0 0 0 +CLEAR pipeline_ref0 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref1 0 0 0 0 +CLEAR pipeline_ref1 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +CLEAR_COLOR pipeline_ref2 0 0 0 0 +CLEAR pipeline_ref2 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber new file mode 100644 index 0000000..7a9c6d7 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber @@ -0,0 +1,202 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in0; +layout(location = 2) in uvec2 color_in1; +layout(location = 3) in float color_in2; +layout(location = 0) smooth out vec4 color_out0; +layout(location = 1) flat out uvec2 color_out1; +layout(location = 2) smooth out float color_out2; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out0 = color_in0; + color_out1 = color_in1; + color_out2 = color_in2; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in0; +layout(location = 1) flat in uvec2 color_in1; +layout(location = 2) smooth in float color_in2; +layout(location = 0) out mediump float frag_out0; +layout(location = 1) out lowp uvec2 frag_out1; +layout(location = 2) out highp vec4 frag_out2; +void main() +{ + frag_out0 = color_in2; + frag_out1 = color_in1; + frag_out2 = color_in0; +} +END + +SHADER vertex vert_shader_ref0 GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec3 color_in; +layout(location = 0) smooth out vec3 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref0 GLSL +#version 430 +layout(location = 0) smooth in vec3 color_in; +layout(location = 0) out mediump vec3 frag_out; +void main() +{ + frag_out = color_in; +} +END + +SHADER vertex vert_shader_ref1 GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in uvec2 color_in; +layout(location = 0) flat out uvec2 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref1 GLSL +#version 430 +layout(location = 0) flat in uvec2 color_in; +layout(location = 0) out lowp uvec2 frag_out; +void main() +{ + frag_out = color_in; +} +END + +SHADER vertex vert_shader_ref2 GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in; +layout(location = 0) smooth out vec4 color_out; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out = color_in; +} +END + +SHADER fragment frag_shader_ref2 GLSL +#version 430 +layout(location = 0) smooth in vec4 color_in; +layout(location = 0) out highp vec4 frag_out; +void main() +{ + frag_out = color_in; +} +END + +BUFFER framebuffer0 FORMAT R16_SFLOAT +BUFFER framebuffer1 FORMAT R8G8_UINT +BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT R16_SFLOAT +BUFFER ref1 FORMAT R8G8_UINT +BUFFER ref2 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA +255 0 0 255 + 0 255 0 255 + 0 0 255 255 +255 255 0 255 +END + +BUFFER color1 DATA_TYPE R8G8_UINT DATA + 0 255 + 0 0 +255 255 +255 0 +END + +BUFFER color2 DATA_TYPE R16_SFLOAT DATA +0.5 +1.0 +0.3 +0.2 +END + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + VERTEX_DATA color2 LOCATION 3 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + BIND BUFFER framebuffer2 AS color LOCATION 2 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref0 + ATTACH frag_shader_ref0 + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color2 LOCATION 1 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref1 + ATTACH frag_shader_ref1 + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color1 LOCATION 1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref2 + ATTACH vert_shader_ref2 + ATTACH frag_shader_ref2 + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + BIND BUFFER ref2 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 +EXPECT framebuffer2 EQ_BUFFER ref2 diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber new file mode 100644 index 0000000..b9582f5 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber @@ -0,0 +1,136 @@ +#!amber +# Copyright 2020 Google LLC +# +# 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 +# +# http://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. + +SHADER vertex vert_shader GLSL +#version 430 +layout(location = 0) in vec2 position_in; +layout(location = 1) in vec4 color_in0; +layout(location = 2) in vec4 color_in1; +layout(location = 0) out vec4 color_out0; +layout(location = 1) out vec4 color_out1; + +void main() +{ + gl_Position = vec4(position_in, 0, 1); + color_out0 = color_in0; + color_out1 = color_in1; +} +END + +SHADER fragment frag_shader GLSL +#version 430 +layout(location = 0) in vec4 color_in0; +layout(location = 1) in vec4 color_in1; +layout(location = 0) out vec4 frag_out0; +layout(location = 1) out vec4 frag_out1; +void main() +{ + if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2)) + { + frag_out0 = color_in0; + frag_out1 = color_in1; + } + else + { + frag_out0 = color_in1; + frag_out1 = color_in0; + } +} +END + +SHADER vertex vert_shader_ref PASSTHROUGH + +SHADER fragment frag_shader_ref0 GLSL +#version 430 +layout(location = 0) out vec4 frag_out; +void main() +{ + if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2)) + frag_out = vec4(1, 0, 0, 1); + else + frag_out = vec4(0, 1, 0, 1); +} +END + +SHADER fragment frag_shader_ref1 GLSL +#version 430 +layout(location = 0) out vec4 frag_out; +void main() +{ + if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2)) + frag_out = vec4(0, 1, 0, 1); + else + frag_out = vec4(1, 0, 0, 1); +} +END + + +BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM +BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM + +BUFFER ref0 FORMAT B8G8R8A8_UNORM +BUFFER ref1 FORMAT B8G8R8A8_UNORM + +BUFFER position DATA_TYPE vec2 DATA +-1.0 -1.0 + 1.0 -1.0 + 1.0 1.0 +-1.0 1.0 +END + +BUFFER color0 DATA_TYPE R8G8B8A8_UNORM DATA +255 0 0 255 +255 0 0 255 +255 0 0 255 +255 0 0 255 +END + +BUFFER color1 DATA_TYPE R8G8B8A8_UNORM DATA + 0 255 0 255 + 0 255 0 255 + 0 255 0 255 + 0 255 0 255 +END + +PIPELINE graphics pipeline + ATTACH vert_shader + ATTACH frag_shader + VERTEX_DATA position LOCATION 0 + VERTEX_DATA color0 LOCATION 1 + VERTEX_DATA color1 LOCATION 2 + BIND BUFFER framebuffer0 AS color LOCATION 0 + BIND BUFFER framebuffer1 AS color LOCATION 1 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref0 + ATTACH vert_shader_ref + ATTACH frag_shader_ref0 + BIND BUFFER ref0 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +PIPELINE graphics pipeline_ref1 + ATTACH vert_shader_ref + ATTACH frag_shader_ref1 + BIND BUFFER ref1 AS color LOCATION 0 + FRAMEBUFFER_SIZE 60 60 +END + +RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4 +RUN pipeline_ref0 DRAW_RECT POS 0 0 SIZE 60 60 +RUN pipeline_ref1 DRAW_RECT POS 0 0 SIZE 60 60 +EXPECT framebuffer0 EQ_BUFFER ref0 +EXPECT framebuffer1 EQ_BUFFER ref1 diff --git a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt index f24ec31..8c8bb09 100644 --- a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt +++ b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt @@ -44,6 +44,8 @@ set(DEQP_VK_DRAW_SRCS vktDrawDiscardRectanglesTests.cpp vktDrawExplicitVertexParameterTests.cpp vktDrawExplicitVertexParameterTests.hpp + vktDrawOutputLocationTests.cpp + vktDrawOutputLocationTests.hpp ) set(DEQP_VK_DRAW_LIBS diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp new file mode 100644 index 0000000..30c1cd4 --- /dev/null +++ b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp @@ -0,0 +1,137 @@ +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2020 Google Inc. + * Copyright (c) 2020 The Khronos Group Inc. + * + * 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 + * + * http://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. + * + *//*! + * \file + * \brief Fragment output location tests + *//*--------------------------------------------------------------------*/ + +#include "vktDrawOutputLocationTests.hpp" +#include "vktTestGroupUtil.hpp" +#include "amber/vktAmberTestCase.hpp" + +#include "tcuTestCase.hpp" + +#include + +namespace vkt +{ +namespace Draw +{ +namespace +{ + +void createTests (tcu::TestCaseGroup* testGroup) +{ + tcu::TestContext& testCtx = testGroup->getTestContext(); + + // .array + { + tcu::TestCaseGroup* const array = new tcu::TestCaseGroup(testCtx, "array", "Test output location array"); + static const char dataDir[] = "draw/output_location/array"; + + static const std::string cases[] = + { + "b10g11r11-ufloat-pack32-highp", + "b10g11r11-ufloat-pack32-highp-output-float", + "b10g11r11-ufloat-pack32-highp-output-vec2", + "b10g11r11-ufloat-pack32-lowp", + "b10g11r11-ufloat-pack32-lowp-output-float", + "b10g11r11-ufloat-pack32-lowp-output-vec2", + "b10g11r11-ufloat-pack32-mediump", + "b10g11r11-ufloat-pack32-mediump-output-float", + "b10g11r11-ufloat-pack32-mediump-output-vec2", + "b8g8r8a8-unorm-highp", + "b8g8r8a8-unorm-highp-output-vec2", + "b8g8r8a8-unorm-highp-output-vec3", + "b8g8r8a8-unorm-lowp", + "b8g8r8a8-unorm-lowp-output-vec2", + "b8g8r8a8-unorm-lowp-output-vec3", + "b8g8r8a8-unorm-mediump", + "b8g8r8a8-unorm-mediump-output-vec2", + "b8g8r8a8-unorm-mediump-output-vec3", + "r16g16-sfloat-highp", + "r16g16-sfloat-highp-output-float", + "r16g16-sfloat-lowp", + "r16g16-sfloat-lowp-output-float", + "r16g16-sfloat-mediump", + "r16g16-sfloat-mediump-output-float", + "r32g32b32a32-sfloat-highp", + "r32g32b32a32-sfloat-highp-output-vec2", + "r32g32b32a32-sfloat-highp-output-vec3", + "r32g32b32a32-sfloat-lowp", + "r32g32b32a32-sfloat-lowp-output-vec2", + "r32g32b32a32-sfloat-lowp-output-vec3", + "r32g32b32a32-sfloat-mediump", + "r32g32b32a32-sfloat-mediump-output-vec2", + "r32g32b32a32-sfloat-mediump-output-vec3", + "r32-sfloat-highp", + "r32-sfloat-lowp", + "r32-sfloat-mediump", + "r8g8-uint-highp", + "r8g8-uint-highp-output-uint", + "r8g8-uint-lowp", + "r8g8-uint-lowp-output-uint", + "r8g8-uint-mediump", + "r8g8-uint-mediump-output-uint" + }; + + testGroup->addChild(array); + + for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i) + { + const std::string fileName = cases[i] + ".amber"; + cts_amber::AmberTestCase* testCase = cts_amber::createAmberTestCase(testCtx, cases[i].c_str(), "", dataDir, fileName); + + array->addChild(testCase); + } + } + + // .shuffle + { + tcu::TestCaseGroup* const shuffle = new tcu::TestCaseGroup(testCtx, "shuffle", "Test output location shuffling"); + static const char dataDir[] = "draw/output_location/shuffle"; + + static const std::string cases[] = + { + "inputs-outputs", + "inputs-outputs-mod" + }; + + testGroup->addChild(shuffle); + + for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i) + { + const std::string fileName = cases[i] + ".amber"; + cts_amber::AmberTestCase* testCase = cts_amber::createAmberTestCase(testCtx, cases[i].c_str(), "", dataDir, fileName); + + shuffle->addChild(testCase); + } + } +} + +} // anonymous + +tcu::TestCaseGroup* createOutputLocationTests (tcu::TestContext& testCtx) +{ + return createTestGroup(testCtx, "output_location", "Fragment output location tests", createTests); +} + +} // Draw +} // vkt diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp new file mode 100644 index 0000000..e0b1f23 --- /dev/null +++ b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp @@ -0,0 +1,40 @@ +#ifndef _VKTDRAWOUTPUTLOCATIONTESTS_HPP +#define _VKTDRAWOUTPUTLOCATIONTESTS_HPP +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2020 Google Inc. + * Copyright (c) 2020 The Khronos Group Inc. + * + * 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 + * + * http://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. + * + *//*! + * \file + * \brief Fragment output location tests + *//*--------------------------------------------------------------------*/ + +#include "vkDefs.hpp" +#include "vktTestCase.hpp" + +namespace vkt +{ +namespace Draw +{ + +tcu::TestCaseGroup* createOutputLocationTests (tcu::TestContext& testCtx); + +} // Draw +} // vkt + +#endif // _VKTDRAWOUTPUTLOCATIONTESTS_HPP diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp index 67a2b4f..0b5b63a 100644 --- a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp +++ b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp @@ -41,6 +41,7 @@ #include "vktDrawMultipleInterpolationTests.hpp" #include "vktDrawDiscardRectanglesTests.hpp" #include "vktDrawExplicitVertexParameterTests.hpp" +#include "vktDrawOutputLocationTests.hpp" namespace vkt { @@ -71,6 +72,7 @@ void createChildren (tcu::TestCaseGroup* group) group->addChild(createMultipleInterpolationTests (testCtx)); group->addChild(createDiscardRectanglesTests (testCtx)); group->addChild(createExplicitVertexParameterTests (testCtx)); + group->addChild(createOutputLocationTests (testCtx)); } } // anonymous diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt index bb15ba8..111e011 100644 --- a/external/vulkancts/mustpass/master/vk-default.txt +++ b/external/vulkancts/mustpass/master/vk-default.txt @@ -448347,6 +448347,50 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float +dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec3 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2 +dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp +dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp +dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp-output-float +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump +dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec3 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2 +dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3 +dEQP-VK.draw.output_location.array.r32-sfloat-highp +dEQP-VK.draw.output_location.array.r32-sfloat-lowp +dEQP-VK.draw.output_location.array.r32-sfloat-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-highp +dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-lowp +dEQP-VK.draw.output_location.array.r8g8-uint-lowp-output-uint +dEQP-VK.draw.output_location.array.r8g8-uint-mediump +dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint +dEQP-VK.draw.output_location.shuffle.inputs-outputs +dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod dEQP-VK.compute.basic.empty_shader dEQP-VK.compute.basic.concurrent_compute dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation -- 2.7.4