From 4f7e68799f8693e01bfe191f7c2420087145f087 Mon Sep 17 00:00:00 2001 From: Topi Pohjolainen Date: Thu, 23 Jun 2016 09:35:57 +0300 Subject: [PATCH] i965/blorp: Split vertex data and element setup Signed-off-by: Topi Pohjolainen Reviewed-by: Jason Ekstrand --- src/mesa/drivers/dri/i965/gen6_blorp.c | 46 ++++++++++++++------------ 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.c b/src/mesa/drivers/dri/i965/gen6_blorp.c index 7871a01fb08..e9340df084c 100644 --- a/src/mesa/drivers/dri/i965/gen6_blorp.c +++ b/src/mesa/drivers/dri/i965/gen6_blorp.c @@ -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 * -- 2.30.2