diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 52b3232386d..e81f7757aa5 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -2445,6 +2445,7 @@ bifrost_compile_shader_nir(void *mem_ctx, nir_shader *nir, ctx->quirks = bifrost_get_quirks(inputs->gpu_id); ctx->arch = inputs->gpu_id >> 12; ctx->is_blend = inputs->is_blend; + ctx->is_blit = inputs->is_blit; ctx->blend_desc = inputs->blend.bifrost_blend_desc; ctx->push = &program->push; memcpy(ctx->blend_constants, inputs->blend.constants, sizeof(ctx->blend_constants)); diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h index 0009d2c97d2..278006ad054 100644 --- a/src/panfrost/bifrost/compiler.h +++ b/src/panfrost/bifrost/compiler.h @@ -503,8 +503,8 @@ typedef struct { unsigned arch; unsigned tls_size; - /* Is internally a blend shader? Depends on stage == FRAGMENT */ - bool is_blend; + /* Is internally a blend/blit shader? Depends on stage == FRAGMENT */ + bool is_blend, is_blit; /* Blend constants */ float blend_constants[4]; diff --git a/src/panfrost/lib/pan_blit.c b/src/panfrost/lib/pan_blit.c index af6ff75706d..02d55663d53 100644 --- a/src/panfrost/lib/pan_blit.c +++ b/src/panfrost/lib/pan_blit.c @@ -104,6 +104,7 @@ panfrost_build_blit_shader(struct panfrost_device *dev, struct panfrost_compile_inputs inputs = { .gpu_id = dev->gpu_id, + .is_blit = true, }; panfrost_program *program = diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h index 9622a4bc890..c5132754299 100644 --- a/src/panfrost/util/pan_ir.h +++ b/src/panfrost/util/pan_ir.h @@ -145,7 +145,7 @@ typedef struct { struct panfrost_compile_inputs { unsigned gpu_id; - bool is_blend; + bool is_blend, is_blit; struct { unsigned rt; unsigned nr_samples;