mesa: inline vbo_exec_invalidate_state() and call from mesa core
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 7 Jun 2017 03:26:16 +0000 (13:26 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Thu, 8 Jun 2017 23:13:46 +0000 (09:13 +1000)
Rather than calling it indirectly in each driver.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
16 files changed:
src/mesa/drivers/dri/i915/i915_context.c
src/mesa/drivers/dri/i915/intel_context.c
src/mesa/drivers/dri/i965/brw_context.c
src/mesa/drivers/dri/nouveau/nouveau_state.c
src/mesa/drivers/dri/r200/r200_state.c
src/mesa/drivers/dri/radeon/radeon_state.c
src/mesa/drivers/dri/swrast/swrast.c
src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/x11/xm_dd.c
src/mesa/main/state.c
src/mesa/state_tracker/st_context.c
src/mesa/vbo/vbo.h
src/mesa/vbo/vbo_context.c
src/mesa/vbo/vbo_context.h
src/mesa/vbo/vbo_exec.c
src/mesa/vbo/vbo_exec.h

index 1406b65b654a05ba8b7a77ea74832ba978dbd90f..4d89af182d51e9a0c763c122cac873123f7c9c4e 100644 (file)
@@ -58,7 +58,6 @@ i915InvalidateState(struct gl_context * ctx)
 
    _swrast_InvalidateState(ctx, new_state);
    _swsetup_InvalidateState(ctx, new_state);
-   _vbo_InvalidateState(ctx, new_state);
    _tnl_InvalidateState(ctx, new_state);
    _tnl_invalidate_vertex_state(ctx, new_state);
    intel_context(ctx)->NewGLState |= new_state;
index 6c59b425a91ddc57d6c4e6ee399e4b7f6a9aae84..7f3924573f926850ff55e147f4ea551712c0ac53 100644 (file)
@@ -321,7 +321,6 @@ intelInvalidateState(struct gl_context * ctx)
 
     if (ctx->swrast_context)
        _swrast_InvalidateState(ctx, new_state);
-   _vbo_InvalidateState(ctx, new_state);
 
    intel->NewGLState |= new_state;
 
index 81166450b90a0fdc87f2c688e65f1e1ccf2af3e7..6d27866fcea3ed61bc9a68dc28047d44d3c80060 100644 (file)
@@ -196,7 +196,6 @@ intel_update_state(struct gl_context * ctx)
 
    if (ctx->swrast_context)
       _swrast_InvalidateState(ctx, new_state);
-   _vbo_InvalidateState(ctx, new_state);
 
    brw->NewGLState |= new_state;
 
index 567f32fa431d3ce27913a341dd4d0c7b4deefaf0..6d998fca832d21c39779ac9bff7f0e8e9be58dfa 100644 (file)
@@ -494,7 +494,6 @@ nouveau_update_state(struct gl_context *ctx)
 
        _swrast_InvalidateState(ctx, new_state);
        _tnl_InvalidateState(ctx, new_state);
-       _vbo_InvalidateState(ctx, new_state);
 
        nouveau_state_emit(ctx);
 }
index d5a6f0917493e084e6873d38dbc672aa00bb284e..30437e3201ad36b208419120f1e0c809ea4b39bf 100644 (file)
@@ -2284,7 +2284,6 @@ static void r200InvalidateState(struct gl_context *ctx)
 
    _swrast_InvalidateState( ctx, new_state );
    _swsetup_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
    _tnl_InvalidateState( ctx, new_state );
    R200_CONTEXT(ctx)->radeon.NewGLState |= new_state;
 
index ff2a7089dd2b2a4aee565abf9108920ae836544c..940f8de3b48c67791ee4084e036135f1a20c404b 100644 (file)
@@ -2050,7 +2050,6 @@ static void radeonInvalidateState(struct gl_context *ctx)
 
    _swrast_InvalidateState( ctx, new_state );
    _swsetup_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
    _tnl_InvalidateState( ctx, new_state );
    R100_CONTEXT(ctx)->radeon.NewGLState |= new_state;
 }
index a68f7a0b96a2bb054410930651210ddc1999d743..3b1de420f6d6db4964d1d9d681ec08941c5885b8 100644 (file)
@@ -704,7 +704,6 @@ update_state(struct gl_context *ctx)
     /* not much to do here - pass it on */
     _swrast_InvalidateState( ctx, new_state );
     _swsetup_InvalidateState( ctx, new_state );
-    _vbo_InvalidateState( ctx, new_state );
     _tnl_InvalidateState( ctx, new_state );
 }
 
index ed69353743a1f2637b7784e70fa4ec1e35459b5b..c77dcc4d37212abebbf6f6f630c141b9a7db82ff 100644 (file)
@@ -123,7 +123,6 @@ osmesa_update_state(struct gl_context *ctx, GLuint new_state)
    _swrast_InvalidateState( ctx, new_state );
    _swsetup_InvalidateState( ctx, new_state );
    _tnl_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
 }
 
 static void
index e06831ca7776ce289d9ad1e405d080489ff0cfc2..61aa6c88aa36a1ea4036266022bf02a01bdf6755 100644 (file)
@@ -689,7 +689,6 @@ xmesa_update_state(struct gl_context *ctx)
     */
    _swrast_InvalidateState( ctx, new_state );
    _tnl_InvalidateState( ctx, new_state );
-   _vbo_InvalidateState( ctx, new_state );
    _swsetup_InvalidateState( ctx, new_state );
 
    if (_mesa_is_user_fbo(ctx->DrawBuffer))
index 04dafa983c5045f833628af236b529493ebe2c31..b7e165fab6209bb2edee68925df5b071f97b7b1c 100644 (file)
@@ -51,6 +51,7 @@
 #include "texobj.h"
 #include "texstate.h"
 #include "varray.h"
