diff options
Diffstat (limited to '')
-rw-r--r-- | dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/qualification_order.test | 2714 |
1 files changed, 2714 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/qualification_order.test b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/qualification_order.test new file mode 100644 index 0000000000..42c5b357f2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/qualification_order.test @@ -0,0 +1,2714 @@ +# WARNING: This file is auto-generated. Do NOT modify it manually, but rather +# modify the generating script file. Otherwise changes will be lost! + +group variables "Order of qualification in variable declarations." + + group valid "Valid orderings." + + case invariant_interp_storage_precision + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant smooth centroid out lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_precision + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_interp_storage + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant smooth centroid out float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_precision + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out lowp float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage + expect pass + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out float x0; + + out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in float x0; + + in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + + end # valid + group invalid "Invalid orderings." + + case invariant_interp_precision_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant smooth lowp centroid out float x0; + + flat mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth lowp centroid in float x0; + + flat mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_interp_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out smooth lowp float x0; + + out flat mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth lowp float x0; + + in flat mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_precision_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out lowp smooth float x0; + + out mediump flat float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp smooth float x0; + + in mediump flat float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_precision_interp_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant lowp smooth centroid out float x0; + + mediump flat out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp smooth centroid in float x0; + + mediump flat in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_precision_storage_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant lowp centroid out smooth float x0; + + mediump out flat float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in smooth float x0; + + mediump in flat float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_invariant_storage_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth invariant centroid out lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_invariant_precision_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth invariant lowp centroid out float x0; + + flat mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth lowp centroid in float x0; + + flat mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_invariant_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out invariant lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_precision_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out lowp invariant float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_precision_invariant_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth lowp invariant centroid out float x0; + + flat mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth lowp centroid in float x0; + + flat mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_precision_storage_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth lowp centroid out invariant float x0; + + flat mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth lowp centroid in float x0; + + flat mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_invariant_interp_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out invariant smooth lowp float x0; + + out flat mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth lowp float x0; + + in flat mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_invariant_precision_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out invariant lowp smooth float x0; + + out mediump flat float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp smooth float x0; + + in mediump flat float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_interp_invariant_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out smooth invariant lowp float x0; + + out flat mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth lowp float x0; + + in flat mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_interp_precision_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out smooth lowp invariant float x0; + + out flat mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth lowp float x0; + + in flat mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision_invariant_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp invariant smooth float x0; + + out mediump flat float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp smooth float x0; + + in mediump flat float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision_interp_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp smooth invariant float x0; + + out mediump flat float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp smooth float x0; + + in mediump flat float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_invariant_interp_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp invariant smooth centroid out float x0; + + mediump flat out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp smooth centroid in float x0; + + mediump flat in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_invariant_storage_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp invariant centroid out smooth float x0; + + mediump out flat float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in smooth float x0; + + mediump in flat float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_interp_invariant_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp smooth invariant centroid out float x0; + + mediump flat out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp smooth centroid in float x0; + + mediump flat in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_interp_storage_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp smooth centroid out invariant float x0; + + mediump flat out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp smooth centroid in float x0; + + mediump flat in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_storage_invariant_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp centroid out invariant smooth float x0; + + mediump out flat float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in smooth float x0; + + mediump in flat float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_storage_interp_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp centroid out smooth invariant float x0; + + mediump out flat float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in smooth float x0; + + mediump in flat float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_precision_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth lowp centroid out float x0; + + flat mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth lowp centroid in float x0; + + flat mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_interp_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out smooth lowp float x0; + + out flat mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth lowp float x0; + + in flat mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp smooth float x0; + + out mediump flat float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp smooth float x0; + + in mediump flat float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_interp_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp smooth centroid out float x0; + + mediump flat out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp smooth centroid in float x0; + + mediump flat in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_storage_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp centroid out smooth float x0; + + mediump out flat float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in smooth float x0; + + mediump in flat float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out smooth float x0; + + out flat float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth float x0; + + in flat float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_invariant_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth invariant centroid out float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out invariant float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_invariant_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out invariant smooth float x0; + + out flat float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth float x0; + + in flat float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_interp_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out smooth invariant float x0; + + out flat float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth float x0; + + in flat float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_precision_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant lowp centroid out float x0; + + mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in float x0; + + mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_invariant_precision + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out invariant lowp float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp invariant float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_invariant_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp invariant centroid out float x0; + + mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in float x0; + + mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_storage_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp centroid out invariant float x0; + + mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in float x0; + + mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case precision_storage + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + lowp centroid out float x0; + + mediump out float x1; + + highp uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + lowp centroid in float x0; + + mediump in float x1; + + highp uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_interp + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out smooth float x0; + + out flat float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in smooth float x0; + + in flat float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_invariant + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out invariant float x0; + + out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + centroid in float x0; + + in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_interp_storage_precision_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant smooth centroid out lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_precision_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out lowp float x0; + + flat out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant smooth centroid in lowp float x0; + + flat in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_interp_storage_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant smooth centroid out float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_precision_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out lowp float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case storage_precision_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + centroid out lowp float x0; + + out mediump float x1; + + uniform highp float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant centroid in lowp float x0; + + in mediump float x1; + + uniform highp float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case interp_storage_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + smooth centroid out float x0; + + flat out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant smooth centroid in float x0; + + flat in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + case invariant_storage_invariant_input + expect compile_fail + values {} + + vertex "" + #version 300 es + precision mediump float; + in highp vec4 dEQP_Position; + + invariant centroid out float x0; + + out float x1; + + uniform float x2; + + void main() + { + x0 = 1.0; + x1 = 2.0; + gl_Position = dEQP_Position; + } + "" + + fragment "" + #version 300 es + precision mediump float; + layout(location = 0) out mediump vec4 dEQP_FragColor; + + invariant centroid in float x0; + + in float x1; + + uniform float x2; + + void main() + { + float result = (x0 + x1 + x2) / 3.0; + dEQP_FragColor = vec4(result, result, result, 1.0); + } + "" + end + + end # invalid + +end # variables +group parameters "Order of qualification in function parameters." + + group valid "Valid orderings." + + case storage_parameter_precision + expect pass + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (const in lowp float x) + { + return x + 1.0; + } + + void foo1 ( out mediump float x) + { + x = 1.0; + } + + float foo2 ( inout highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case storage_parameter + expect pass + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (const in float x) + { + return x + 1.0; + } + + void foo1 ( out float x) + { + x = 1.0; + } + + float foo2 ( inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case storage_precision + expect pass + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (const lowp float x) + { + return x + 1.0; + } + + void foo1 ( mediump float x) + { + x = 1.0; + } + + float foo2 ( highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case parameter_precision + expect pass + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (in lowp float x) + { + return x + 1.0; + } + + void foo1 (out mediump float x) + { + x = 1.0; + } + + float foo2 (inout highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + + end # valid + group invalid "Invalid orderings." + + case storage_precision_parameter + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (const lowp in float x) + { + return x + 1.0; + } + + void foo1 ( mediump out float x) + { + x = 1.0; + } + + float foo2 ( highp inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case parameter_storage_precision + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (in const lowp float x) + { + return x + 1.0; + } + + void foo1 (out mediump float x) + { + x = 1.0; + } + + float foo2 (inout highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case parameter_precision_storage + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (in lowp const float x) + { + return x + 1.0; + } + + void foo1 (out mediump float x) + { + x = 1.0; + } + + float foo2 (inout highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case precision_storage_parameter + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (lowp const in float x) + { + return x + 1.0; + } + + void foo1 (mediump out float x) + { + x = 1.0; + } + + float foo2 (highp inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case precision_parameter_storage + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (lowp in const float x) + { + return x + 1.0; + } + + void foo1 (mediump out float x) + { + x = 1.0; + } + + float foo2 (highp inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case parameter_storage + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (in const float x) + { + return x + 1.0; + } + + void foo1 (out float x) + { + x = 1.0; + } + + float foo2 (inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case precision_storage + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (lowp const float x) + { + return x + 1.0; + } + + void foo1 (mediump float x) + { + x = 1.0; + } + + float foo2 (highp float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + case precision_parameter + expect compile_fail + version 300 es + values {} + + both "" + #version 300 es + precision mediump float; + ${DECLARATIONS} + + float foo0 (lowp in float x) + { + return x + 1.0; + } + + void foo1 (mediump out float x) + { + x = 1.0; + } + + float foo2 (highp inout float x) + { + return x + 1.0; + } + + void main() + { + ${SETUP} + float result; + foo1(result); + float x0 = foo0(1.0); + foo2(result); + ${OUTPUT} + } + "" + end + + end # invalid + +end # parameters |