[Mesa-dev] [PATCH 05/40] i965/blorp: Let compiler calculate the vertex buffer size

Topi Pohjolainen topi.pohjolainen at intel.com
Sat Apr 16 13:42:33 UTC 2016


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 at intel.com>
---
 src/mesa/drivers/dri/i965/gen6_blorp.cpp | 31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
index 079e1ba..f3ce42c 100644
--- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp
@@ -32,17 +32,6 @@
 #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
  *
  * From the Sandy Bridge PRM, Volume 1, Part 1, Table 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
     *
-- 
2.5.5



More information about the mesa-dev mailing list