On 01/08/2014 01:43 PM, Matt Turner wrote:
This flag was really just a proxy for determining whether the backend
was vector (AOS) or scalar (SOA). It will be used to apply a future
optimization only for vector backends.
---
  src/glsl/glsl_parser_extras.cpp              | 2 +-
  src/mesa/drivers/dri/i965/brw_context.c      | 2 +-
  src/mesa/drivers/dri/r200/r200_context.c     | 2 +-
  src/mesa/drivers/dri/radeon/radeon_context.c | 2 +-
  src/mesa/main/ffvertex_prog.c                | 2 +-
  src/mesa/main/mtypes.h                       | 9 ++++++---
  src/mesa/program/programopt.c                | 2 +-
  src/mesa/state_tracker/st_context.c          | 2 +-
  8 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 5f19368..c759569 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -1591,7 +1591,7 @@ do_common_optimization(exec_list *ir, bool linked,
     progress = do_copy_propagation(ir) || progress;
     progress = do_copy_propagation_elements(ir) || progress;

-   if (options->PreferDP4 && !linked)
+   if (options->OptimizeForAOS && !linked)
        progress = opt_flip_matrices(ir) || progress;

     if (linked)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c 
b/src/mesa/drivers/dri/i965/brw_context.c
index 78c06fc..da34e3d 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -478,7 +478,7 @@ brw_initialize_context_constants(struct brw_context *brw)
        ctx->ShaderCompilerOptions[i].LowerClipDistance = true;
     }

-   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4 = true;
+   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS = true;

Maybe use GL_TRUE here to be consistent. Or, change the type to bool and use true/false everywhere.


  }

  /**
diff --git a/src/mesa/drivers/dri/r200/r200_context.c 
b/src/mesa/drivers/dri/r200/r200_context.c
index 5c53720..982f1a2 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -338,7 +338,7 @@ GLboolean r200CreateContext( gl_api api,
     ctx->Const.MaxDrawBuffers = 1;
     ctx->Const.MaxColorAttachments = 1;

-   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4 = GL_TRUE;
+   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS = GL_TRUE;

     /* Install the customized pipeline:
      */
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c 
b/src/mesa/drivers/dri/radeon/radeon_context.c
index 02dbe06..2658f69 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_context.c
@@ -301,7 +301,7 @@ r100CreateContext( gl_api api,
     ctx->Const.MaxColorAttachments = 1;
     ctx->Const.MaxRenderbufferSize = 2048;

-   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4 = true;
+   ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS = true;

And here.



     /* Install the customized pipeline:
      */
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 074fbf9..93c941a 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -1676,7 +1676,7 @@ _mesa_get_fixed_func_vertex_program(struct gl_context 
*ctx)
           return NULL;

        create_new_program( &key, prog,
-                          
ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4,
+                          
ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS,
                            ctx->Const.VertexProgram.MaxTemps );

  #if 0
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index f93bb56..a35f44b 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2724,10 +2724,13 @@ struct gl_shader_compiler_options
     GLuint MaxUnrollIterations;

     /**
-    * Prefer DP4 instructions (rather than MUL/MAD) for matrix * vector
-    * operations, such as position transformation.
+    * Optimize code for array of structures backends.
+    *
+    * This is a proxy for:
+    *   - preferring DP4 instructions (rather than MUL/MAD) for
+    *     matrix * vector operations, such as position transformation.
      */
-   GLboolean PreferDP4;
+   GLboolean OptimizeForAOS;

     struct gl_sl_pragmas DefaultPragmas; /**< Default #pragma settings */
  };
diff --git a/src/mesa/program/programopt.c b/src/mesa/program/programopt.c
index 7e00572..92a8831 100644
--- a/src/mesa/program/programopt.c
+++ b/src/mesa/program/programopt.c
@@ -218,7 +218,7 @@ _mesa_insert_mvp_mad_code(struct gl_context *ctx, struct 
gl_vertex_program *vpro
  void
  _mesa_insert_mvp_code(struct gl_context *ctx, struct gl_vertex_program *vprog)
  {
-   if (ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4)
+   if (ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS)
        _mesa_insert_mvp_dp4_code( ctx, vprog );
     else
        _mesa_insert_mvp_mad_code( ctx, vprog );
diff --git a/src/mesa/state_tracker/st_context.c 
b/src/mesa/state_tracker/st_context.c
index 2cc3567..9437bf8 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -240,7 +240,7 @@ struct st_context *st_create_context(gl_api api, struct 
pipe_context *pipe,
      * driver prefers DP4 or MUL/MAD for vertex transformation.
      */
     if (debug_get_option_mesa_mvp_dp4())
-      ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4 = GL_TRUE;
+      ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].OptimizeForAOS = GL_TRUE;

     return st_create_context_priv(ctx, pipe, options);
  }


Looks good otherwise.

Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to