Mesa (master): glsl: Add support for the 1.30 round() built-in.
Kenneth Graunke
kwg at kemper.freedesktop.org
Thu Oct 14 23:00:13 UTC 2010
Module: Mesa
Branch: master
Commit: 27ced5c5ff907557007ed6cb78cef5810cf48ef5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=27ced5c5ff907557007ed6cb78cef5810cf48ef5
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Thu Oct 14 14:33:30 2010 -0700
glsl: Add support for the 1.30 round() built-in.
This implements round() via the ir_unop_round_even opcode, rather than
adding a new opcode. We may wish to add one in the future, since it
might enable a small performance increase on some hardware, but for now,
this should suffice.
---
src/glsl/builtins/ir/round | 21 +++++++++++++++++++++
src/glsl/builtins/profiles/130.frag | 5 +++++
src/glsl/builtins/profiles/130.vert | 5 +++++
3 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/src/glsl/builtins/ir/round b/src/glsl/builtins/ir/round
new file mode 100644
index 0000000..d0d425b
--- /dev/null
+++ b/src/glsl/builtins/ir/round
@@ -0,0 +1,21 @@
+((function round
+ (signature float
+ (parameters
+ (declare (in) float arg0))
+ ((return (expression float round_even (var_ref arg0)))))
+
+ (signature vec2
+ (parameters
+ (declare (in) vec2 arg0))
+ ((return (expression vec2 round_even (var_ref arg0)))))
+
+ (signature vec3
+ (parameters
+ (declare (in) vec3 arg0))
+ ((return (expression vec3 round_even (var_ref arg0)))))
+
+ (signature vec4
+ (parameters
+ (declare (in) vec4 arg0))
+ ((return (expression vec4 round_even (var_ref arg0)))))
+))
diff --git a/src/glsl/builtins/profiles/130.frag b/src/glsl/builtins/profiles/130.frag
index c8b6319..9644070 100644
--- a/src/glsl/builtins/profiles/130.frag
+++ b/src/glsl/builtins/profiles/130.frag
@@ -148,6 +148,11 @@ vec2 trunc(vec2 x);
vec3 trunc(vec3 x);
vec4 trunc(vec4 x);
+float round(float x);
+vec2 round(vec2 x);
+vec3 round(vec3 x);
+vec4 round(vec4 x);
+
float roundEven(float x);
vec2 roundEven(vec2 x);
vec3 roundEven(vec3 x);
diff --git a/src/glsl/builtins/profiles/130.vert b/src/glsl/builtins/profiles/130.vert
index 9d1056f..eb76518 100644
--- a/src/glsl/builtins/profiles/130.vert
+++ b/src/glsl/builtins/profiles/130.vert
@@ -148,6 +148,11 @@ vec2 trunc(vec2 x);
vec3 trunc(vec3 x);
vec4 trunc(vec4 x);
+float round(float x);
+vec2 round(vec2 x);
+vec3 round(vec3 x);
+vec4 round(vec4 x);
+
float roundEven(float x);
vec2 roundEven(vec2 x);
vec3 roundEven(vec3 x);
More information about the mesa-commit
mailing list