From 69edb32eaa53cbce7ca15fcbbfb453be968e4d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?= Date: Wed, 26 Feb 2020 07:49:27 +0100 Subject: [PATCH] mesa: Flush vertices before changing the OpenGL state. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák CC: Signed-off-by: Mathias Fröhlich Tested-by: Marge Bot Part-of: (cherry picked from commit 636656bcd7801c703ebcf9bd4c65197e4e6cbee8) --- .pick_status.json | 2 +- src/mesa/main/conservativeraster.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 241941fb501..eb9d9a2077d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1075,7 +1075,7 @@ "description": "mesa: Flush vertices before changing the OpenGL state.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/mesa/main/conservativeraster.c b/src/mesa/main/conservativeraster.c index 9068a00b4c9..d27c21c1f36 100644 --- a/src/mesa/main/conservativeraster.c +++ b/src/mesa/main/conservativeraster.c @@ -59,6 +59,11 @@ conservative_raster_parameter(GLenum pname, GLfloat param, _mesa_error(ctx, GL_INVALID_VALUE, "%s(param=%g)", func, param); return; } + + FLUSH_VERTICES(ctx, 0); + ctx->NewDriverState |= + ctx->DriverFlags.NewNvConservativeRasterizationParams; + ctx->ConservativeRasterDilate = CLAMP(param, ctx->Const.ConservativeRasterDilateRange[0], @@ -74,6 +79,11 @@ conservative_raster_parameter(GLenum pname, GLfloat param, "%s(pname=%s)", func, _mesa_enum_to_string(param)); return; } + + FLUSH_VERTICES(ctx, 0); + ctx->NewDriverState |= + ctx->DriverFlags.NewNvConservativeRasterizationParams; + ctx->ConservativeRasterMode = param; break; default: @@ -81,10 +91,6 @@ conservative_raster_parameter(GLenum pname, GLfloat param, break; } - FLUSH_VERTICES(ctx, 0); - ctx->NewDriverState |= - ctx->DriverFlags.NewNvConservativeRasterizationParams; - return; invalid_pname_enum: if (!no_error)