Mesa (main): mesa/st: drop the rasterizer driver flags

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 23 19:35:09 UTC 2021


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Dec 20 12:20:42 2021 +1000

mesa/st: drop the rasterizer driver flags

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14261>

---

 src/mesa/main/conservativeraster.c  |  9 +++----
 src/mesa/main/enable.c              | 52 ++++++++++++++++---------------------
 src/mesa/main/lines.c               |  9 ++++---
 src/mesa/main/mtypes.h              | 28 --------------------
 src/mesa/main/polygon.c             | 25 +++++++++---------
 src/mesa/main/viewport.c            |  9 +++----
 src/mesa/state_tracker/st_context.c |  7 -----
 7 files changed, 47 insertions(+), 92 deletions(-)

diff --git a/src/mesa/main/conservativeraster.c b/src/mesa/main/conservativeraster.c
index 24d6132b172..793a6c9e2bd 100644
--- a/src/mesa/main/conservativeraster.c
+++ b/src/mesa/main/conservativeraster.c
@@ -33,6 +33,8 @@
 #include "enums.h"
 #include "api_exec_decl.h"
 
+#include "state_tracker/st_context.h"
+
 static ALWAYS_INLINE void
 conservative_raster_parameter(GLenum pname, GLfloat param,
                               bool no_error, const char *func)
@@ -62,8 +64,7 @@ conservative_raster_parameter(GLenum pname, GLfloat param,
       }
 
       FLUSH_VERTICES(ctx, 0, 0);
-      ctx->NewDriverState |=
-         ctx->DriverFlags.NewNvConservativeRasterizationParams;
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
 
       ctx->ConservativeRasterDilate =
          CLAMP(param,
@@ -82,9 +83,7 @@ conservative_raster_parameter(GLenum pname, GLfloat param,
       }
 
       FLUSH_VERTICES(ctx, 0, 0);
-      ctx->NewDriverState |=
-         ctx->DriverFlags.NewNvConservativeRasterizationParams;
-
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
       ctx->ConservativeRasterMode = param;
       break;
    default:
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index e94e098040e..e8cd1dfafb6 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -503,10 +503,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
       case GL_CULL_FACE:
          if (ctx->Polygon.CullFlag == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.CullFlag = state;
          break;
       case GL_DEPTH_TEST:
@@ -577,9 +576,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Line.SmoothFlag == state)
             return;
-         FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE,
+         FLUSH_VERTICES(ctx, 0,
                         GL_LINE_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewLineState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Line.SmoothFlag = state;
          break;
       case GL_LINE_STIPPLE:
@@ -587,9 +586,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Line.StippleFlag == state)
             return;
-         FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE,
+         FLUSH_VERTICES(ctx, 0,
                         GL_LINE_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewLineState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Line.StippleFlag = state;
          break;
       case GL_INDEX_LOGIC_OP:
@@ -608,8 +607,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
          if (ctx->IntelConservativeRasterization == state)
             return;
          FLUSH_VERTICES(ctx, 0, 0);
-         ctx->NewDriverState |=
-            ctx->DriverFlags.NewIntelConservativeRasterization;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->IntelConservativeRasterization = state;
          _mesa_update_valid_to_render_state(ctx);
          break;
@@ -619,8 +617,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
          if (ctx->ConservativeRasterization == state)
             return;
          FLUSH_VERTICES(ctx, 0, GL_ENABLE_BIT);
-         ctx->NewDriverState |=
-            ctx->DriverFlags.NewNvConservativeRasterization;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->ConservativeRasterization = state;
          break;
       case GL_COLOR_LOGIC_OP:
@@ -818,10 +815,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Polygon.SmoothFlag == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.SmoothFlag = state;
          break;
       case GL_POLYGON_STIPPLE:
@@ -829,10 +825,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Polygon.StippleFlag == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.StippleFlag = state;
          break;
       case GL_POLYGON_OFFSET_POINT:
@@ -840,10 +835,9 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Polygon.OffsetPoint == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.OffsetPoint = state;
          break;
       case GL_POLYGON_OFFSET_LINE:
@@ -851,19 +845,17 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->Polygon.OffsetLine == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.OffsetLine = state;
          break;
       case GL_POLYGON_OFFSET_FILL:
          if (ctx->Polygon.OffsetFill == state)
             return;
-         FLUSH_VERTICES(ctx,
-                        ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+         FLUSH_VERTICES(ctx, 0,
                         GL_POLYGON_BIT | GL_ENABLE_BIT);
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+         ctx->NewDriverState |= ST_NEW_RASTERIZER;
          ctx->Polygon.OffsetFill = state;
          break;
       case GL_RESCALE_NORMAL_EXT:
@@ -1230,7 +1222,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->RasterDiscard != state) {
             FLUSH_VERTICES(ctx, 0, 0);
-            ctx->NewDriverState |= ctx->DriverFlags.NewRasterizerDiscard;
+            ctx->NewDriverState |= ST_NEW_RASTERIZER;
             ctx->RasterDiscard = state;
          }
          break;
@@ -1240,7 +1232,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->TileRasterOrderFixed != state) {
             FLUSH_VERTICES(ctx, 0, GL_ENABLE_BIT);
-            ctx->NewDriverState |= ctx->DriverFlags.NewTileRasterOrder;
+            ctx->NewDriverState |= ST_NEW_RASTERIZER;
             ctx->TileRasterOrderFixed = state;
          }
          break;
@@ -1250,7 +1242,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->TileRasterOrderIncreasingX != state) {
             FLUSH_VERTICES(ctx, 0, GL_ENABLE_BIT);
-            ctx->NewDriverState |= ctx->DriverFlags.NewTileRasterOrder;
+            ctx->NewDriverState |= ST_NEW_RASTERIZER;
             ctx->TileRasterOrderIncreasingX = state;
          }
          break;
