[Mesa-dev] [PATCH] i965: Avoid redundant call to brw_merge_inputs() in brw_try_draw_prims()

2014-05-08 Thread Iago Toral Quiroga
We always call brw_merge_inputs() right before looping over the primitives but
this can be called inside the loop for each primitive too. In the case we do it
for the first primitive the call is redundant and can be skipped.
---
 src/mesa/drivers/dri/i965/brw_draw.c | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_draw.c 
b/src/mesa/drivers/dri/i965/brw_draw.c
index fef1c06..ac21656 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -458,15 +458,14 @@ static bool brw_try_draw_prims( struct gl_context *ctx,
   intel_batchbuffer_require_space(brw, estimated_max_prim_size, 
RENDER_RING);
   intel_batchbuffer_save_state(brw);
 
-  if (brw-num_instances != prims[i].num_instances) {
+  if (brw-num_instances != prims[i].num_instances ||
+  brw-basevertex != prims[i].basevertex) {
  brw-num_instances = prims[i].num_instances;
- brw-state.dirty.brw |= BRW_NEW_VERTICES;
- brw_merge_inputs(brw, arrays);
-  }
-  if (brw-basevertex != prims[i].basevertex) {
  brw-basevertex = prims[i].basevertex;
- brw-state.dirty.brw |= BRW_NEW_VERTICES;
- brw_merge_inputs(brw, arrays);
+ if (i  0) { /* For i == 0 we just did this before the loop */
+brw-state.dirty.brw |= BRW_NEW_VERTICES;
+brw_merge_inputs(brw, arrays);
+ }
   }
   if (brw-gen  6)
 brw_set_prim(brw, prims[i]);
-- 
1.9.1

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


Re: [Mesa-dev] [PATCH] i965: Avoid redundant call to brw_merge_inputs() in brw_try_draw_prims()

2014-05-08 Thread Eric Anholt
Iago Toral Quiroga ito...@igalia.com writes:

 We always call brw_merge_inputs() right before looping over the primitives but
 this can be called inside the loop for each primitive too. In the case we do 
 it
 for the first primitive the call is redundant and can be skipped.

Reviewed-by: Eric Anholt e...@anholt.net

If we had tracked that everything was in VBOs, we could also skip the
brw_merge_input/BRW_NEW_VERTICES entirely, I bet.


pgpnOqIqRdoxY.pgp
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev