diff options
author | Olivier Galibert <[email protected]> | 2012-05-08 20:40:32 +0200 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-06-07 00:06:17 -0700 |
commit | 500dcbb1aa991d4c92200fcacd6eb288bb2638d7 (patch) | |
tree | e27a1039589a9bc5611792862175febcd543d4dd /src/glsl/builtins | |
parent | 199771bc325900eb1d3acc7fa03808894a94fdb2 (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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/builtins')
-rw-r--r-- | src/glsl/builtins/ir/floatBitsToInt.ir | 21 | ||||
-rw-r--r-- | src/glsl/builtins/ir/floatBitsToUint.ir | 21 | ||||
-rw-r--r-- | src/glsl/builtins/ir/intBitsToFloat.ir | 21 | ||||
-rw-r--r-- | src/glsl/builtins/ir/uintBitsToFloat.ir | 21 | ||||
-rw-r--r-- | src/glsl/builtins/profiles/ARB_shader_bit_encoding.glsl | 22 |
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); |