@@ -1260,7 +1252,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
             goto invalid_enum_error;
          if (ctx->TileRasterOrderIncreasingY != state) {
             FLUSH_VERTICES(ctx, 0, GL_ENABLE_BIT);
-            ctx->NewDriverState |= ctx->DriverFlags.NewTileRasterOrder;
+            ctx->NewDriverState |= ST_NEW_RASTERIZER;
             ctx->TileRasterOrderIncreasingY = state;
          }
          break;
diff --git a/src/mesa/main/lines.c b/src/mesa/main/lines.c
index a4ec44bf7f8..7629d242e9f 100644
--- a/src/mesa/main/lines.c
+++ b/src/mesa/main/lines.c
@@ -30,6 +30,7 @@
 #include "mtypes.h"
 #include "api_exec_decl.h"
 
+#include "state_tracker/st_context.h"
 
 /**
  * Set the line width.
@@ -68,8 +69,8 @@ line_width(struct gl_context *ctx, GLfloat width, bool no_error)
       return;
    }
 
-   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE, GL_LINE_BIT);
-   ctx->NewDriverState |= ctx->DriverFlags.NewLineState;
+   FLUSH_VERTICES(ctx, 0, GL_LINE_BIT);
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
    ctx->Line.Width = width;
 }
 
@@ -120,8 +121,8 @@ _mesa_LineStipple( GLint factor, GLushort pattern )
        ctx->Line.StipplePattern == pattern)
       return;
 
-   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE, GL_LINE_BIT);
-   ctx->NewDriverState |= ctx->DriverFlags.NewLineState;
+   FLUSH_VERTICES(ctx, 0, GL_LINE_BIT);
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
    ctx->Line.StippleFactor = factor;
    ctx->Line.StipplePattern = pattern;
 }
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index fd94febb08d..c60657f64cc 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -4774,12 +4774,6 @@ struct gl_driver_flags
    /** gl_context::TransformFeedback::CurrentObject::shader_program */
    uint64_t NewTransformFeedbackProg;
 
-   /** gl_context::RasterDiscard */
-   uint64_t NewRasterizerDiscard;
-
-   /** gl_context::TileRasterOrder* */
-   uint64_t NewTileRasterOrder;
-
    /**
     * gl_context::UniformBufferBindings
     * gl_shader_program::UniformBlocks
@@ -4810,22 +4804,6 @@ struct gl_driver_flags
     */
    uint64_t NewTessState;
 
-   /**
-    * gl_context::IntelConservativeRasterization
-    */
-   uint64_t NewIntelConservativeRasterization;
-
-   /**
-    * gl_context::NvConservativeRasterization
-    */
-   uint64_t NewNvConservativeRasterization;
-
-   /**
-    * gl_context::ConservativeRasterMode/ConservativeRasterDilate
-    * gl_context::SubpixelPrecisionBias
-    */
-   uint64_t NewNvConservativeRasterizationParams;
-
    /**
     * gl_context::Scissor::WindowRects
     */
@@ -4885,12 +4863,6 @@ struct gl_driver_flags
    /** gl_context::Color::ClampFragmentColor */
    uint64_t NewFragClamp;
 
-   /** gl_context::Line */
-   uint64_t NewLineState;
-
-   /** gl_context::Polygon */
-   uint64_t NewPolygonState;
-
    /** gl_context::PolygonStipple */
    uint64_t NewPolygonStipple;
 
diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c
index 8414c3aa16e..4a0869aac8e 100644
--- a/src/mesa/main/polygon.c
+++ b/src/mesa/main/polygon.c
@@ -40,6 +40,7 @@
 #include "mtypes.h"
 #include "api_exec_decl.h"
 
