[Mesa-dev] [PATCH 1/7] ir_to_mesa: Don't assertion fail on remaining GLSL 1.30 ops.

Chad Versace chad at chad-versace.us
Tue Sep 27 17:03:09 PDT 2011


For pathes 1-6:
Reviewed-by: Chad Versace <chad at chad-versace.us>

I have a minor comment on patch 7.

-- 
Chad Versace
chad at chad-versace.us

On 09/27/2011 03:08 PM, Eric Anholt wrote:
> For hardware drivers, we only have ir_to_mesa called for the purposes
> of potential swrast fallbacks (basically never on a 1.30 driver),
> which we don't really care about.  This will allow 1.30 to be
> implemented without rewriting swrast for it.
> ---
>   src/mesa/program/ir_to_mesa.cpp |   12 ++++++++++--
>   1 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
> index 7b2c69f..c5b71b3 100644
> --- a/src/mesa/program/ir_to_mesa.cpp
> +++ b/src/mesa/program/ir_to_mesa.cpp
> @@ -1456,14 +1456,22 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
>         emit_scalar(ir, OPCODE_POW, result_dst, op[0], op[1]);
>         break;
>
> -   case ir_unop_bit_not:
> +      /* GLSL 1.30 integer ops are unsupported in Mesa IR, but since
> +       * hardware backends have no way to avoid Mesa IR generation
> +       * even if they don't use it, we need to emit "something" and
> +       * continue.
> +       */
>      case ir_binop_lshift:
>      case ir_binop_rshift:
>      case ir_binop_bit_and:
>      case ir_binop_bit_xor:
>      case ir_binop_bit_or:
> +      emit(ir, OPCODE_ADD, result_dst, op[0], op[1]);
> +      break;
> +
> +   case ir_unop_bit_not:
>      case ir_unop_round_even:
> -      assert(!"GLSL 1.30 features unsupported");
> +      emit(ir, OPCODE_MOV, result_dst, op[0]);
>         break;
>
>      case ir_quadop_vector:




More information about the mesa-dev mailing list