From 090dd4fcc5d9f905c9dee9a8ad9972dad9d1166a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 14 Oct 2010 10:49:13 -0700 Subject: glsl: Add front-end support for the "trunc" built-in. --- src/glsl/builtins/profiles/130.vert | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/glsl/builtins/profiles/130.vert') diff --git a/src/glsl/builtins/profiles/130.vert b/src/glsl/builtins/profiles/130.vert index d0152b0374..d5674c27e2 100644 --- a/src/glsl/builtins/profiles/130.vert +++ b/src/glsl/builtins/profiles/130.vert @@ -143,6 +143,11 @@ vec2 floor(vec2 x); vec3 floor(vec3 x); vec4 floor(vec4 x); +float trunc(float x); +vec2 trunc(vec2 x); +vec3 trunc(vec3 x); +vec4 trunc(vec4 x); + float ceil(float x); vec2 ceil(vec2 x); vec3 ceil(vec3 x); -- cgit v1.2.3 From 6dc204c5dc723bbf9337aa7787cd6cc309a24285 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 14 Oct 2010 13:40:26 -0700 Subject: glsl: Add front-end support for GLSL 1.30's roundEven built-in. Implemented using the op-code introduced in the previous commit. --- src/glsl/builtins/ir/roundEven | 21 +++++++++++++++++++++ src/glsl/builtins/profiles/130.frag | 5 +++++ src/glsl/builtins/profiles/130.vert | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 src/glsl/builtins/ir/roundEven (limited to 'src/glsl/builtins/profiles/130.vert') diff --git a/src/glsl/builtins/ir/roundEven b/src/glsl/builtins/ir/roundEven new file mode 100644 index 0000000000..a9c99b6f44 --- /dev/null +++ b/src/glsl/builtins/ir/roundEven @@ -0,0 +1,21 @@ +((function roundEven + (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 51ee35ec09..c8b6319ae6 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 roundEven(float x); +vec2 roundEven(vec2 x); +vec3 roundEven(vec3 x); +vec4 roundEven(vec4 x); + float ceil(float x); vec2 ceil(vec2 x); vec3 ceil(vec3 x); diff --git a/src/glsl/builtins/profiles/130.vert b/src/glsl/builtins/profiles/130.vert index d5674c27e2..9d1056f282 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 roundEven(float x); +vec2 roundEven(vec2 x); +vec3 roundEven(vec3 x); +vec4 roundEven(vec4 x); + float ceil(float x); vec2 ceil(vec2 x); vec3 ceil(vec3 x); -- cgit v1.2.3 From 27ced5c5ff907557007ed6cb78cef5810cf48ef5 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 14 Oct 2010 14:33:30 -0700 Subject: 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(+) create mode 100644 src/glsl/builtins/ir/round (limited to 'src/glsl/builtins/profiles/130.vert') diff --git a/src/glsl/builtins/ir/round b/src/glsl/builtins/ir/round new file mode 100644 index 0000000000..d0d425bd65 --- /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 c8b6319ae6..96440703bd 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 9d1056f282..eb765186fc 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); -- cgit v1.2.3