From 93bf7104d02abc3a2c8f4d4d624df78fce6a2bbb Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 2 Nov 2022 10:49:22 -0400 Subject: [PATCH] panfrost: Don't allocate space for empty varyings PIPE_FORMAT_NONE has a block size of 1, oddly, but we don't actually need to allocate any space for it. This acts as a small optimization for a few shaders with the new varying linker. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/panfrost/pan_cmdstream.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index f666eae9cc1..d65fa94a9d3 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -2404,11 +2404,12 @@ pan_assign_varyings(const struct panfrost_device *dev, for (unsigned i = 0; i < producer_count; ++i) { signed loc = pan_find_vary(consumer_vars, consumer_count, producer_vars[i].location); + enum pipe_format format = loc >= 0 ? + consumer_vars[loc].format : + PIPE_FORMAT_NONE; - if (loc >= 0) { + if (format != PIPE_FORMAT_NONE) { offsets[i] = stride; - - enum pipe_format format = consumer_vars[loc].format; stride += util_format_get_blocksize(format); } else { offsets[i] = -1;