+ else {
+ /* ST_NEW_TESSEVAL_PROGRAM | ST_NEW_GEOMETRY_PROGRAM */
+ /* We have to check the last bound stage and see if it writes psize */
+ struct gl_program *last = NULL;
+ if (ctx->GeometryProgram._Current)
+ last = ctx->GeometryProgram._Current;
+ else if (ctx->TessEvalProgram._Current)
+ last = ctx->TessEvalProgram._Current;
+ else if (ctx->VertexProgram._Current)
+ last = ctx->VertexProgram._Current;
+ if (last)
+ raster->point_size_per_vertex =
+ !!(last->info.outputs_written &
+ BITFIELD64_BIT(VARYING_SLOT_PSIZ));
+ }