Store hw_prim info in brw context for other references. This patch is
mainly for the next patch.

Signed-off-by: Yuanhan Liu <yuanhan....@linux.intel.com>
---
 src/mesa/drivers/dri/i965/brw_context.h |    1 +
 src/mesa/drivers/dri/i965/brw_draw.c    |   17 +++++++----------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_context.h 
b/src/mesa/drivers/dri/i965/brw_context.h
index 69821d9..267608b 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -515,6 +515,7 @@ struct brw_context
 {
    struct intel_context intel;  /**< base class, must be first field */
    GLuint primitive;
+   uint32_t hw_prim;
 
    GLboolean emit_state_always;
    GLboolean has_surface_tile_offset;
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c 
b/src/mesa/drivers/dri/i965/brw_draw.c
index bdb5b67..3865887 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -128,8 +128,7 @@ static GLuint trim(GLenum prim, GLuint length)
 
 
 static void brw_emit_prim(struct brw_context *brw,
-                         const struct _mesa_prim *prim,
-                         uint32_t hw_prim)
+                         const struct _mesa_prim *prim)
 {
    struct intel_context *intel = &brw->intel;
    int verts_per_instance;
@@ -168,7 +167,7 @@ static void brw_emit_prim(struct brw_context *brw,
 
    BEGIN_BATCH(6);
    OUT_BATCH(CMD_3D_PRIM << 16 | (6 - 2) |
-            hw_prim << GEN4_3DPRIM_TOPOLOGY_TYPE_SHIFT |
+            brw->hw_prim << GEN4_3DPRIM_TOPOLOGY_TYPE_SHIFT |
             vertex_access_type);
    OUT_BATCH(verts_per_instance);
    OUT_BATCH(start_vertex_location);
@@ -185,8 +184,7 @@ static void brw_emit_prim(struct brw_context *brw,
 }
 
 static void gen7_emit_prim(struct brw_context *brw,
-                          const struct _mesa_prim *prim,
-                          uint32_t hw_prim)
+                          const struct _mesa_prim *prim)
 {
    struct intel_context *intel = &brw->intel;
    int verts_per_instance;
@@ -225,7 +223,7 @@ static void gen7_emit_prim(struct brw_context *brw,
 
    BEGIN_BATCH(7);
    OUT_BATCH(CMD_3D_PRIM << 16 | (7 - 2));
-   OUT_BATCH(hw_prim | vertex_access_type);
+   OUT_BATCH(brw->hw_prim | vertex_access_type);
    OUT_BATCH(verts_per_instance);
    OUT_BATCH(start_vertex_location);
    OUT_BATCH(1); // instance count
@@ -318,7 +316,6 @@ static GLboolean brw_try_draw_prims( struct gl_context *ctx,
    intel_prepare_render(intel);
 
    for (i = 0; i < nr_prims; i++) {
-      uint32_t hw_prim;
       int estimated_max_prim_size;
 
       estimated_max_prim_size = 512; /* batchbuffer commands */
@@ -335,7 +332,7 @@ static GLboolean brw_try_draw_prims( struct gl_context *ctx,
        */
       intel_batchbuffer_require_space(intel, estimated_max_prim_size, false);
 
-      hw_prim = brw_set_prim(brw, &prim[i]);
+      brw->hw_prim = brw_set_prim(brw, &prim[i]);
       if (brw->state.dirty.brw) {
         brw_validate_state(brw);
 
@@ -371,9 +368,9 @@ static GLboolean brw_try_draw_prims( struct gl_context *ctx,
       }
 
       if (intel->gen >= 7)
-        gen7_emit_prim(brw, &prim[i], hw_prim);
+        gen7_emit_prim(brw, &prim[i]);
       else
-        brw_emit_prim(brw, &prim[i], hw_prim);
+        brw_emit_prim(brw, &prim[i]);
 
       intel->no_batch_wrap = GL_FALSE;
 
-- 
1.7.4.4

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

Reply via email to