[Mesa-dev] [PATCH] radeonsi: Don't use global variables for tess lds

Edward O'Callaghan funfunctor at folklore1984.net
Mon Aug 29 00:21:44 UTC 2016


Missing Signoff-by line but otherwise with that fix,

Reviewed-By: Edward O'Callaghan <funfunctor at folklore1984.net>

On 08/27/2016 05:52 AM, Tom Stellard wrote:
> We were allocating global variables for the maximum LDS size
> which made the compiler think we were using all of LDS, which
> isn't the case.
> ---
>  src/gallium/drivers/radeonsi/si_shader.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
> index 64c367e..5d972cb 100644
> --- a/src/gallium/drivers/radeonsi/si_shader.c
> +++ b/src/gallium/drivers/radeonsi/si_shader.c
> @@ -5420,16 +5420,13 @@ static unsigned llvm_get_type_size(LLVMTypeRef type)
>  static void declare_tess_lds(struct si_shader_context *ctx)
>  {
>  	struct gallivm_state *gallivm = &ctx->radeon_bld.gallivm;
> -	LLVMTypeRef i32 = ctx->radeon_bld.soa.bld_base.uint_bld.elem_type;
> -	unsigned lds_size = ctx->screen->b.chip_class >= CIK ? 65536 : 32768;
> +	struct lp_build_tgsi_context *bld_base = &ctx->radeon_bld.soa.bld_base;
> +	struct lp_build_context *uint = &bld_base->uint_bld;
>  
> -	/* The actual size is computed outside of the shader to reduce
> -	 * the number of shader variants. */
> -	ctx->lds =
> -		LLVMAddGlobalInAddressSpace(gallivm->module,
> -					    LLVMArrayType(i32, lds_size / 4),
> -					    "tess_lds",
> -					    LOCAL_ADDR_SPACE);
> +	unsigned lds_size = ctx->screen->b.chip_class >= CIK ? 65536 : 32768;
> +	ctx->lds = LLVMBuildIntToPtr(gallivm->builder, uint->zero,
> +		LLVMPointerType(LLVMArrayType(ctx->i32, lds_size / 4), LOCAL_ADDR_SPACE),
> +		"tess_lds");
>  }
>  
>  static void create_function(struct si_shader_context *ctx)
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160829/6b9d231b/attachment.sig>


More information about the mesa-dev mailing list