aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChad Versace <[email protected]>2013-01-08 16:13:18 -0800
committerChad Versace <[email protected]>2013-01-24 21:11:41 -0800
commit3a88d71d3558d756b0567efe4f22179d2606367c (patch)
tree4dd0d80b4a7b665078db2b5b82b8e9a881dc77b5 /src
parent6f8f919a530b570aba13342dfe9a82a8f44a9f69 (diff)
glsl: Add IR lisp for GLSL ES 3.00 pack/unpack functions
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 <[email protected]> Reviewed-by: Matt Tuner <[email protected]> Signed-off-by: Chad Versace <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/glsl/builtins/ir/packHalf2x16.ir6
-rw-r--r--src/glsl/builtins/ir/packSnorm2x16.ir6
-rw-r--r--src/glsl/builtins/ir/packUnorm2x16.ir6
-rw-r--r--src/glsl/builtins/ir/unpackHalf2x16.ir6
-rw-r--r--src/glsl/builtins/ir/unpackSnorm2x16.ir6
-rw-r--r--src/glsl/builtins/ir/unpackUnorm2x16.ir6
-rw-r--r--src/glsl/builtins/profiles/300es.glsl14
7 files changed, 43 insertions, 7 deletions
diff --git a/src/glsl/builtins/ir/packHalf2x16.ir b/src/glsl/builtins/ir/packHalf2x16.ir
new file mode 100644
index 00000000000..2f854071574
--- /dev/null
+++ b/src/glsl/builtins/ir/packHalf2x16.ir
@@ -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
index 00000000000..b4575d2da3f
--- /dev/null
+++ b/src/glsl/builtins/ir/packSnorm2x16.ir
@@ -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
index 00000000000..c809f2d7046
--- /dev/null
+++ b/src/glsl/builtins/ir/packUnorm2x16.ir
@@ -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
index 00000000000..f5b6fc23783
--- /dev/null
+++ b/src/glsl/builtins/ir/unpackHalf2x16.ir
@@ -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
index 00000000000..9092a063877
--- /dev/null
+++ b/src/glsl/builtins/ir/unpackSnorm2x16.ir
@@ -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
index 00000000000..935dc85821d
--- /dev/null
+++ b/src/glsl/builtins/ir/unpackUnorm2x16.ir
@@ -0,0 +1,6 @@
+((function unpackUnorm2x16
+ (signature vec2
+ (parameters
+ (declare (in) uint arg0))
+ ((return (expression vec2 unpackUnorm2x16 (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/profiles/300es.glsl b/src/glsl/builtins/profiles/300es.glsl
index 45212b30dc7..4b7160dd2c2 100644
--- a/src/glsl/builtins/profiles/300es.glsl
+++ b/src/glsl/builtins/profiles/300es.glsl
@@ -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