i965/blorp: Let compiler calculate the vertex buffer size
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Tue, 12 Apr 2016 06:27:00 +0000 (09:27 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Thu, 21 Apr 2016 05:35:58 +0000 (08:35 +0300)
Currently the size is sizeof(float) times too large. One reserves
GEN6_BLORP_VBO_SIZE many floats whereas GEN6_BLORP_VBO_SIZE stands
for the size of vertex buffer in bytes.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen6_blorp.cpp

index 079e1ba25f023a86ee4a622c62bf7635bcc71f06..f3ce42c7c9dd45e1254b09e67d74105a08370f9c 100644 (file)
 
 #include "brw_blorp.h"
 
-/**
- * \name Constants for BLORP VBO
- * \{
- */
-#define GEN6_BLORP_NUM_VERTICES 3
-#define GEN6_BLORP_NUM_VUE_ELEMS 8
-#define GEN6_BLORP_VBO_SIZE (GEN6_BLORP_NUM_VERTICES \
-                             * GEN6_BLORP_NUM_VUE_ELEMS \
-                             * sizeof(float))
-/** \} */
-
 /**
  * CMD_STATE_BASE_ADDRESS
  *
@@ -160,21 +149,21 @@ gen6_blorp_emit_vertices(struct brw_context *brw,
    {
       float *vertex_data;
 
-      const float vertices[GEN6_BLORP_VBO_SIZE] = {
-         /* v0 */ 0, 0, 0, 0,     (float) params->x0, (float) params->y1, 0, 1,
-         /* v1 */ 0, 0, 0, 0,     (float) params->x1, (float) params->y1, 0, 1,
-         /* v2 */ 0, 0, 0, 0,     (float) params->x0, (float) params->y0, 0, 1,
+      const float vertices[] = {
+         /* v0 */ 0, 0, 0, 0, (float)params->x0, (float)params->y1, 0, 1,
+         /* v1 */ 0, 0, 0, 0, (float)params->x1, (float)params->y1, 0, 1,
+         /* v2 */ 0, 0, 0, 0, (float)params->x0, (float)params->y0, 0, 1,
       };
 
       vertex_data = (float *) brw_state_batch(brw, AUB_TRACE_VERTEX_BUFFER,
-                                              GEN6_BLORP_VBO_SIZE, 32,
+                                              sizeof(vertices), 32,
                                               &vertex_offset);
-      memcpy(vertex_data, vertices, GEN6_BLORP_VBO_SIZE);
-   }
+      memcpy(vertex_data, vertices, sizeof(vertices));
 
-   gen6_blorp_emit_vertex_buffer_state(brw, GEN6_BLORP_NUM_VUE_ELEMS,
-                                       GEN6_BLORP_VBO_SIZE,
-                                       vertex_offset);
+      const unsigned blorp_num_vue_elems = 8;
+      gen6_blorp_emit_vertex_buffer_state(brw, blorp_num_vue_elems,
+                                          sizeof(vertices), vertex_offset);
+   }
 
    /* 3DSTATE_VERTEX_ELEMENTS
     *