diff --git a/.pick_status.json b/.pick_status.json index ecf35651fc4..878c46c14a0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -274,7 +274,7 @@ "description": "vbo: Only mark merged line strips as lines when actually converting them", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "310991415ee1f5bcdd91460f00205190e8e0c2d9" }, diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index b258e6ac117..b5d7d670f91 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -688,7 +688,7 @@ compile_vertex_list(struct gl_context *ctx) continue; } - /* Line strips get converted to lines */ + /* Line strips may get converted to lines */ if (mode == GL_LINE_STRIP) mode = GL_LINES; @@ -739,6 +739,9 @@ compile_vertex_list(struct gl_context *ctx) } } } else { + /* We didn't convert to LINES, so restore the original mode */ + mode = original_prims[i].mode; + for (unsigned j = 0; j < vertex_count; j++) { indices[idx++] = original_prims[i].start + j; }