glsl: lower builtins to mediump that always return mediump or lowp
[mesa.git] / src / compiler / glsl / tests / lower_precision_test.py
index 3fa74050ed8e27f40c0fc67120ff2f9c13b6f636..a6ad95031356a0b591bb051467d8e67afbe1f03c 100644 (file)
@@ -1459,6 +1459,175 @@ TESTS = [
          }
          """,
          r'expression uint packSnorm4x8 \(expression vec4'),
+    Test("interpolateAtCentroid",
+         """
+         #version 320 es
+         precision mediump float;
+         precision mediump int;
+
+         in float val;
+         out float color;
+
+         void main()
+         {
+                 color = interpolateAtCentroid(val) + 1.0;
+         }
+         """,
+         r'expression float16_t interpolate_at_centroid \(expression float16_t'),
+    Test("interpolateAtOffset",
+         """
+         #version 320 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp vec2 offset;
+         in float val;
+         out float color;
+
+         void main()
+         {
+                 color = interpolateAtOffset(val, offset) + 1.0;
+         }
+         """,
+         r'expression float16_t interpolate_at_offset \(expression float16_t'),
+    Test("interpolateAtSample",
+         """
+         #version 320 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int sample_index;
+         in float val;
+         out float color;
+
+         void main()
+         {
+                 color = interpolateAtSample(val, sample_index) + 1.0;
+         }
+         """,
+         r'expression float16_t interpolate_at_sample \(expression float16_t'),
+    Test("bitfieldExtract",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int offset, bits;
+         uniform int val;
+         out int color;
+
+         void main()
+         {
+                 color = bitfieldExtract(val, offset, bits) + 1;
+         }
+         """,
+         r'expression int16_t bitfield_extract \(expression int16_t'),
+    Test("bitfieldInsert",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int offset, bits;
+         uniform int val, val2;
+         out int color;
+
+         void main()
+         {
+                 color = bitfieldInsert(val, val2, offset, bits) + 1;
+         }
+         """,
+         r'expression int16_t bitfield_insert \(expression int16_t'),
+    Test("bitCount",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int val;
+         out int color;
+
+         void main()
+         {
+                 color = bitCount(val) + 1;
+         }
+         """,
+         r'expression int16_t \+ \(expression int16_t i2imp \(expression int bit_count \(var_ref val'),
+    Test("findLSB",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int val;
+         out int color;
+
+         void main()
+         {
+                 color = findLSB(val) + 1;
+         }
+         """,
+         r'expression int16_t \+ \(expression int16_t i2imp \(expression int find_lsb \(var_ref val'),
+    Test("findMSB",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp int val;
+         out int color;
+
+         void main()
+         {
+                 color = findMSB(val) + 1;
+         }
+         """,
+         r'expression int16_t \+ \(expression int16_t i2imp \(expression int find_msb \(var_ref val'),
+    Test("unpackHalf2x16",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp uint val;
+         out vec2 color;
+
+         void main()
+         {
+                 color = unpackHalf2x16(val) + vec2(1.0);
+         }
+         """,
+         r'expression f16vec2 \+ \(expression f16vec2 f2fmp \(expression vec2 unpackHalf2x16 \(var_ref val'),
+    Test("unpackUnorm4x8",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp uint val;
+         out vec4 color;
+
+         void main()
+         {
+                 color = unpackUnorm4x8(val) + vec4(1.0);
+         }
+         """,
+         r'expression f16vec4 \+ \(expression f16vec4 f2fmp \(expression vec4 unpackUnorm4x8 \(var_ref val'),
+    Test("unpackSnorm4x8",
+         """
+         #version 310 es
+         precision mediump float;
+         precision mediump int;
+
+         uniform highp uint val;
+         out vec4 color;
+
+         void main()
+         {
+                 color = unpackSnorm4x8(val) + vec4(1.0);
+         }
+         """,
+         r'expression f16vec4 \+ \(expression f16vec4 f2fmp \(expression vec4 unpackSnorm4x8 \(var_ref val'),
 ]