diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c index bbc8edb35e0..2324f369488 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c @@ -331,7 +331,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 1fe60267ac1..7334c5f4498 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);