glsl/ir: Add printing support for doubles
Signed-off-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
@@ -436,6 +436,17 @@ void ir_print_visitor::visit(ir_constant *ir)
|
|||||||
fprintf(f, "%f", ir->value.f[i]);
|
fprintf(f, "%f", ir->value.f[i]);
|
||||||
break;
|
break;
|
||||||
case GLSL_TYPE_BOOL: fprintf(f, "%d", ir->value.b[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.d[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);
|
default: assert(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user