summaryrefslogtreecommitdiff
path: root/src/glsl/builtins
diff options
context:
space:
mode:
authorOlivier Galibert <galibert@pobox.com>2012-05-08 20:40:32 +0200
committerKenneth Graunke <kenneth@whitecape.org>2012-06-07 00:06:17 -0700
commit500dcbb1aa991d4c92200fcacd6eb288bb2638d7 (patch)
treee27a1039589a9bc5611792862175febcd543d4dd /src/glsl/builtins
parent199771bc325900eb1d3acc7fa03808894a94fdb2 (diff)
glsl: New unary opcodes for ARB_shader_bit_encoding support.
The opcodes are bitcast_f2u, bitcast_f2i, bitcast_i2f and bitcast_u2f. Signed-off-by: Olivier Galibert <galibert@pobox.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/glsl/builtins')
-rw-r--r--src/glsl/builtins/ir/floatBitsToInt.ir21
-rw-r--r--src/glsl/builtins/ir/floatBitsToUint.ir21
-rw-r--r--src/glsl/builtins/ir/intBitsToFloat.ir21
-rw-r--r--src/glsl/builtins/ir/uintBitsToFloat.ir21
-rw-r--r--src/glsl/builtins/profiles/ARB_shader_bit_encoding.glsl22
5 files changed, 106 insertions, 0 deletions
diff --git a/src/glsl/builtins/ir/floatBitsToInt.ir b/src/glsl/builtins/ir/floatBitsToInt.ir
new file mode 100644
index 00000000000..a5db4b3269a
--- /dev/null
+++ b/src/glsl/builtins/ir/floatBitsToInt.ir
@@ -0,0 +1,21 @@
+((function floatBitsToInt
+ (signature int
+ (parameters
+ (declare (in) float arg))
+ ((return (expression int bitcast_f2i (var_ref arg)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) vec2 arg))
+ ((return (expression ivec2 bitcast_f2i (var_ref arg)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) vec3 arg))
+ ((return (expression ivec3 bitcast_f2i (var_ref arg)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) vec4 arg))
+ ((return (expression ivec4 bitcast_f2i (var_ref arg)))))
+))
diff --git a/src/glsl/builtins/ir/floatBitsToUint.ir b/src/glsl/builtins/ir/floatBitsToUint.ir
new file mode 100644
index 00000000000..09463bd9a75
--- /dev/null
+++ b/src/glsl/builtins/ir/floatBitsToUint.ir
@@ -0,0 +1,21 @@
+((function floatBitsToUint
+ (signature uint
+ (parameters
+ (declare (in) float arg))
+ ((return (expression uint bitcast_f2u (var_ref arg)))))
+
+ (signature uvec2
+ (parameters
+ (declare (in) vec2 arg))
+ ((return (expression uvec2 bitcast_f2u (var_ref arg)))))
+
+ (signature uvec3
+ (parameters
+ (declare (in) vec3 arg))
+ ((return (expression uvec3 bitcast_f2u (var_ref arg)))))
+
+ (signature uvec4
+ (parameters
+ (declare (in) vec4 arg))
+ ((return (expression uvec4 bitcast_f2u (var_ref arg)))))
+))
diff --git a/src/glsl/builtins/ir/intBitsToFloat.ir b/src/glsl/builtins/ir/intBitsToFloat.ir
new file mode 100644
index 00000000000..cc6aafe1adc
--- /dev/null
+++ b/src/glsl/builtins/ir/intBitsToFloat.ir
@@ -0,0 +1,21 @@
+((function intBitsToFloat
+ (signature float
+ (parameters
+ (declare (in) int arg))
+ ((return (expression float bitcast_i2f (var_ref arg)))))
+
+ (signature vec2
+ (parameters
+ (declare (in) ivec2 arg))
+ ((return (expression vec2 bitcast_i2f (var_ref arg)))))
+
+ (signature vec3
+ (parameters
+ (declare (in) ivec3 arg))
+ ((return (expression vec3 bitcast_i2f (var_ref arg)))))
+
+ (signature vec4
+ (parameters
+ (declare (in) ivec4 arg))
+ ((return (expression vec4 bitcast_i2f (var_ref arg)))))
+))
diff --git a/src/glsl/builtins/ir/uintBitsToFloat.ir b/src/glsl/builtins/ir/uintBitsToFloat.ir
new file mode 100644
index 00000000000..1073d761898
--- /dev/null
+++ b/src/glsl/builtins/ir/uintBitsToFloat.ir
@@ -0,0 +1,21 @@
+((function uintBitsToFloat
+ (signature float
+ (parameters
+ (declare (in) uint arg))
+ ((return (expression float bitcast_u2f (var_ref arg)))))
+
+ (signature vec2
+ (parameters
+ (declare (in) uvec2 arg))
+ ((return (expression vec2 bitcast_u2f (var_ref arg)))))
+
+ (signature vec3
+ (parameters
+ (declare (in) uvec3 arg))
+ ((return (expression vec3 bitcast_u2f (var_ref arg)))))
+
+ (signature vec4
+ (parameters
+ (declare (in) uvec4 arg))
+ ((return (expression vec4 bitcast_u2f (var_ref arg)))))
+))
diff --git a/src/glsl/builtins/profiles/ARB_shader_bit_encoding.glsl b/src/glsl/builtins/profiles/ARB_shader_bit_encoding.glsl
new file mode 100644
index 00000000000..e0345940157
--- /dev/null
+++ b/src/glsl/builtins/profiles/ARB_shader_bit_encoding.glsl
@@ -0,0 +1,22 @@
+#version 130
+#extension GL_ARB_shader_bit_encoding : enable
+
+int floatBitsToInt(float value);
+ivec2 floatBitsToInt(vec2 value);
+ivec3 floatBitsToInt(vec3 value);
+ivec4 floatBitsToInt(vec4 value);
+
+uint floatBitsToUint(float value);
+uvec2 floatBitsToUint(vec2 value);
+uvec3 floatBitsToUint(vec3 value);
+uvec4 floatBitsToUint(vec4 value);
+
+float intBitsToFloat(int value);
+vec2 intBitsToFloat(ivec2 value);
+vec3 intBitsToFloat(ivec3 value);
+vec4 intBitsToFloat(ivec4 value);
+
+float uintBitsToFloat(uint value);
+vec2 uintBitsToFloat(uvec2 value);
+vec3 uintBitsToFloat(uvec3 value);
+vec4 uintBitsToFloat(uvec4 value);