diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index 03bc6bf8d99..9437f562fc4 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -789,11 +789,12 @@ panfrost_batch_adjust_stack_size(struct panfrost_batch *batch) for (unsigned i = 0; i < PIPE_SHADER_TYPES; ++i) { struct panfrost_compiled_shader *ss = ctx->prog[i]; + struct panfrost_compiled_shader *xfb_ss = + ctx->uncompiled[i] ? ctx->uncompiled[i]->xfb : NULL; - if (!ss) - continue; - - batch->stack_size = MAX2(batch->stack_size, ss->info.tls_size); + batch->stack_size = MAX3(batch->stack_size, + ss ? ss->info.tls_size : 0, + xfb_ss ? xfb_ss->info.tls_size : 0); } }