[Mesa-dev] [PATCH 2/3] glsl: fix conversions from uint to bool and from float/bool to uint

Kenneth Graunke kenneth at whitecape.org
Mon Apr 18 11:30:24 PDT 2011


On 04/17/2011 11:39 PM, Bryan Cain wrote:
> ---
>   src/glsl/ir_validate.cpp |    6 +++---
>   1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
> index f3fceb2..41ffdfd 100644
> --- a/src/glsl/ir_validate.cpp
> +++ b/src/glsl/ir_validate.cpp
> @@ -254,7 +254,7 @@ ir_validate::visit_leave(ir_expression *ir)
>
>      case ir_unop_f2i:
>         assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
> -      assert(ir->type->base_type == GLSL_TYPE_INT);
> +      assert(ir->type->is_integer());
>         break;
>      case ir_unop_i2f:
>         assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
> @@ -269,12 +269,12 @@ ir_validate::visit_leave(ir_expression *ir)
>         assert(ir->type->base_type == GLSL_TYPE_FLOAT);
>         break;
>      case ir_unop_i2b:
> -      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
> +      assert(ir->operands[0]->type->is_integer());
>         assert(ir->type->base_type == GLSL_TYPE_BOOL);
>         break;
>      case ir_unop_b2i:
>         assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
> -      assert(ir->type->base_type == GLSL_TYPE_INT);
> +      assert(ir->type->is_integer());
>         break;
>      case ir_unop_u2f:
>         assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);

Hi Bryan,

Thanks for the patches!  This one looks good: f2i and b2i can have type 
int/ivec or uint/uvec, so using is_integer() is correct.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>


More information about the mesa-dev mailing list