summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/intel_batchbuffer.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
index 877f68ee7cf..b4fcd92b6bd 100644
--- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
@@ -288,16 +288,16 @@ replace_bo_in_reloc_list(struct brw_reloc_list *rlist,
*/
static void
grow_buffer(struct brw_context *brw,
- struct brw_bo **bo_ptr,
- uint32_t **map_ptr,
+ struct brw_growing_bo *grow,
unsigned existing_bytes,
unsigned new_size)
{
struct intel_batchbuffer *batch = &brw->batch;
struct brw_bufmgr *bufmgr = brw->bufmgr;
+ struct brw_bo *bo = grow->bo;
- uint32_t *old_map = *map_ptr;
- struct brw_bo *old_bo = *bo_ptr;
+ uint32_t *old_map = grow->map;
+ struct brw_bo *old_bo = grow->bo;
struct brw_bo *new_bo =
brw_bo_alloc(bufmgr, old_bo->name, new_size, old_bo->align);
@@ -307,7 +307,7 @@ grow_buffer(struct brw_context *brw,
/* Copy existing data to the new larger buffer */
if (batch->use_shadow_copy) {
- new_map = realloc(*map_ptr, new_size);
+ new_map = realloc(old_map, new_size);
} else {
new_map = brw_bo_map(brw, new_bo, MAP_READ | MAP_WRITE);
memcpy(new_map, old_map, existing_bytes);
@@ -353,8 +353,8 @@ grow_buffer(struct brw_context *brw,
/* Drop the *bo_ptr reference. This should free the old BO. */
brw_bo_unreference(old_bo);
- *bo_ptr = new_bo;
- *map_ptr = new_map;
+ grow->bo = new_bo;
+ grow->map = new_map;
}
void
@@ -377,8 +377,7 @@ intel_batchbuffer_require_space(struct brw_context *brw, GLuint sz,
const unsigned new_size =
MIN2(batch->batch.bo->size + batch->batch.bo->size / 2,
MAX_BATCH_SIZE);
- grow_buffer(brw, &batch->batch.bo, &batch->batch.map,
- batch_used, new_size);
+ grow_buffer(brw, &batch->batch, batch_used, new_size);
batch->map_next = (void *) batch->batch.map + batch_used;
assert(batch_used + sz < batch->batch.bo->size);
}
@@ -1079,8 +1078,7 @@ brw_state_batch(struct brw_context *brw,
const unsigned new_size =
MIN2(batch->state.bo->size + batch->state.bo->size / 2,
MAX_STATE_SIZE);
- grow_buffer(brw, &batch->state.bo, &batch->state.map,
- batch->state_used, new_size);
+ grow_buffer(brw, &batch->state, batch->state_used, new_size);
assert(offset + size < batch->state.bo->size);
}