[Mesa-dev] [PATCH 3/4] i965: Issue performance warnings for program cache related stalls.
Kenneth Graunke
kenneth at whitecape.org
Fri Aug 29 23:10:49 PDT 2014
We don't really want extra buffer copying or stalls when mapping,
so it'd be nice to know when it's happening.
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/mesa/drivers/dri/i965/brw_state_cache.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c b/src/mesa/drivers/dri/i965/brw_state_cache.c
index b0986ea..b9bb0fc 100644
--- a/src/mesa/drivers/dri/i965/brw_state_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_state_cache.c
@@ -175,7 +175,7 @@ brw_cache_new_bo(struct brw_cache *cache, uint32_t new_size)
/* Copy any existing data that needs to be saved. */
if (cache->next_offset != 0) {
- drm_intel_bo_map(cache->bo, false);
+ brw_bo_map(brw, cache->bo, false, "program cache");
drm_intel_bo_subdata(new_bo, 0, cache->next_offset, cache->bo->virtual);
drm_intel_bo_unmap(cache->bo);
}
@@ -200,6 +200,7 @@ brw_try_upload_using_copy(struct brw_cache *cache,
const void *data,
const void *aux)
{
+ struct brw_context *brw = cache->brw;
int i;
struct brw_cache_item *item;
@@ -221,7 +222,7 @@ brw_try_upload_using_copy(struct brw_cache *cache,
continue;
}
- drm_intel_bo_map(cache->bo, false);
+ brw_bo_map(brw, cache->bo, false, "program cache");
ret = memcmp(cache->bo->virtual + item->offset, data, item->size);
drm_intel_bo_unmap(cache->bo);
if (ret)
@@ -241,6 +242,8 @@ brw_upload_item_data(struct brw_cache *cache,
struct brw_cache_item *item,
const void *data)
{
+ 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) {
uint32_t new_size = cache->bo->size * 2;
@@ -255,6 +258,7 @@ brw_upload_item_data(struct brw_cache *cache,
* recreate it.
*/
if (cache->bo_used_by_gpu) {
+ perf_debug("Copying busy program cache buffer.\n");
brw_cache_new_bo(cache, cache->bo->size);
}
--
2.1.0
More information about the mesa-dev
mailing list