summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2022-06-20 14:39:36 -0400
committerMarge Bot <emma+marge@anholt.net>2022-06-22 13:27:29 +0000
commit90586f812c9013b49b9c3a2b93664d4707828b9d (patch)
tree3b5c93fa962611db456b8f6e8b825fb3c5d3e68c
parent096c5aa34a835d66b0cb5d83cc513980113a8e74 (diff)
mesa: explicitly disallow multiple pointsize exports from generating
for the fixedfunc vertex case this is important since the fixedfunc shader may have already added an (attenuated) pointsize Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17145>
-rw-r--r--src/mesa/state_tracker/st_program.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 3cd167ab095..955efccfa77 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1227,6 +1227,8 @@ st_can_add_pointsize_to_program(struct st_context *st, struct gl_program *prog)
assert(nir->info.stage == MESA_SHADER_VERTEX ||
nir->info.stage == MESA_SHADER_TESS_EVAL ||
nir->info.stage == MESA_SHADER_GEOMETRY);
+ if (nir->info.outputs_written & VARYING_BIT_PSIZ)
+ return false;
unsigned max_components = nir->info.stage == MESA_SHADER_GEOMETRY ?
st->ctx->Const.MaxGeometryTotalOutputComponents :
st->ctx->Const.Program[nir->info.stage].MaxOutputComponents;