[Mesa-dev] [PATCH 2/2] nvc0: account for shader-allocated local memory needs
Samuel Pitoiset
samuel.pitoiset at gmail.com
Thu May 19 08:21:38 UTC 2016
I wonder why we don't set up the local memory size on nv50 (maybe we
don't need to?). Anyway this will only affect OpenCL programs which is
not going to happen in the near future.
I would suggest to add a comment which explains why we need that (ie.
spilling).
Assuming info->bin.tlsSpace is correct, this patch is:
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
On 05/19/2016 03:28 AM, Ilia Mirkin wrote:
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
> src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 2 +-
> src/gallium/drivers/nouveau/nvc0/nve4_compute.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> index d33f759..80d6f38 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> @@ -371,7 +371,7 @@ nvc0_launch_grid(struct pipe_context *pipe, const struct pipe_grid_info *info)
> PUSH_DATA (push, nvc0_program_symbol_offset(cp, info->pc));
>
> BEGIN_NVC0(push, NVC0_CP(LOCAL_POS_ALLOC), 3);
> - PUSH_DATA (push, align(cp->cp.lmem_size, 0x10));
> + PUSH_DATA (push, (cp->hdr[1] & 0xfffff0) + align(cp->cp.lmem_size, 0x10));
> PUSH_DATA (push, 0);
> PUSH_DATA (push, 0x800); /* WARP_CSTACK_SIZE */
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nve4_compute.c b/src/gallium/drivers/nouveau/nvc0/nve4_compute.c
> index 1fe6026..7334c5f 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nve4_compute.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nve4_compute.c
> @@ -553,7 +553,7 @@ nve4_compute_setup_launch_desc(struct nvc0_context *nvc0,
> desc->blockdim_z = info->block[2];
>
> desc->shared_size = align(cp->cp.smem_size, 0x100);
> - desc->local_size_p = align(cp->cp.lmem_size, 0x10);
> + desc->local_size_p = (cp->hdr[1] & 0xfffff0) + align(cp->cp.lmem_size, 0x10);
> desc->local_size_n = 0;
> desc->cstack_size = 0x800;
> desc->cache_split = nve4_compute_derive_cache_split(nvc0, cp->cp.smem_size);
>
--
-Samuel
More information about the mesa-dev
mailing list