[Mesa-dev] [PATCH] svga: implement CEIL opcode translation

Jose Fonseca jfonseca at vmware.com
Wed May 9 09:51:44 PDT 2012


Looks good to me.

Jose

----- Original Message -----
> ---
>  src/gallium/drivers/svga/svga_tgsi_insn.c |   28
>  ++++++++++++++++++++++++++++
>  1 files changed, 28 insertions(+), 0 deletions(-)
> 
> diff --git a/src/gallium/drivers/svga/svga_tgsi_insn.c
> b/src/gallium/drivers/svga/svga_tgsi_insn.c
> index 5e6d1fb..a689126 100644
> --- a/src/gallium/drivers/svga/svga_tgsi_insn.c
> +++ b/src/gallium/drivers/svga/svga_tgsi_insn.c
> @@ -871,6 +871,31 @@ static boolean emit_floor(struct
> svga_shader_emitter *emit,
>  }
>  
>  
> +/* Translate the following TGSI CEIL instruction.
> + *    CEIL  DST, SRC
> + * To the following SVGA3D instruction sequence.
> + *    FRC  TMP, -SRC
> + *    ADD  DST, SRC, TMP
> + */
> +static boolean emit_ceil(struct svga_shader_emitter *emit,
> +                         const struct tgsi_full_instruction *insn)
> +{
> +   SVGA3dShaderDestToken dst = translate_dst_register(emit, insn,
> 0);
> +   const struct src_register src0 = translate_src_register(emit,
> &insn->Src[0]);
> +   SVGA3dShaderDestToken temp = get_temp(emit);
> +
> +   /* FRC  TMP, -SRC */
> +   if (!submit_op1(emit, inst_token(SVGA3DOP_FRC), temp,
> negate(src0)))
> +      return FALSE;
> +
> +   /* ADD DST, SRC, TMP */
> +   if (!submit_op2(emit, inst_token(SVGA3DOP_ADD), dst, src0,
> src(temp)))
> +      return FALSE;
> +
> +   return TRUE;
> +}
> +
> +
>  /* Translate the following TGSI CMP instruction.
>   *    CMP  DST, SRC0, SRC1, SRC2
>   * To the following SVGA3D instruction sequence.
> @@ -2435,6 +2460,9 @@ static boolean svga_emit_instruction( struct
> svga_shader_emitter *emit,
>     case TGSI_OPCODE_TRUNC:        /* should be TRUNC, not FLR */
>        return emit_floor( emit, insn );
>  
> +   case TGSI_OPCODE_CEIL:
> +      return emit_ceil( emit, insn );
> +
>     case TGSI_OPCODE_CMP:
>        return emit_cmp( emit, insn );
>  
> --
> 1.7.3.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list