i965/blorp: Split vertex data and element setup
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Thu, 23 Jun 2016 06:35:57 +0000 (09:35 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Mon, 4 Jul 2016 05:33:41 +0000 (08:33 +0300)
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/gen6_blorp.c

index 7871a01..e9340df 100644 (file)
@@ -77,9 +77,9 @@ gen6_blorp_emit_vertex_buffer_state(struct brw_context *brw,
    ADVANCE_BATCH();
 }
 
-void
-gen6_blorp_emit_vertices(struct brw_context *brw,
-                         const struct brw_blorp_params *params)
+static void
+gen6_blorp_emit_vertex_data(struct brw_context *brw,
+                            const struct brw_blorp_params *params)
 {
    uint32_t vertex_offset;
 
@@ -119,24 +119,28 @@ gen6_blorp_emit_vertices(struct brw_context *brw,
     * instead of reading them from the buffer. See the vertex element setup
     * below.
     */
-   {
-      float *vertex_data;
-
-      const float vertices[] = {
-         /* v0 */ (float)params->x0, (float)params->y1,
-         /* v1 */ (float)params->x1, (float)params->y1,
-         /* v2 */ (float)params->x0, (float)params->y0,
-      };
-
-      vertex_data = (float *) brw_state_batch(brw, AUB_TRACE_VERTEX_BUFFER,
-                                              sizeof(vertices), 32,
-                                              &vertex_offset);
-      memcpy(vertex_data, vertices, sizeof(vertices));
-
-      const unsigned blorp_num_vue_elems = 2;
-      gen6_blorp_emit_vertex_buffer_state(brw, blorp_num_vue_elems,
-                                          sizeof(vertices), vertex_offset);
-   }
+   const float vertices[] = {
+      /* v0 */ (float)params->x0, (float)params->y1,
+      /* v1 */ (float)params->x1, (float)params->y1,
+      /* v2 */ (float)params->x0, (float)params->y0,
+   };
+
+   float *const vertex_data = (float *)brw_state_batch(
+                                          brw, AUB_TRACE_VERTEX_BUFFER,
+                                          sizeof(vertices), 32,
+                                          &vertex_offset);
+   memcpy(vertex_data, vertices, sizeof(vertices));
+
+   const unsigned blorp_num_vue_elems = 2;
+   gen6_blorp_emit_vertex_buffer_state(brw, blorp_num_vue_elems,
+                                       sizeof(vertices), vertex_offset);
+}
+
+void
+gen6_blorp_emit_vertices(struct brw_context *brw,
+                         const struct brw_blorp_params *params)
+{
+   gen6_blorp_emit_vertex_data(brw, params);
 
    /* 3DSTATE_VERTEX_ELEMENTS
     *