diff options
-rw-r--r-- | src/mesa/main/dlist.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 3e8b5a94245..2af0dd3c597 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -3203,7 +3203,11 @@ save_ShadeModel(GLenum mode) return; SAVE_FLUSH_VERTICES(ctx); - ctx->ListState.Current.ShadeModel = mode; + + /* Only save the value if we know the statechange will take effect: + */ + if (ctx->Driver.CurrentSavePrimitive == PRIM_OUTSIDE_BEGIN_END) + ctx->ListState.Current.ShadeModel = mode; n = ALLOC_INSTRUCTION(ctx, OPCODE_SHADE_MODEL, 1); if (n) { |