From 7c302c2deff067307bee8d2784300c99fc82d6fb Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 15 Jul 2020 08:33:28 -0400 Subject: [PATCH] mesa/st: do not run lower_psiz_mov on vertex shader if geometry shader is present MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this only needs to be changed on the last stage between the two Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_atom_shader.c | 8 +++++--- src/mesa/state_tracker/st_context.c | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c index ec55e336ebb..f5ccced55bd 100644 --- a/src/mesa/state_tracker/st_atom_shader.c +++ b/src/mesa/state_tracker/st_atom_shader.c @@ -225,9 +225,11 @@ st_update_vp( struct st_context *st ) key.clip_negative_one_to_one = st->ctx->Transform.ClipDepthMode == GL_NEGATIVE_ONE_TO_ONE; - /* _NEW_POINT */ - key.lower_point_size = st->lower_point_size && - !st_point_size_per_vertex(st->ctx); + if (!st->ctx->GeometryProgram._Current) { + /* _NEW_POINT */ + key.lower_point_size = st->lower_point_size && + !st_point_size_per_vertex(st->ctx); + } /* _NEW_TRANSFORM */ if (st->lower_ucp && st_user_clip_planes_enabled(st->ctx) && diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index afd70ab1749..1faa87e433d 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -258,6 +258,10 @@ st_invalidate_state(struct gl_context *ctx) } } + /* Update the vertex shader if ctx->Point was changed. */ + if (st->lower_point_size && new_state & _NEW_POINT) + st->dirty |= ST_NEW_VS_STATE | ST_NEW_GS_STATE; + /* Which shaders are dirty will be determined manually. */ if (new_state & _NEW_PROGRAM) { st->gfx_shaders_may_be_dirty = true;