On 01/17/2018 10:08 AM, Ian Romanick wrote:
Should probably also change the assert(0) to unreachable().  It's
possible that will help the compiler generate slightly better code in
release builds.

There's a bunch of assert(0) calls in the VBO code. How about I take care of those in a separate patch?

I added the const keywords in patch 7.

-Brian



On 01/16/2018 09:17 PM, Brian Paul wrote:
Both switch cases began with the same code.
---
  src/mesa/vbo/vbo_exec_draw.c | 15 ++++++---------
  src/mesa/vbo/vbo_save_draw.c | 15 ++++++---------
  2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c
index 34cb4ff..de17322 100644
--- a/src/mesa/vbo/vbo_exec_draw.c
+++ b/src/mesa/vbo/vbo_exec_draw.c
@@ -180,14 +180,14 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
     GLbitfield varying_inputs = 0x0;
     bool swap_pos = false;
- /* Install the default (ie Current) attributes first, then overlay
-    * all active ones.
-    */
+   /* Install the default (ie Current) attributes first */
+   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
+      exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
+   }
+
+   /* Overlay other active attributes */
     switch (get_program_mode(exec->ctx)) {
     case VP_NONE:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
        for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
           assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
           exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
@@ -196,9 +196,6 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
        map = vbo->map_vp_none;
        break;
     case VP_ARB:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
        for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
           assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
           exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
index b63a9a8..4101022 100644
--- a/src/mesa/vbo/vbo_save_draw.c
+++ b/src/mesa/vbo/vbo_save_draw.c
@@ -158,14 +158,14 @@ bind_vertex_list(struct gl_context *ctx,
        buffer_offset = 0;
     }
- /* Install the default (ie Current) attributes first, then overlay
-    * all active ones.
-    */
+   /* Install the default (ie Current) attributes first */
+   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
+      save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
+   }
+
+   /* Overlay other active attributes */
     switch (get_program_mode(ctx)) {
     case VP_NONE:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
        for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
           save->inputs[VERT_ATTRIB_GENERIC(attr)] =
              &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT+attr];
@@ -173,9 +173,6 @@ bind_vertex_list(struct gl_context *ctx,
        map = vbo->map_vp_none;
        break;
     case VP_ARB:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
        for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
           save->inputs[VERT_ATTRIB_GENERIC(attr)] =
              &vbo->currval[VBO_ATTRIB_GENERIC0+attr];



_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to