Mesa (master): i965: Skip _mesa_load_state_parameters when there are zero parameters.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Nov 20 09:56:10 UTC 2014


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Nov 13 22:50:03 2014 -0800

i965: Skip _mesa_load_state_parameters when there are zero parameters.

Saves a tiny bit of CPU overhead.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Acked-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/drivers/dri/i965/brw_vs_surface_state.c |   10 +++++-----
 src/mesa/drivers/dri/i965/gen6_vs_state.c        |   12 ++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vs_surface_state.c b/src/mesa/drivers/dri/i965/brw_vs_surface_state.c
index 1cc96cf..4e18c7d 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_surface_state.c
@@ -59,11 +59,6 @@ brw_upload_pull_constants(struct brw_context *brw,
    int i;
    uint32_t surf_index = prog_data->binding_table.pull_constants_start;
 
-   /* Updates the ParamaterValues[i] pointers for all parameters of the
-    * basic type of PROGRAM_STATE_VAR.
-    */
-   _mesa_load_state_parameters(&brw->ctx, prog->Parameters);
-
    if (!prog_data->nr_pull_params) {
       if (stage_state->surf_offset[surf_index]) {
 	 stage_state->surf_offset[surf_index] = 0;
@@ -72,6 +67,11 @@ brw_upload_pull_constants(struct brw_context *brw,
       return;
    }
 
+   /* Updates the ParamaterValues[i] pointers for all parameters of the
+    * basic type of PROGRAM_STATE_VAR.
+    */
+   _mesa_load_state_parameters(&brw->ctx, prog->Parameters);
+
    /* CACHE_NEW_*_PROG | _NEW_PROGRAM_CONSTANTS */
    uint32_t size = prog_data->nr_pull_params * 4;
    drm_intel_bo *const_bo = NULL;
diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c
index 2427407..1de3c26 100644
--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
@@ -58,15 +58,15 @@ gen6_upload_push_constants(struct brw_context *brw,
 {
    struct gl_context *ctx = &brw->ctx;
 
-   /* Updates the ParamaterValues[i] pointers for all parameters of the
-    * basic type of PROGRAM_STATE_VAR.
-    */
-   /* XXX: Should this happen somewhere before to get our state flag set? */
-   _mesa_load_state_parameters(ctx, prog->Parameters);
-
    if (prog_data->nr_params == 0) {
       stage_state->push_const_size = 0;
    } else {
+      /* Updates the ParamaterValues[i] pointers for all parameters of the
+       * basic type of PROGRAM_STATE_VAR.
+       */
+      /* XXX: Should this happen somewhere before to get our state flag set? */
+      _mesa_load_state_parameters(ctx, prog->Parameters);
+
       gl_constant_value *param;
       int i;
 




More information about the mesa-commit mailing list