[Mesa-dev] [PATCH v2 10/28] glsl/ir: Add printing support for doubles

Ian Romanick idr at freedesktop.org
Thu Feb 5 23:48:52 PST 2015


This patch is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 02/06/2015 06:56 AM, Ilia Mirkin wrote:
> From: Dave Airlie <airlied at gmail.com>
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> Reviewed-by: Matt Turner <mattst88 at gmail.com>
> ---
>  src/glsl/ir_print_visitor.cpp | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp
> index bd39805..3600827 100644
> --- a/src/glsl/ir_print_visitor.cpp
> +++ b/src/glsl/ir_print_visitor.cpp
> @@ -436,6 +436,17 @@ void ir_print_visitor::visit(ir_constant *ir)
>                 fprintf(f, "%f", ir->value.f[i]);
>              break;
>  	 case GLSL_TYPE_BOOL:  fprintf(f, "%d", ir->value.b[i]); break;
> +	 case GLSL_TYPE_DOUBLE:
> +            if (ir->value.d[i] == 0.0)
> +               /* 0.0 == -0.0, so print with %f to get the proper sign. */
> +               fprintf(f, "%.1f", ir->value.d[i]);
> +            else if (fabs(ir->value.d[i]) < 0.000001)
> +               fprintf(f, "%a", ir->value.f[i]);
> +            else if (fabs(ir->value.d[i]) > 1000000.0)
> +               fprintf(f, "%e", ir->value.d[i]);
> +            else
> +               fprintf(f, "%f", ir->value.d[i]);
> +            break;
>  	 default: assert(0);
>  	 }
>        }
> 



More information about the mesa-dev mailing list