+#include "vbo/vbo_context.h"
 #include "viewport.h"
 #include "blend.h"
 
@@ -410,13 +411,15 @@ _mesa_update_state_locked( struct gl_context *ctx )
  out:
    new_prog_state |= update_program_constants(ctx);
 
+   ctx->NewState |= new_prog_state;
+   vbo_exec_invalidate_state(ctx);
+
    /*
     * Give the driver a chance to act upon the new_state flags.
     * The driver might plug in different span functions, for example.
     * Also, this is where the driver can invalidate the state of any
     * active modules (such as swrast_setup, swrast, tnl, etc).
     */
-   ctx->NewState |= new_prog_state;
    ctx->Driver.UpdateState(ctx);
    ctx->NewState = 0;
    ctx->Array.VAO->NewArrays = 0x0;
index 0e768ea9e44dd7dcba56e4414175b2753ffee9b7..743c7bde28078d1c74835153d0ae5640ce9e3d46 100644 (file)
@@ -279,11 +279,6 @@ st_invalidate_state(struct gl_context * ctx)
 
    if (new_state & _NEW_PROGRAM_CONSTANTS)
       st->dirty |= st->active_states & ST_NEW_CONSTANTS;
-
-   /* This is the only core Mesa module we depend upon.
-    * No longer use swrast, swsetup, tnl.
-    */
-   _vbo_InvalidateState(ctx, new_state);
 }
 
 
index 79f75386f72ce3e6e497d849ed6367d9fd4bbede..eec484b37676e57529aa8af095b76fa6e11306d7 100644 (file)
@@ -78,7 +78,6 @@ struct _mesa_index_buffer {
 
 GLboolean _vbo_CreateContext( struct gl_context *ctx );
 void _vbo_DestroyContext( struct gl_context *ctx );
-void _vbo_InvalidateState( struct gl_context *ctx, GLbitfield new_state );
 
 
 void
index 384e40516c8796151b93236ade26fb9d99e5bf76..a5f915d9bdb5bebff7fafa0abbed5a7ff20808b6 100644 (file)
@@ -227,12 +227,6 @@ GLboolean _vbo_CreateContext( struct gl_context *ctx )
 }
 
 
-void _vbo_InvalidateState( struct gl_context *ctx, GLbitfield new_state )
-{
-   vbo_exec_invalidate_state(ctx, new_state);
-}
-
-
 void _vbo_DestroyContext( struct gl_context *ctx )
 {
    struct vbo_context *vbo = vbo_context(ctx);
index 5cf399ffcd7c442362ab92c8d7c66192640472a2..0418643f8f403eff9178cd3e4cc423b67cbe746b 100644 (file)
@@ -56,6 +56,7 @@
 #include "vbo_exec.h"
 #include "vbo_save.h"
 
+#include "main/api_arrayelt.h"
 #include "main/macros.h"
 
 #ifdef __cplusplus
@@ -91,6 +92,23 @@ static inline struct vbo_context *vbo_context(struct gl_context *ctx)
 }
 
 
+static inline void
+vbo_exec_invalidate_state(struct gl_context *ctx)
+{
+   struct vbo_context *vbo = vbo_context(ctx);
+   struct vbo_exec_context *exec = &vbo->exec;
+
+   if (!exec->validating && ctx->NewState & (_NEW_PROGRAM | _NEW_ARRAY)) {
+      exec->array.recalculate_inputs = GL_TRUE;
+   }
+
+   if (ctx->NewState & _NEW_EVAL)
+      exec->eval.recalculate_maps = GL_TRUE;
+
+   _ae_invalidate_state(ctx, ctx->NewState);
+}
+
+
 /**
  * Return VP_x token to indicate whether we're running fixed-function
  * vertex transformation, an NV vertex program or ARB vertex program/shader.
index de8461f1fcc8f6f91cc2707d15ef48b341507bc1..dc26dfd37b48b2f0b34e19e62e8be6a7f2d9ad79 100644 (file)
@@ -26,7 +26,6 @@
  */
 
 
-#include "main/api_arrayelt.h"
 #include "main/glheader.h"
 #include "main/mtypes.h"
 #include "main/vtxfmt.h"
@@ -70,27 +69,6 @@ void vbo_exec_destroy( struct gl_context *ctx )
 }
 
 
-/**
- * Really want to install these callbacks to a central facility to be
- * invoked according to the state flags.  That will have to wait for a
- * mesa rework:
- */ 
-void vbo_exec_invalidate_state( struct gl_context *ctx, GLbitfield new_state )
-{
-   struct vbo_context *vbo = vbo_context(ctx);
-   struct vbo_exec_context *exec = &vbo->exec;
-
-   if (!exec->validating && new_state & (_NEW_PROGRAM|_NEW_ARRAY)) {
-      exec->array.recalculate_inputs = GL_TRUE;
-   }
-
-   if (new_state & _NEW_EVAL)
-      exec->eval.recalculate_maps = GL_TRUE;
-
-   _ae_invalidate_state(ctx, new_state);
-}
-
-
 /**
  * Figure out the number of transform feedback primitives that will be output
  * considering the drawing mode, number of vertices, and instance count,
index 9358ca2acf129fd9ae1918a1b0cee796c76b10ee..f1e3881b1f9cb8fd3fb0f68285efdc624c22eb04 100644 (file)
@@ -147,7 +147,6 @@ struct vbo_exec_context
  */
 void vbo_exec_init( struct gl_context *ctx );
 void vbo_exec_destroy( struct gl_context *ctx );
-void vbo_exec_invalidate_state( struct gl_context *ctx, GLbitfield new_state );
 
 
 /* Internal functions: