[Mesa-dev] [PATCH 2/5] gallivm: pass build context to exec_mask_store.

Jose Fonseca jfonseca at vmware.com
Mon Feb 6 11:39:06 PST 2012



----- Original Message -----
> From: Dave Airlie <airlied at redhat.com>
> 
> For now just pass the current context, but when we want to
> store int or unsigned we need to pass those later.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c |   14
>  +++++++++-----
>  1 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> index 2be4195..eb5176a 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
> @@ -268,6 +268,7 @@ static void lp_exec_endloop(struct gallivm_state
> *gallivm,
>   * (0 means don't store this bit, 1 means do store).
>   */
>  static void lp_exec_mask_store(struct lp_exec_mask *mask,
> +                               struct lp_build_context *bldc,

Please use bld_store, for consistency w/ below.

Otherwise looks good.

Jose

>                                 LLVMValueRef pred,
>                                 LLVMValueRef val,
>                                 LLVMValueRef dst)
> @@ -287,7 +288,7 @@ static void lp_exec_mask_store(struct
> lp_exec_mask *mask,
>        LLVMValueRef real_val, dst_val;
>  
>        dst_val = LLVMBuildLoad(builder, dst, "");
> -      real_val = lp_build_select(mask->bld,
> +      real_val = lp_build_select(bldc,
>                                   pred,
>                                   val, dst_val);
>  
> @@ -821,6 +822,9 @@ emit_store_chan(
>     const struct tgsi_full_dst_register *reg = &inst->Dst[index];
>     struct lp_build_context *uint_bld = &bld->uint_bld;
>     LLVMValueRef indirect_index = NULL;
> +   struct lp_build_context *bld_store;
> +
> +   bld_store = &bld->bld_base.base;
>  
>     switch( inst->Instruction.Saturate ) {
>     case TGSI_SAT_NONE:
> @@ -889,7 +893,7 @@ emit_store_chan(
>        else {
>           LLVMValueRef out_ptr = lp_get_output_ptr(bld,
>           reg->Register.Index,
>                                                 chan_index);
> -         lp_exec_mask_store(&bld->exec_mask, pred, value, out_ptr);
> +         lp_exec_mask_store(&bld->exec_mask, bld_store, pred, value,
> out_ptr);
>        }
>        break;
>  
> @@ -932,17 +936,17 @@ emit_store_chan(
>        else {
>           LLVMValueRef temp_ptr = lp_get_temp_ptr_soa(bld,
>           reg->Register.Index,
>                                                chan_index);
> -         lp_exec_mask_store(&bld->exec_mask, pred, value, temp_ptr);
> +         lp_exec_mask_store(&bld->exec_mask, bld_store, pred, value,
> temp_ptr);
>        }
>        break;
>  
>     case TGSI_FILE_ADDRESS:
> -      lp_exec_mask_store(&bld->exec_mask, pred, value,
> +      lp_exec_mask_store(&bld->exec_mask, bld_store, pred, value,
>                           bld->addr[reg->Register.Index][chan_index]);
>        break;
>  
>     case TGSI_FILE_PREDICATE:
> -      lp_exec_mask_store(&bld->exec_mask, pred, value,
> +      lp_exec_mask_store(&bld->exec_mask, bld_store, pred, value,
>                           bld->preds[reg->Register.Index][chan_index]);
>        break;
>  
> --
> 1.7.7.6
> 
> _______________________________________________
> 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