]> git.tdb.fi Git - libs/gl.git/commitdiff
Fix GLSL test cases so they pass the basic tests
authorMikko Rasa <tdb@tdb.fi>
Sat, 9 Apr 2022 13:22:21 +0000 (16:22 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sat, 9 Apr 2022 16:05:05 +0000 (19:05 +0300)
Some changes had changed the compiler output, particularly acd7bb6 adding
an extra statement to the end of vertex shaders in OpenGL mode. Some
idempotence tests still fail because of this.

73 files changed:
tests/glsl/alias_types.glsl
tests/glsl/arithmetic_assignment.glsl
tests/glsl/array_element_assignment.glsl
tests/glsl/array_in_uniform_block.glsl
tests/glsl/binary_operators.glsl
tests/glsl/chained_member_access.glsl
tests/glsl/complex_constant_condition_removal.glsl
tests/glsl/complex_loop_increment.glsl
tests/glsl/conditional_multiple_emitvertex.glsl
tests/glsl/constant_condition_removal.glsl
tests/glsl/constant_last_argument.glsl
tests/glsl/constant_ternary_removal.glsl
tests/glsl/constructors.glsl
tests/glsl/dead_loop_removal.glsl
tests/glsl/empty_conditional_removal.glsl
tests/glsl/empty_loop_removal.glsl
tests/glsl/expression_inline.glsl
tests/glsl/expression_inline_iteration.glsl
tests/glsl/expression_inline_precedence.glsl
tests/glsl/function_arguments_inline.glsl
tests/glsl/function_inline.glsl
tests/glsl/function_inline_global_name_conflict.glsl
tests/glsl/function_inline_in_condition.glsl
tests/glsl/function_inline_in_iteration.glsl
tests/glsl/function_inline_multi_name_conflict.glsl
tests/glsl/function_inline_name_conflict.glsl
tests/glsl/function_inline_parameter_name_conflict.glsl
tests/glsl/function_inline_reorder.glsl
tests/glsl/function_inline_return_conflict.glsl
tests/glsl/function_overloading.glsl
tests/glsl/function_override.glsl
tests/glsl/geometry_interface_block.glsl
tests/glsl/geometry_passthrough.glsl
tests/glsl/ignore_array_in_geometry_passthrough.glsl
tests/glsl/inexact_function_argument_type.glsl
tests/glsl/interface_block.glsl
tests/glsl/keep_empty_loop_with_side_effects.glsl
tests/glsl/keep_spec_constants_in_module.glsl
tests/glsl/keep_used_function.glsl
tests/glsl/matrix_from_elements.glsl
tests/glsl/member_assignment.glsl
tests/glsl/multiline_function_inline.glsl
tests/glsl/multiple_emitvertex.glsl
tests/glsl/multiple_function_inline.glsl
tests/glsl/named_interface_block.glsl
tests/glsl/nested_function_inline.glsl
tests/glsl/nested_member_access.glsl
tests/glsl/nested_ternary.glsl
tests/glsl/no_op_conversion.glsl
tests/glsl/parameter_composite_access.glsl
tests/glsl/parentheses.glsl
tests/glsl/partially_unused_interface_block.glsl
tests/glsl/passthrough.glsl
tests/glsl/passthrough_declaration_order.glsl
tests/glsl/redeclare_builtin.glsl
tests/glsl/redundant_geometry_gl_position.glsl
tests/glsl/redundant_gl_position.glsl
tests/glsl/referenced_but_unassigned_output.glsl
tests/glsl/return_type_conversion.glsl
tests/glsl/specialization_constants.glsl
tests/glsl/struct_in_anonymous_block.glsl
tests/glsl/swizzle_assignment.glsl
tests/glsl/ternary_operator.glsl
tests/glsl/unary_operators.glsl
tests/glsl/uniform_location_allocation.glsl
tests/glsl/unsigned_int.glsl
tests/glsl/unused_component_assignment.glsl
tests/glsl/unused_function_removal.glsl
tests/glsl/unused_interface_block_removal.glsl
tests/glsl/unused_variable_removal.glsl
tests/glsl/unused_variable_removal_iteration.glsl
tests/glsl/use_parameter_in_loop.glsl
tests/glsl/variable_assignment_subscript.glsl

index 0fda73e30ecc5c9d6b50bf83bc0b9118559c2eaf..5164867dfd160e2e8544589c3acf8b8ef964706d 100644 (file)
@@ -1,7 +1,10 @@
 typedef vec4 myvec4;
 typedef mat4x4 mymat4;
 
-uniform mymat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mymat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in myvec4 position;
@@ -10,8 +13,13 @@ void main()
        gl_Position = mvp*position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 void main()
 {
index c3bcdad070b5f6dc511cca9f73f78054ef69cf33..d0898fbeb61c2b8c3f3eecbd2f199e0102c28648 100644 (file)
@@ -25,6 +25,8 @@ void main()
        frag_color = vec4(color, 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 mvp;
 layout(location=0) in vec4 position;
@@ -37,6 +39,7 @@ void main()
   light = normal.z;
   _vs_out_texcoord = texcoord;
   gl_Position = mvp*position;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index eb98ddc4d001d37495cd33fbe586271b42fd8d0f..e5a09358b68ca33a76697a50d152683f633e8b41 100644 (file)
@@ -11,6 +11,8 @@ void main()
        gl_Position = vec4(s);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 void main()
 {
index 3d53b3dece3c599ad8231d808c661be5754b045b..c2e09f3e7eed4b60ba3b9f715cd3bb09f633b5fa 100644 (file)
@@ -35,6 +35,8 @@ void main()
        frag_color = vec4(color, 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 struct LightParams
 {
@@ -59,6 +61,7 @@ void main()
   mat4 _temp = view_matrix*model_matrix;
   eye_normal = mat3(_temp[0].xyz, _temp[1].xyz, _temp[2].xyz)*normal;
   gl_Position = proj_matrix*view_matrix*model_matrix*position;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index a67a5a72a4d7d56c1c214f5cfd62d25d24e51082..ad0f73d994d2bcc70a130055b7010abb96c9f997 100644 (file)
@@ -31,6 +31,8 @@ void main()
                ++v3;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 void main()
 {
index 2b9c719a0f68fa56b828ed9b840b330e55806f1c..e419ffb77ee0bfe7eef5623996391d7933dee146 100644 (file)
@@ -19,6 +19,8 @@ void main()
        gl_Position = vec4(model.transform.components.position+position.xyz*model.transform.components.scale, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 struct TransformComponents
 {
@@ -29,7 +31,7 @@ struct Transform
 {
        TransformComponents components;
 };
-layout(binding=26) uniform ModelData
+layout(set=0, binding=62) uniform ModelData
 {
        Transform transform;
 } model;
index 4f7819b9564f85b26358da86773d97e5e5fbc2f0..68c0c30c29c00437c2722667a50d911d1c525a6e 100644 (file)
@@ -21,6 +21,8 @@ void main()
                frag_color = vec4(1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
index fa0ea86eee87672860e6609147b198b8889fbaa6..1f3c0fdd4f9cd99c1b5c555da91f4a4ab1c91617 100644 (file)
@@ -13,6 +13,8 @@ void main()
        gl_Position = vec4(n);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 void main()
 {
index 2d0cb5a5a031b1776926266d4fd7930b6b04ddb1..7a2ad7053a75f7f084e9235353e96aefa3f6741c 100644 (file)
@@ -1,4 +1,7 @@
-uniform int flag;
+layout(push_constant) uniform Flag
+{
+       int flag;
+};
 uniform sampler2D tex;
 
 #pragma MSP stage(vertex)
@@ -32,6 +35,8 @@ void main()
        frag_color = texture(tex, texcoord);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec2 texcoord;
@@ -43,10 +48,13 @@ void main()
 */
 
 /* Expected output: geometry
-layout(location=0) uniform int flag;
+layout(push_constant) uniform Flag
+{
+       int flag;
+};
 layout(triangles) in;
 layout(triangle_strip, max_vertices=3) out;
-layout(location=0) in vec2 texcoord[];
+layout(location=0) in vec2 texcoord[3];
 layout(location=0) out vec2 _gs_out_texcoord;
 void main()
 {
@@ -66,7 +74,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=1, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _gs_out_texcoord;
 void main()
index 08a61fdef0b392afb191c677be2c1ffa4b9c152e..bb6b9c32bc0064204de2edee50728e1c7c19a000 100644 (file)
@@ -19,6 +19,8 @@ void main()
                frag_color = vec4(1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 003de2d50eee97ad5d315af72b20d8ae2024192e..e8dfcd54f7a17e23a33448cf6b3e9825376e3b13 100644 (file)
@@ -1,5 +1,8 @@
 uniform sampler2D tex;
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -17,8 +20,13 @@ void main()
        frag_color = textureLod(tex, texcoord, 0.0)*0.8;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 layout(location=1) in vec2 texcoord;
 layout(location=0) out vec2 _vs_out_texcoord;
@@ -30,7 +38,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=4, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _vs_out_texcoord;
 void main()
index 02707103a6dbbb278c01d4642d9131fcf2f86f19..1072ba1ea7b945261acdafe45a32316bd69f3859 100644 (file)
@@ -16,6 +16,8 @@ void main()
        frag_color = (use_color ? color : vec4(1.0));
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 9b878e49727c3dbf9ccc7e3d65668292ec35adfc..151ee5ef6f26bd088020c74cb4142bbd579db72d 100644 (file)
@@ -26,6 +26,8 @@ void main()
        frag_color = vec4(vec3(dot(normal, normalize(tbn_light_dir))), 1);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 model;
 layout(location=4) uniform mat4 view_projection;
@@ -43,6 +45,7 @@ void main()
   tbn_light_dir = mat3(normal_matrix*tangent, normal_matrix*binormal, normal_matrix*normal)*light_dir;
   gl_Position = view_projection*model*vec4(position, 1.0);
   _vs_out_texcoord = texcoord;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index ee5c0360df19cb213f478249b096ba97ce8f22a8..eb5f78c9306061336652c88009f2e9f1a8de937e 100644 (file)
@@ -28,6 +28,8 @@ void main()
        frag_color = vec4(color, 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 model_matrix;
 layout(location=4) uniform mat4 vp_matrix;
@@ -35,6 +37,7 @@ layout(location=0) in vec4 position;
 void main()
 {
   gl_Position = vp_matrix*model_matrix*position;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index e40d176e4620d3dd8622401a3b82eff63e570ffc..0f0dcb43aef8ab74cd1db44749965144d854d822 100644 (file)
@@ -41,8 +41,10 @@ void main()
        frag_color = vec4(color, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
        mat4 vp;
        mat4 model;
index 5a4cf84bd0c230e7ab79303bacb183f427a0adca..d5f7d8264e484e5ed7d022f8b8f268e987243558 100644 (file)
@@ -38,8 +38,10 @@ void main()
        frag_color = vec4(color, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
        mat4 vp;
        mat4 model;
index a730e7d56cc93a6eb9732756e2abfe3901993463..88b30a8a474e78a1ed5c286ea8504bda4463cdc4 100644 (file)
@@ -6,6 +6,8 @@ void main()
        gl_Position = p;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index fa17ae9565f2cf5ed33bf4eeb2f37385425a0b2e..9f12880f0ba646c14a843cc295ea2463a793d8d5 100644 (file)
@@ -16,6 +16,8 @@ void main()
        gl_Position = position+vec4(step, 0.0, 0.0, 0.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec3 direction;
index c78958f7eaae5d279c3ff51e99cf7dab1f330d6a..0e35b4d388390efd13c455777de003cf48e59c47 100644 (file)
@@ -12,6 +12,8 @@ void main()
        gl_Position = position*(e+f);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 v;
index 84ec1c07cdffde3aef7dc38e5fd545a05a5a0599..f50a0b275292b04000db18c7e45594c8d0946845 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -11,8 +14,13 @@ void main()
        gl_Position = transform_position(position);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 void main()
 {
index d1920f275daf26940e0d9dd3051292d8c8a62d02..ba2f855a8cd761578cb535c5925f7f88c7b00921 100644 (file)
@@ -9,6 +9,8 @@ void main()
        gl_Position = func();
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 4c19a640e5ab4097c39433c68bef028b02b8b2c0..5f2950c752c99831b6d7be14a5b4e6245457c790 100644 (file)
@@ -14,6 +14,8 @@ void main()
        gl_Position = position*size*size*s*s;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index 796f8882ff62282660230ef751a054fe940d91d5..003f81f48363d9d0a589d6e90478c0fc4188c764 100644 (file)
@@ -12,6 +12,8 @@ void main()
                gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index a98a453943f38e986d99156992f5fd6f337b0005..7105766e3a15b04d51a7ac458d514c947e9a5608 100644 (file)
@@ -14,6 +14,8 @@ void main()
        gl_Position = position*p;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index cf40df14dced064f7716ff4927ffab5f17d53e19..7ba4f110f837b29b9b405949f5c927a2f35a9b08 100644 (file)
@@ -17,6 +17,8 @@ void main()
        gl_Position = position*get_scale()*get_size();
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index f99a5ce3110b5cda55adf5ead5ee173c1fbaab49..f9a6f0c9186f22416e13e69535825e80d51be166 100644 (file)
@@ -12,6 +12,8 @@ void main()
        gl_Position = position*func()*s*s;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index 831858f07cf34a67b87824febee4674673023643..8563f36fffb001a9cd851180741f76dcc580e867 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -14,8 +17,13 @@ void main()
        gl_Position = transform_position(pos+position);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 offset;
 void main()
index 3e445ce6f6e4c41590201d848f7347f7be549d93..196504aa976bdb82734c17c62c1cec6366749125 100644 (file)
@@ -10,6 +10,8 @@ vec4 func()
        return position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index d0ebabc901fe2e34f26435fa301677d94323aeb5..2d288f8a46c313d02561481fa0692683e4666874 100644 (file)
@@ -12,6 +12,8 @@ void main()
        gl_Position = position*func().xxyy*_return*_return;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index a44c00d4459fe1bce58e4fb680b46bed03315507..411776b648392921dc486c425bb56358925ebe77 100644 (file)
@@ -29,6 +29,8 @@ void main()
        frag_color = srgb_to_linear(texture(tex, texcoord));
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 mvp;
 layout(location=0) in vec4 position;
@@ -38,6 +40,7 @@ void main()
 {
   _vs_out_texcoord = texcoord;
   gl_Position = mvp*position;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index 746ea8d39ea8852828bad3a383ecb0b07a4805b3..0a390952094fe1ad2ef11269da66596d219655f3 100644 (file)
@@ -13,6 +13,8 @@ float get_scale() override
        return 2.0;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index ea0d377a913631529cf30927798ec9e08446e22c..18b98c0662c73ed179fa8f293b504a3da658bddb 100644 (file)
@@ -36,6 +36,8 @@ void main()
        frag_color = texture(tex, gs_out.texcoord);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 out VertexOut
@@ -59,7 +61,7 @@ out GeometryOut
 in VertexOut
 {
        vec2 texcoord;
-} vs_out[];
+} vs_out[3];
 void main()
 {
        for(int i = 0; i<3; ++i)
@@ -72,7 +74,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 in GeometryOut
 {
index 5935284264b1d01c1dd74d1a3b779b9fc2b724d3..2104280a102496c1c4b5fe0a214c1c4ebf636d26 100644 (file)
@@ -27,6 +27,8 @@ void main()
        frag_color = texture(tex, texcoord);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec2 texcoord;
@@ -40,7 +42,7 @@ void main()
 /* Expected output: geometry
 layout(triangles) in;
 layout(triangle_strip, max_vertices=3) out;
-layout(location=0) in vec2 texcoord[];
+layout(location=0) in vec2 texcoord[3];
 layout(location=0) out vec2 _gs_out_texcoord;
 void main()
 {
@@ -54,7 +56,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _gs_out_texcoord;
 void main()
index 56fe0dfab4dbe8d5a179f5516beac14e7d3f6369..f491ea34ff674da83b6fc519deb499989e4d4a98 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 vp_matrix;
+layout(push_constant) uniform Transform
+{
+       mat4 vp_matrix;
+};
 uniform sampler2D tex;
 
 #pragma MSP stage(vertex)
@@ -31,8 +34,13 @@ void main()
        frag_color = texture(tex, texcoord);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 vp_matrix;
+layout(push_constant) uniform Transform
+{
+       mat4 vp_matrix;
+};
 layout(location=0) in vec4 position;
 layout(location=1) in vec2 texcoord;
 layout(location=2) in vec4 instance_transform[3];
@@ -47,7 +55,7 @@ void main()
 /* Expected output: geometry
 layout(triangles) in;
 layout(triangle_strip, max_vertices=3) out;
-layout(location=0) in vec2 _vs_out_texcoord[];
+layout(location=0) in vec2 _vs_out_texcoord[3];
 layout(location=0) out vec2 _gs_out_texcoord;
 void main()
 {
@@ -61,7 +69,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=4, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _gs_out_texcoord;
 void main()
index 627fa5d849235e60c0de9a682758c160b2c0577c..e6a98af71c8b4f694a0bdfefdae70942d4d3d227 100644 (file)
@@ -9,6 +9,8 @@ void main()
        gl_Position = vec4(scale(position.xy, 2), 0.0, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 41d7a63e31aa932cdcffd25c7a3435f408dde6dd..e36a3347f6ebf705ef900b97a2b47ba0667b88db 100644 (file)
@@ -18,6 +18,8 @@ void main()
        frag_color = out_color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
index b0c162621952b86e76ed7fd454f4f3eec860159c..5cc18f17857ea961c9f0eaf7d8610d2b09a37bcc 100644 (file)
@@ -19,6 +19,8 @@ void main()
        result = pot;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 vertex;
 layout(location=1) in vec2 texcoord;
@@ -31,7 +33,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out float result;
 layout(location=0) in vec2 _vs_out_texcoord;
 void main()
index c60c0a89fe00890b94ce781c8f3d6d376b35d90f..7b9f98c8f690277e889f2a2e2a4dab50c483d807 100644 (file)
@@ -1,7 +1,10 @@
 layout(constant_id=0) const bool use_texture = false;
 layout(constant_id=1) const bool use_vertex_color = false;
 uniform sampler2D tex;
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -24,10 +27,14 @@ void main()
                frag_color *= color;
 }
 
+// Target API: Vulkan
 // Compile mode: module
 
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
 layout(location=2) in vec2 texcoord;
@@ -44,7 +51,7 @@ void main()
 /* Expected output: fragment
 layout(constant_id=0) const bool use_texture = false;
 layout(constant_id=1) const bool use_vertex_color = false;
-layout(location=4, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=1) in vec2 _vs_out_texcoord;
 layout(location=0) in vec4 _vs_out_color;
index 419f3f2c77c75962dd774fbc6990e25dcad4eeb4..02a82c99ac0ab7e1899cb05d615f6218a11e887e 100644 (file)
@@ -12,6 +12,8 @@ void main()
        gl_Position = position*sqrt(x_sq+y_sq);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec2 scale;
index 42b1655640c9dbcb2ca6a68f1d980fe818c5ca3c..659724ab2bf5cffecc402432d3cda3049e5aa09c 100644 (file)
@@ -14,8 +14,10 @@ void main()
        gl_Position = vec4((m*vec3(position, 1.0)).xy, 0.0, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
        vec3 translation;
        float rotation;
index 77451db0b77c0e188b3e9bc1ecf6df07767289a6..0d7d8efec792c796d419d11c1e407c700a8c0b2a 100644 (file)
@@ -8,6 +8,8 @@ void main()
        gl_Position = p;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 void main()
 {
index e8f05bdb938c32023c834c9cf95bac3e52c63ed6..31eaad7a7589a60310e104774b43c270d5180bd6 100644 (file)
@@ -11,6 +11,8 @@ void main()
        gl_Position = func();
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index 227f1e093359a4492faadef39e0b0d7108d19a49..6a6f9e2f9f92955a4140cd76d842dc2010f8987a 100644 (file)
@@ -28,6 +28,8 @@ void main()
        frag_color = texture(tex, texcoord);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec2 texcoord;
@@ -41,7 +43,7 @@ void main()
 /* Expected output: geometry
 layout(triangles) in;
 layout(triangle_strip, max_vertices=3) out;
-layout(location=0) in vec2 texcoord[];
+layout(location=0) in vec2 texcoord[3];
 layout(location=0) out vec2 _gs_out_texcoord;
 void main()
 {
@@ -58,7 +60,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _gs_out_texcoord;
 void main()
index aedfa93f5925947c08047478004a62593087a813..dbd381f83c289c2f66bf36800842137230dc28b6 100644 (file)
@@ -14,6 +14,8 @@ void main()
        gl_Position = get_position()*get_scale();
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in float scale;
index 9d734bd16fe68af48f648f8e46f566024f1f0226..685050a4cc8277be7f5b192fb27d3012fb5c9159 100644 (file)
@@ -18,6 +18,8 @@ void main()
        frag_color = vs_out.color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
index a09d3422dc5708af537def4fd73e12ade8b24fb5..9ed6dc9abb68f483711f1886b688372537208532 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -15,8 +18,13 @@ void main()
        gl_Position = transform_position(get_position());
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 void main()
 {
index 60b3a492ebca98d44a320e98022c4fd181a448e4..3f7034cef0951d528ae24d2cb4bc76da8fb90dcb 100644 (file)
@@ -21,6 +21,8 @@ void main()
        frag_color = vec4(light_color[light_index], 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
@@ -30,11 +32,11 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=5) uniform Lighting
+layout(set=0, binding=65) uniform Lighting
 {
        vec3 light_color[4];
 };
-layout(binding=80) uniform Params
+layout(set=0, binding=56) uniform Params
 {
        int light_index;
 };
index 8896c17a727017e2317d31b763052351c38e1bf3..6cbc478155328f92cc798ebee8433c6123939dd7 100644 (file)
@@ -22,6 +22,8 @@ void main()
                position.y>0 ? top_left : bottom_left);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec4 _vs_out_position;
@@ -33,7 +35,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=23) uniform Colors
+layout(set=0, binding=23) uniform Colors
 {
        vec4 top_left;
        vec4 top_right;
index f0f887e9d8ec11f13af4f82123326cebd0b8bc47..5bc3f74675715be6b766577e141bccbc8afa3906 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -7,8 +10,13 @@ void main()
        gl_Position = mat4(mvp)*vec4(position);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+  mat4 mvp;
+};
 layout(location=0) in vec4 position;
 void main()
 {
index 718fffd38a6063fa9059668d875ad01303639fbb..13e524dd9d892de853415e78ccfaf67f7b181566 100644 (file)
@@ -27,6 +27,8 @@ void main()
        frag_color = get_color(normal);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec3 normal;
@@ -39,7 +41,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=23) uniform Colors
+layout(set=0, binding=23) uniform Colors
 {
        vec4 top_color;
        vec4 bottom_color;
index a1cd9b88f9339762127650c84ca0ee3ef00ffbd1..7eb6512b2ae5f125711b493f2d1604c7b70fffc3 100644 (file)
@@ -32,6 +32,8 @@ void main()
        frag_color = vec4(material_color*l*occlusion, 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 mvp;
 layout(location=4) uniform vec3 offset;
@@ -45,6 +47,7 @@ void main()
        gl_Position = mvp*(position+vec4(offset, 1.0));
        _vs_out_normal = normal;
        _vs_out_texcoord = texcoord;
+       gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index 7ccdc0d766c032befdd301a5b4f0176c03644ca3..6bd0497b0d7a9bed8fdeb1617e428ca5b8901363 100644 (file)
@@ -27,8 +27,10 @@ void main()
        frag_color = vs_out.color*tint;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=72) uniform GlobalValues
+layout(set=0, binding=24) uniform GlobalValues
 {
        vec4 tint;
        vec2 scale;
@@ -49,7 +51,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=72) uniform GlobalValues
+layout(set=0, binding=24) uniform GlobalValues
 {
        vec4 tint;
        vec2 scale;
index 5b0482467aa6f3c33d077ed12bb8cf31dab83a1a..75e4a0c1c1b3f82ed084581e13cc2f58a62bc54f 100644 (file)
@@ -14,6 +14,8 @@ void main()
        frag_color = color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
index c5d1856a9396e9dacf27eb440e8fd07a4c42b3fe..ab4c2a98bf397b59dc7628abbc7041c2428cf2cc 100644 (file)
@@ -20,6 +20,8 @@ void main()
        frag_color = color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=1) in vec4 color;
index c0b84c42a2e796b25f944584f7bff7094e5c5ed4..f72d24957a8b2c259308c99d737cb142e45216ca 100644 (file)
@@ -7,6 +7,8 @@ void main()
        gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 out gl_PerVertex
 {
index f8a0e51ba2cebdd42c84f9b7cb1d211052f41cdc..130f9c23706310440616d266e8c0862e406d0c95 100644 (file)
@@ -19,6 +19,8 @@ void main()
        }
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 3ac45340f45f53cb04c77e404aa69835f9116a46..493defafe23a74c7337f3d76e7cdcc9a15498103 100644 (file)
@@ -6,6 +6,8 @@ void main()
        gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index 5b0e00d12ef959a25791d6503093ea71b72f3449..e1da44083723079d4c374bf89e027830c812030a 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 projection;
+layout(push_constant) uniform Transform
+{
+       mat4 projection;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -21,8 +24,13 @@ void main()
        frag_color = vec4(color.rgb, alpha);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 projection;
+layout(push_constant) uniform Transform
+{
+  mat4 projection;
+};
 layout(location=0) out vec4 eye_vertex;
 out VertexOut
 {
index 3467311c5192290acad27b72afdacf2a4617ad43..338dc6a7413cf545c651c83931c668bbbe1a825d 100644 (file)
@@ -10,7 +10,10 @@ uniform Surface
 {
        vec4 color;
 };
-uniform mat4 model_matrix;
+layout(push_constant) uniform Transform
+{
+       mat4 model_matrix;
+};
 uniform sampler2DShadow shadow_map;
 
 #pragma MSP stage(vertex)
@@ -36,12 +39,17 @@ void main()
        frag_out = vec4(color.rgb*get_shadow(), color.a);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=72) uniform Camera
+layout(set=0, binding=24) uniform Camera
 {
        mat4 viewproj_matrix;
 };
-layout(location=0) uniform mat4 model_matrix;
+layout(push_constant) uniform Transform
+{
+       mat4 model_matrix;
+};
 layout(location=0) in vec4 position;
 layout(location=0) out vec4 world_position;
 void main()
@@ -52,15 +60,15 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=71) uniform Shadow
+layout(set=0, binding=35) uniform Shadow
 {
        mat4 shadow_matrix;
 };
-layout(binding=77) uniform Surface
+layout(set=0, binding=65) uniform Surface
 {
        vec4 color;
 };
-layout(location=4, binding=73) uniform sampler2DShadow shadow_map;
+layout(set=0, binding=73) uniform sampler2DShadow shadow_map;
 layout(location=0) out vec4 frag_out;
 layout(location=0) in vec4 world_position;
 float get_shadow()
index eacc9bde48837386ef3b91707d898858c289ed02..9b544ab2a00c99bd62cae2bc7d77e54651c4074d 100644 (file)
@@ -1,7 +1,10 @@
 layout(constant_id=0) const bool use_texture = false;
 layout(constant_id=1) const bool use_vertex_color = false;
 uniform sampler2D tex;
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -24,10 +27,14 @@ void main()
                frag_color *= color;
 }
 
+// Target API: Vulkan
 // Specialize: use_texture true
 
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 layout(location=0) in vec4 position;
 layout(location=2) in vec2 texcoord;
 layout(location=0) out vec2 _vs_out_texcoord;
@@ -39,7 +46,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=4, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _vs_out_texcoord;
 void main()
index 03d6af425a9651c72221d60b6b690203113c7950..2c9e38010a863b00bc623386d478c70b68c3d266 100644 (file)
@@ -25,8 +25,10 @@ void main()
        frag_color = material.color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
        mat4 mvp;
 };
@@ -42,7 +44,7 @@ struct MaterialParameters
 {
        vec4 color;
 };
-layout(binding=64) uniform Material
+layout(set=0, binding=16) uniform Material
 {
        MaterialParameters material;
 };
index 521a8c4650af40a18b6d2efe406d16d51b8d0230..10c344764b4c6a244bfb46d89db05c4749bc9264 100644 (file)
@@ -29,8 +29,10 @@ void main()
        frag_color.rgb *= max(dot(normalize(world_normal), light_dir), 0.0)*light_color;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
   mat4 model_matrix;
   mat4 vp_matrix;
@@ -50,8 +52,8 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
-layout(binding=5) uniform Lighting
+layout(set=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=65) uniform Lighting
 {
   vec3 light_dir;
   vec3 light_color;
index a04d810213cf7f5942e2b8c4ff9560ef0f05100f..402a06538700fdcd4de37cdb03c358c5e7409f8d 100644 (file)
@@ -25,8 +25,10 @@ void main()
        frag_color = texture(mask, texcoord).r > 0.5 ? color1 : color2;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(binding=48) uniform Transform
+layout(set=0, binding=24) uniform Transform
 {
   mat4 mvp;
 } transform;
@@ -41,12 +43,12 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=23) uniform Colors
+layout(set=0, binding=23) uniform Colors
 {
   vec4 color1;
   vec4 color2;
 };
-layout(location=0, binding=75) uniform sampler2D mask;
+layout(set=0, binding=75) uniform sampler2D mask;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 _vs_out_texcoord;
 void main()
index baef6451885904fb87e4c53c4e5a02d673d05f07..9b45a05fa943aa5a3c6e296a83fabcddee15d74a 100644 (file)
@@ -13,6 +13,8 @@ void main()
        ++arr[0];
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 void main()
 {
index f0ab84762bed751a968744b34ca5f250dac47e95..65321047b7748ffa0d86f39d2233bf7caaa88340 100644 (file)
@@ -18,6 +18,8 @@ void main()
        frag_color = color*vec4(texture(heightmap, texcoord).rrr, 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=1) uniform mat4 mvp;
 layout(location=0, binding=16) uniform sampler2D heightmap;
@@ -28,6 +30,7 @@ void main()
 {
   gl_Position = mvp*vec4(position, texture(heightmap, texcoord).r, 1.0);
   _vs_out_texcoord = texcoord;
+  gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index b83f5e32a07bd1a0ef0b0db33499224f43344fa0..15eab848833241de402a26d93b1cbaa63c2fa2b3 100644 (file)
@@ -24,6 +24,8 @@ void main()
        frag_color = sum/sample_count;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec2 texcoord;
@@ -35,7 +37,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(location=0, binding=71) uniform sampler2D tex;
+layout(set=0, binding=71) uniform sampler2D tex;
 layout(location=0) out vec4 frag_color;
 layout(location=0) in vec2 texcoord;
 void main()
index af880f5d102e28449ead0e72517ddbe42e151111..661b91b5cdd1173fbff6e9d227f002db4b50a997 100644 (file)
@@ -1,4 +1,7 @@
-uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+       mat4 mvp;
+};
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 position;
@@ -16,8 +19,13 @@ void main()
        gl_Position = vec4(clip_pos.xy, 0.0, 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
-layout(location=0) uniform mat4 mvp;
+layout(push_constant) uniform Transform
+{
+  mat4 mvp;
+};
 layout(location=0) in vec4 position;
 void main()
 {
index 67541de13728cb6ed2df7c457c4acfb8467bd31e..90b79bf0bb07403768d63345d6a522c715259b33 100644 (file)
@@ -9,6 +9,8 @@ void main()
        gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index bc3307c3cf1d44c5be1df5a69b790e1650da3123..40f2fde6dca153ce32b5d69753ee933f8664d0f6 100644 (file)
@@ -21,6 +21,8 @@ void main()
        gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index a295dc70b9f2989346a4b356a7bc836ad0a1be58..81e0d17675f883b4b08eca66dfceb42e9d5e74e7 100644 (file)
@@ -7,6 +7,8 @@ void main()
        gl_Position = position;
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 void main()
index fc1782b22223a20b21006c3fdd838f0b4253073d..c06e70f9b18bb54b9ced4db7c19b59481858e30b 100644 (file)
@@ -37,6 +37,8 @@ void main()
        frag_color = vec4(vec3(luminance), 1.0);
 }
 
+// Target API: Vulkan
+
 /* Expected output: vertex
 layout(location=0) in vec4 position;
 layout(location=0) out vec3 dir;
@@ -48,7 +50,7 @@ void main()
 */
 
 /* Expected output: fragment
-layout(binding=80) uniform Params
+layout(set=0, binding=56) uniform Params
 {
        float start_height;
        float max_height;
index a0bbc5c3ffac11bed8e6d310af9e1a94ef996695..3d45906ce947d03e4c29ed93c3ed913eeeecf535 100644 (file)
@@ -31,6 +31,8 @@ void main()
        frag_color = vec4(vec3(light_intensity), 1.0);
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 model_matrix;
 layout(location=4) uniform mat4 view_matrix;
@@ -43,6 +45,7 @@ void main()
        world_vertex = model_matrix*vertex;
        world_look_dir = normalize(world_vertex.xyz-inverse(view_matrix)[3].xyz);
        gl_Position = proj_matrix*view_matrix*world_vertex;
+       gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 */
 
index 335e631b8fa14cd2088493b3442b989b1ac94f10..0728dcd69382239671cff46f7d53e9cfbf411873 100644 (file)
@@ -26,6 +26,8 @@ void main()
        frag_color = vs_out.color+vs_out.mask_color;
 }
 
+// Target API: OpenGL
+
 /* Expected output: vertex
 layout(location=0) uniform mat4 mvp;
 layout(location=4) uniform int mask_index;
@@ -44,6 +46,7 @@ void main()
        vs_out.mask_color = vec4(1.0);
        vs_out.mask_color[index] = 1.0;
        gl_Position = mvp*position;
+       gl_Position.z = gl_Position.z*2.0-gl_Position.w;
 }
 /*