diff options
author | Topi Pohjolainen <[email protected]> | 2015-06-25 14:31:03 +0300 |
---|---|---|
committer | Topi Pohjolainen <[email protected]> | 2015-08-13 13:37:49 +0300 |
commit | b4897eb70a994c4630b0fde4a66dd6ace833c33a (patch) | |
tree | 7c774d0e5be585efcfa7a433569398ae5ddf6cca /src/mesa | |
parent | 853853b2ac527698215b4290629ec242333e264a (diff) |
i965: Rename brw_upload_item_data to brw_alloc_item_data
and simplify the interface to take directly the size and to return
the offset. The routine does nothing more than allocate, it doesn't
upload anything.
Reviewed-by: Anuj Phogat <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Signed-off-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_state_cache.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c b/src/mesa/drivers/dri/i965/brw_state_cache.c index 693441c6f49..50c02432e81 100644 --- a/src/mesa/drivers/dri/i965/brw_state_cache.c +++ b/src/mesa/drivers/dri/i965/brw_state_cache.c @@ -248,18 +248,17 @@ brw_try_upload_using_copy(struct brw_cache *cache, return false; } -static void -brw_upload_item_data(struct brw_cache *cache, - struct brw_cache_item *item, - const void *data) +static uint32_t +brw_alloc_item_data(struct brw_cache *cache, uint32_t size) { + uint32_t offset; struct brw_context *brw = cache->brw; /* Allocate space in the cache BO for our new program. */ - if (cache->next_offset + item->size > cache->bo->size) { + if (cache->next_offset + size > cache->bo->size) { uint32_t new_size = cache->bo->size * 2; - while (cache->next_offset + item->size > new_size) + while (cache->next_offset + size > new_size) new_size *= 2; brw_cache_new_bo(cache, new_size); @@ -273,10 +272,12 @@ brw_upload_item_data(struct brw_cache *cache, brw_cache_new_bo(cache, cache->bo->size); } - item->offset = cache->next_offset; + offset = cache->next_offset; /* Programs are always 64-byte aligned, so set up the next one now */ - cache->next_offset = ALIGN(item->offset + item->size, 64); + cache->next_offset = ALIGN(offset + size, 64); + + return offset; } void @@ -312,7 +313,7 @@ brw_upload_cache(struct brw_cache *cache, * compile to the thing in our backend. */ if (!brw_try_upload_using_copy(cache, item, data, aux)) { - brw_upload_item_data(cache, item, data); + item->offset = brw_alloc_item_data(cache, data_size); } /* Set up the memory containing the key and aux_data */ |