diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 04b636e9357..c95563d4548 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -534,7 +534,7 @@ llvmpipe_get_compute_param(struct pipe_screen *_screen, case PIPE_COMPUTE_CAP_SUBGROUP_SIZE: if (ret) { uint32_t *subgroup_size = ret; - *subgroup_size = 32; + *subgroup_size = lp_native_vector_width / 32; } return sizeof(uint32_t); case PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS: diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c index 78e765e2aa4..cdb29f01453 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_cs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c @@ -922,7 +922,7 @@ llvmpipe_get_compute_state_info(struct pipe_context *pipe, void *cs, struct nir_shader* nir = shader->base.ir.nir; info->max_threads = 1024; - info->preferred_simd_size = 32; + info->preferred_simd_size = lp_native_vector_width / 32; // TODO: this is a bad estimate, but not much we can do without actually compiling the shaders info->private_memory = nir->scratch_size; }