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