summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/constants.test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/constants.test1153
1 files changed, 1153 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/constants.test b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/constants.test
new file mode 100644
index 0000000000..93e71b72b6
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/constants.test
@@ -0,0 +1,1153 @@
+case float_input
+ version 300 es
+ values
+ {
+ input float in0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
+ output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
+ }
+ values
+ {
+ input float in0 = [ -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
+ output float out0 = [ -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
+ }
+
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = in0;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_uniform
+ version 300 es
+ values
+ {
+ uniform float uni0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
+ output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
+ }
+
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ uniform float uni0;
+ void main()
+ {
+ out0 = uni0;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_0
+ version 300 es
+ values { output float out0 = 1.123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = +1.123;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_1
+ version 300 es
+ values { output float out0 = -1.123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = -1.123;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_2
+ version 300 es
+ values { output float out0 = 123.0; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 123.;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_3
+ version 300 es
+ values { output float out0 = 0.123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = .123;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_4
+ version 300 es
+ values { output float out0 = 123.0; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 1.23e+2;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_5
+ version 300 es
+ values { output float out0 = -123.0; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = -1.23E+2;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_6
+ version 300 es
+ values { output float out0 = -123.0; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = -1.23e2;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_7
+ version 300 es
+ values { output float out0 = 0.123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 1.23e-1;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_8
+ version 300 es
+ values { output float out0 = 1000.0; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 1e3;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_f_suffix_0
+ version 300 es
+ values { output float out0 = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ float value = 1.0f;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case float_f_suffix_1
+ version 300 es
+ values { output float out0 = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ float value = 1.0F;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_0
+ version 300 es
+ values { output int out0 = 123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 123;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_1
+ version 300 es
+ values { output int out0 = -321; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = -321;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_2
+ version 300 es
+ values { output int out0 = 123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 0x7B;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_3
+ version 300 es
+ values { output int out0 = 123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 0X7b;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_4
+ version 300 es
+ values { output int out0 = 123; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = 0173;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case bool_0
+ version 300 es
+ values { output bool out0 = true; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = true;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case bool_1
+ version 300 es
+ values { output bool out0 = false; }
+ both ""
+ #version 300 es
+ precision highp float;
+ ${DECLARATIONS}
+ void main()
+ {
+ out0 = false;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_global
+ version 300 es
+ values { output float out0 = 1000.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = 1000.0;
+ void main()
+ {
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_main
+ version 300 es
+ values { output float out0 = -1000.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ const float theConstant = -1000.0;
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_function
+ version 300 es
+ values { output float out0 = -0.012; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ float func()
+ {
+ const float theConstant = -0.012;
+ return theConstant;
+ }
+ void main()
+ {
+ out0 = func();
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_scope
+ version 300 es
+ values { output float out0 = 1.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ {
+ const float theConstant = 1.0;
+ out0 = theConstant;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_scope_shawdowing_1
+ version 300 es
+ values { output float out0 = 1.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ const float theConstant = 100.0;
+ {
+ const float theConstant = 1.0;
+ out0 = theConstant;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_scope_shawdowing_2
+ version 300 es
+ values { output float out0 = 1.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = 100.0;
+ void main()
+ {
+ {
+ const float theConstant = 1.0;
+ out0 = theConstant;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_scope_shawdowing_3
+ version 300 es
+ values { output float out0 = 1.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = 100.0;
+ void main()
+ {
+ const float theConstant = -100.0;
+ {
+ const float theConstant = 1.0;
+ out0 = theConstant;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_scope_shawdowing_4
+ version 300 es
+ values { output float out0 = 2.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = 100.0;
+ float func()
+ {
+ const float theConstant = 2.0;
+ return theConstant;
+ }
+ void main()
+ {
+ const float theConstant = -100.0;
+ {
+ const float theConstant = 1.0;
+ out0 = func();
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_operations_with_const
+ version 300 es
+ values { output float out0 = 21.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theGlobalConstant = 10.0;
+ float func()
+ {
+ const float theConstant = 2.0;
+ return theConstant;
+ }
+ void main()
+ {
+ const float theConstant = -100.0;
+ {
+ const float theConstant = 1.0;
+ out0 = func() * theGlobalConstant + theConstant;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assignment_1
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ const float theConstant1 = 10.0;
+ const float theConstant2 = theConstant1;
+ out0 = theConstant2;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assignment_2
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ const float theConstant1 = 10.0;
+ {
+ const float theConstant2 = theConstant1;
+ out0 = theConstant2;
+ }
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assignment_3
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant1 = 10.0;
+ void main()
+ {
+ const float theConstant2 = theConstant1;
+ out0 = theConstant2;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assignment_4
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant1 = 10.0;
+ float func()
+ {
+ const float theConstant2 = theConstant1;
+ return theConstant2;
+ }
+ void main()
+ {
+ out0 = func();
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assign_uniform
+ version 300 es
+ expect compile_fail
+ values { output float out0 = 10.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ uniform float theUniform;
+ void main()
+ {
+ const float theConstant = theUniform;
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assign_varying
+ version 300 es
+ expect compile_fail
+ values { output float out0 = 10.0; }
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ out float theVarying;
+ void main()
+ {
+ theVarying = 1.0;
+ gl_Position = vec(1.0);
+ }
+ ""
+ fragment ""
+ #version 300 es
+ precision mediump float;
+ ${FRAGMENT_DECLARATIONS}
+ in float theVarying;
+ void main()
+ {
+ const float theConstant = theVarying;
+ out0 = theConstant;
+ ${FRAGMENT_OUTPUT}
+ }
+ ""
+end
+
+case const_float_function_gotcha
+ version 300 es
+ desc "Function constant parameters are not really constants, so using them as constant expressions should fail."
+ expect compile_fail
+ values { output float out0 = 20.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ float func(const float gotcha)
+ {
+ const float theConstant2 = gotcha;
+ return theConstant2*2.0;
+ }
+ void main()
+ {
+ const float theConstant = 10.0;
+ out0 = func(theConstant);
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_from_int
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = float(10);
+ void main()
+ {
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_from_vec2
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = vec2(1.0, 10.0).y;
+ void main()
+ {
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_from_vec3
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = vec3(1.0, 10.0, 20.0).y;
+ void main()
+ {
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_from_vec4
+ version 300 es
+ values { output float out0 = 10.0; }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y;
+ void main()
+ {
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assign_variable_1
+ version 300 es
+ expect compile_fail
+ values { output float out0 = 20.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ float theVariable = 20.0;
+ const float theConstant = theVariable;
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assign_variable_2
+ version 300 es
+ expect compile_fail
+ values { output float out0 = 50.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main()
+ {
+ float theVariable = 20.0;
+ theVariable += 30.0;
+ const float theConstant = theVariable;
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case const_float_assign_user_func
+ version 300 es
+ expect compile_fail
+ values { output float out0 = 50.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ float func()
+ {
+ return 50.0;
+ }
+ void main()
+ {
+ const float theConstant = func();
+ out0 = theConstant;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_decimal
+ version 300 es
+ values { output int out0 = 7; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ int value = 7;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_octal
+ version 300 es
+ values { output int out0 = 15; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ int value = 017;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_hexadecimal_0
+ version 300 es
+ values { output int out0 = 47; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ int value = 0x2f;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_hexadecimal_1
+ version 300 es
+ values { output int out0 = 47; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ int value = 0X2f;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_decimal_0
+ version 300 es
+ values { output uint out0 = 7; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 7u;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_decimal_1
+ version 300 es
+ values { output uint out0 = 7; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 7U;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_octal_0
+ version 300 es
+ values { output uint out0 = 15; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 017u;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_octal_1
+ version 300 es
+ values { output uint out0 = 15; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 017U;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_hexadecimal_0
+ version 300 es
+ values { output uint out0 = 47; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 0x2fU;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case uint_hexadecimal_1
+ version 300 es
+ values { output uint out0 = 47; }
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ uint value = 0X2fu;
+ out0 = value;
+ ${OUTPUT}
+ }
+ ""
+end
+
+case int_from_uint
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ int value = 7u;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case uint_from_int
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ uint value = 7;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case int_from_float
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ int value = 7.0;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case uint_from_float
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ uint value = 7.0;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case bool_from_int
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ bool value = 1;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case bool_from_uint
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ bool value = 1u;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case bool_from_float
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ bool value = 1.0;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case float_int_f_suffix_0
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ float value = 1f;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case float_int_f_suffix_1
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+ void main ()
+ {
+ ${SETUP}
+ float value = 1F;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case int_l_suffix
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ int value = 1l;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case uint_ul_suffix
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ uint value = 1ul;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case invalid_octal_0
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ int value = 018;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case invalid_octal_1
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ uint value = 09U;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case invalid_hexadecimal_0
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ int value = 0x2g7;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end
+
+case invalid_hexadecimal_1
+ expect compile_fail
+ version 300 es
+ both ""
+ #version 300 es
+ ${DECLARATIONS}
+ void main ()
+ {
+ uint value = 0X1h7u;
+ ${POSITION_FRAG_COLOR} = vec4(0.0);
+ }
+ ""
+end