+#include "state_tracker/st_context.h"
 
 /**
  * Specify whether to cull front- or back-facing facets.
@@ -64,9 +65,9 @@ cull_face(struct gl_context *ctx, GLenum mode, bool no_error)
       return;
    }
 
-   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+   FLUSH_VERTICES(ctx, 0,
                   GL_POLYGON_BIT);
-   ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
    ctx->Polygon.CullFaceMode = mode;
 }
 
@@ -113,9 +114,9 @@ front_face(struct gl_context *ctx, GLenum mode, bool no_error)
       return;
    }
 
-   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+   FLUSH_VERTICES(ctx, 0,
                   GL_POLYGON_BIT);
-   ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
    ctx->Polygon.FrontFace = mode;
 }
 
@@ -188,17 +189,17 @@ polygon_mode(struct gl_context *ctx, GLenum face, GLenum mode, bool no_error)
       }
       if (ctx->Polygon.FrontMode == mode)
          return;
-      FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+      FLUSH_VERTICES(ctx, 0,
                      GL_POLYGON_BIT);
-      ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
       ctx->Polygon.FrontMode = mode;
       break;
    case GL_FRONT_AND_BACK:
       if (ctx->Polygon.FrontMode == mode && ctx->Polygon.BackMode == mode)
          return;
-      FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+      FLUSH_VERTICES(ctx, 0,
                      GL_POLYGON_BIT);
-      ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
       ctx->Polygon.FrontMode = mode;
       ctx->Polygon.BackMode = mode;
       break;
@@ -209,9 +210,9 @@ polygon_mode(struct gl_context *ctx, GLenum face, GLenum mode, bool no_error)
       }
       if (ctx->Polygon.BackMode == mode)
          return;
-      FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+      FLUSH_VERTICES(ctx, 0,
                      GL_POLYGON_BIT);
-      ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
       ctx->Polygon.BackMode = mode;
       break;
    default:
@@ -314,9 +315,9 @@ _mesa_polygon_offset_clamp(struct gl_context *ctx,
        ctx->Polygon.OffsetClamp == clamp)
       return;
 
-   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewPolygonState ? 0 : _NEW_POLYGON,
+   FLUSH_VERTICES(ctx, 0,
                   GL_POLYGON_BIT);
-   ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
    ctx->Polygon.OffsetFactor = factor;
    ctx->Polygon.OffsetUnits = units;
    ctx->Polygon.OffsetClamp = clamp;
diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c
index 38a0651797d..12b0736f020 100644
--- a/src/mesa/main/viewport.c
+++ b/src/mesa/main/viewport.c
@@ -37,6 +37,7 @@
 #include "api_exec_decl.h"
 
 #include "state_tracker/st_cb_viewport.h"
+#include "state_tracker/st_context.h"
 
 static void
 clamp_viewport(struct gl_context *ctx, GLfloat *x, GLfloat *y,
@@ -515,10 +516,7 @@ clip_control(struct gl_context *ctx, GLenum origin, GLenum depth, bool no_error)
       ctx->Transform.ClipOrigin = origin;
 
       /* Affects the winding order of the front face. */
-      if (ctx->DriverFlags.NewPolygonState)
-         ctx->NewDriverState |= ctx->DriverFlags.NewPolygonState;
-      else
-         ctx->NewState |= _NEW_POLYGON;
+      ctx->NewDriverState |= ST_NEW_RASTERIZER;
    }
 
    if (ctx->Transform.ClipDepthMode != depth) {
@@ -601,8 +599,7 @@ subpixel_precision_bias(struct gl_context *ctx, GLuint xbits, GLuint ybits)
    ctx->SubpixelPrecisionBias[0] = xbits;
    ctx->SubpixelPrecisionBias[1] = ybits;
 
-   ctx->NewDriverState |=
-      ctx->DriverFlags.NewNvConservativeRasterizationParams;
+   ctx->NewDriverState |= ST_NEW_RASTERIZER;
 }
 
 void GLAPIENTRY
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index 2ad84c279f7..10c93a3ac79 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -447,8 +447,6 @@ st_init_driver_flags(struct st_context *st)
 {
    struct gl_driver_flags *f = &st->ctx->DriverFlags;
 
-   f->NewRasterizerDiscard = ST_NEW_RASTERIZER;
-   f->NewTileRasterOrder = ST_NEW_RASTERIZER;
    f->NewUniformBuffer = ST_NEW_UNIFORM_BUFFER;
    f->NewTessState = ST_NEW_TESS_STATE;
 
@@ -513,13 +511,8 @@ st_init_driver_flags(struct st_context *st)
    else
       f->NewClipPlaneEnable = ST_NEW_RASTERIZER;
 
-   f->NewLineState = ST_NEW_RASTERIZER;
-   f->NewPolygonState = ST_NEW_RASTERIZER;
    f->NewPolygonStipple = ST_NEW_POLY_STIPPLE;
    f->NewViewport = ST_NEW_VIEWPORT;
-   f->NewNvConservativeRasterization = ST_NEW_RASTERIZER;
-   f->NewNvConservativeRasterizationParams = ST_NEW_RASTERIZER;
-   f->NewIntelConservativeRasterization = ST_NEW_RASTERIZER;
 
    if (st->emulate_gl_clamp)
       f->NewSamplersWithClamp = ST_NEW_SAMPLERS |



More information about the mesa-commit mailing list