i965/blorp: Let compiler calculate the vertex buffer size

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>
This commit is contained in:
Topi Pohjolainen 2016-04-12 09:27:00 +03:00
parent 4c526370ca
commit f1ddfa8512

View file

@ -31,17 +31,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
*
@ -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
*