glsl: Add IR lisp for GLSL ES 3.00 pack/unpack functions
authorChad Versace <chad.versace@linux.intel.com>
Wed, 9 Jan 2013 00:13:18 +0000 (16:13 -0800)
committerChad Versace <chad.versace@linux.intel.com>
Fri, 25 Jan 2013 05:11:41 +0000 (21:11 -0800)
For each of the following functions, add a declaration to
builtins/profiles/300es.glsl and create new file
builtins/ir/${funcname}.ir:

  packSnorm2x16  unpackSnorm2x16
  packUnorm2x16  unpackUnorm2x16
  packHalf2x16   unpackHalf2x16

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Tuner <mattst88@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
src/glsl/builtins/ir/packHalf2x16.ir [new file with mode: 0644]
src/glsl/builtins/ir/packSnorm2x16.ir [new file with mode: 0644]
src/glsl/builtins/ir/packUnorm2x16.ir [new file with mode: 0644]
src/glsl/builtins/ir/unpackHalf2x16.ir [new file with mode: 0644]
src/glsl/builtins/ir/unpackSnorm2x16.ir [new file with mode: 0644]
src/glsl/builtins/ir/unpackUnorm2x16.ir [new file with mode: 0644]
src/glsl/builtins/profiles/300es.glsl

diff --git a/src/glsl/builtins/ir/packHalf2x16.ir b/src/glsl/builtins/ir/packHalf2x16.ir
new file mode 100644 (file)
index 0000000..2f85407
--- /dev/null
@@ -0,0 +1,6 @@
+((function packHalf2x16
+   (signature uint
+     (parameters
+       (declare (in) vec2 arg0))
+     ((return (expression uint packHalf2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/ir/packSnorm2x16.ir b/src/glsl/builtins/ir/packSnorm2x16.ir
new file mode 100644 (file)
index 0000000..b4575d2
--- /dev/null
@@ -0,0 +1,6 @@
+((function packSnorm2x16
+   (signature uint
+     (parameters
+       (declare (in) vec2 arg0))
+     ((return (expression uint packSnorm2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/ir/packUnorm2x16.ir b/src/glsl/builtins/ir/packUnorm2x16.ir
new file mode 100644 (file)
index 0000000..c809f2d
--- /dev/null
@@ -0,0 +1,6 @@
+((function packUnorm2x16
+   (signature uint
+     (parameters
+       (declare (in) vec2 arg0))
+     ((return (expression uint packUnorm2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/ir/unpackHalf2x16.ir b/src/glsl/builtins/ir/unpackHalf2x16.ir
new file mode 100644 (file)
index 0000000..f5b6fc2
--- /dev/null
@@ -0,0 +1,6 @@
+((function unpackHalf2x16
+   (signature vec2
+     (parameters
+       (declare (in) uint arg0))
+     ((return (expression vec2 unpackHalf2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/ir/unpackSnorm2x16.ir b/src/glsl/builtins/ir/unpackSnorm2x16.ir
new file mode 100644 (file)
index 0000000..9092a06
--- /dev/null
@@ -0,0 +1,6 @@
+((function unpackSnorm2x16
+   (signature vec2
+     (parameters
+       (declare (in) uint arg0))
+     ((return (expression vec2 unpackSnorm2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/ir/unpackUnorm2x16.ir b/src/glsl/builtins/ir/unpackUnorm2x16.ir
new file mode 100644 (file)
index 0000000..935dc85
--- /dev/null
@@ -0,0 +1,6 @@
+((function unpackUnorm2x16
+   (signature vec2
+     (parameters
+       (declare (in) uint arg0))
+     ((return (expression vec2 unpackUnorm2x16 (var_ref arg0)))))
+))
index 45212b30dc785d4bec46f96695d477ac478da346..4b7160dd2c2308c07fb40ad37188cf7bbd0081f4 100644 (file)
@@ -325,14 +325,14 @@ vec4  uintBitsToFloat(uvec4 value);
 
 /*
  * 8.4 - Floating-Point Pack and Unpack Functions
- * FIXME: implement these
  */
-// uint packSnorm2x16(vec2 v);
-// vec2 unpackSnorm2x16(uint p);
-// uint packUnorm2x16(vec2 v);
-// vec2 unpackUnorm2x16(uint p);
-// uint packHalf2x16(vec2 v);
-// vec2 unpackHalf2x16(uint p);
+highp   uint packSnorm2x16(        vec2 v);
+highp   uint packUnorm2x16(        vec2 v);
+highp   uint packHalf2x16 (mediump vec2 v);
+
+highp   vec2 unpackSnorm2x16(highp uint p);
+highp   vec2 unpackUnorm2x16(highp uint p);
+mediump vec2 unpackHalf2x16 (highp uint p);
 
 /*
  * 8.5 - Geometric Functions