mesa/st: do not run lower_psiz_mov on vertex shader if geometry shader is present

this only needs to be changed on the last stage between the two

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5885>
This commit is contained in:
Mike Blumenkrantz
2020-07-15 08:33:28 -04:00
committed by Marge Bot
parent 6a87b61e63
commit 7c302c2def
2 changed files with 9 additions and 3 deletions
+5 -3
View File
@@ -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) &&
+4
View File
@@ -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;