Mesa (master): mesa: fix trivial bugs in glPopAttrib

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Jan 30 21:52:58 UTC 2021


Module: Mesa
Branch: master
Commit: cd0148dd38989a749ab7ddb7e437e4fb3674df5f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd0148dd38989a749ab7ddb7e437e4fb3674df5f

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Dec 19 02:40:15 2020 -0500

mesa: fix trivial bugs in glPopAttrib

There were quite a few. Hopefully the comments make it clear.

Reviewed-by: Zoltán Böszörményi <zboszor at gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8181>

---

 src/mesa/main/attrib.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index ff11ae245bd..4c945c2444c 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -808,6 +808,8 @@ _mesa_PopAttrib(void)
       FLUSH_CURRENT(ctx, 0);
       memcpy(&ctx->Current, &attr->Current,
              sizeof(struct gl_current_attrib));
+      /* Set _NEW_LIGHT because current attribs may reference materials. */
+      ctx->NewState |= _NEW_CURRENT_ATTRIB | _NEW_LIGHT;
    }
 
    if (mask & GL_DEPTH_BUFFER_BIT) {
@@ -830,6 +832,7 @@ _mesa_PopAttrib(void)
                              ctx->DriverFlags.NewClipPlaneEnable |
                              ctx->DriverFlags.NewDepth |
                              ctx->DriverFlags.NewDepthClamp |
+                             ctx->DriverFlags.NewFragClamp |
                              ctx->DriverFlags.NewFramebufferSRGB |
                              ctx->DriverFlags.NewLineState |
                              ctx->DriverFlags.NewLogicOp |
@@ -837,9 +840,11 @@ _mesa_PopAttrib(void)
                              ctx->DriverFlags.NewPolygonState |
                              ctx->DriverFlags.NewSampleAlphaToXEnable |
                              ctx->DriverFlags.NewSampleMask |
+                             ctx->DriverFlags.NewSampleShading |
                              ctx->DriverFlags.NewScissorTest |
                              ctx->DriverFlags.NewStencil |
-                             ctx->DriverFlags.NewNvConservativeRasterization;
+                             ctx->DriverFlags.NewNvConservativeRasterization |
+                             ctx->DriverFlags.NewTileRasterOrder;
    }
 
    if (mask & GL_EVAL_BIT) {
@@ -939,7 +944,8 @@ _mesa_PopAttrib(void)
                      ColorMaterial);
       TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled,
                       attr->Light.ColorMaterialEnabled, GL_COLOR_MATERIAL);
-      /* materials */
+      /* Materials - they might be used by current attribs. */
+      ctx->NewState |= _NEW_CURRENT_ATTRIB;
       memcpy(&ctx->Light.Material, &attr->Light.Material,
              sizeof(struct gl_material));
       if (ctx->Extensions.ARB_color_buffer_float) {



More information about the mesa-commit mailing list