anv: Round u_vector element sizes to a power of two

This fixes 32-bit builds of the driver.  Commit 08413a81b9
changed things so that we now put struct anv_states in the u_vector for
binding tables.  On 64-bit builds, sizeof(struct anv_state) is a power
of two but it isn't on 32-bit builds.

Fixes: 08413a81b9
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
Jason Ekstrand 2017-07-11 19:04:38 -07:00
parent 5e5f251db1
commit 8e3d9c5d09
1 changed files with 3 additions and 2 deletions

View File

@ -706,9 +706,10 @@ anv_cmd_buffer_init_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer)
*(struct anv_batch_bo **)u_vector_add(&cmd_buffer->seen_bbos) = batch_bo;
/* u_vector requires power-of-two size elements */
unsigned pow2_state_size = util_next_power_of_two(sizeof(struct anv_state));
success = u_vector_init(&cmd_buffer->bt_block_states,
sizeof(struct anv_state),
8 * sizeof(struct anv_state));
pow2_state_size, 8 * pow2_state_size);
if (!success)
goto fail_seen_bbos;