[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