[Mesa-dev] [PATCH 6/7] i965: Set MAP_PERSISTENT on program cache buffers.

Kenneth Graunke kenneth at whitecape.org
Fri Jul 21 23:17:46 UTC 2017


Chris Wilson pointed out that this mapping really is persistant.

Shouldn't actually have any effect today, but best to set it anyway.
---
 src/mesa/drivers/dri/i965/brw_program_cache.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program_cache.c b/src/mesa/drivers/dri/i965/brw_program_cache.c
index 8a3a9f67fa6..04682bef34c 100644
--- a/src/mesa/drivers/dri/i965/brw_program_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_program_cache.c
@@ -219,8 +219,10 @@ brw_cache_new_bo(struct brw_cache *cache, uint32_t new_size)
    new_bo = brw_bo_alloc(brw->bufmgr, "program cache", new_size, 64);
    if (can_do_exec_capture(brw->screen))
       new_bo->kflags = EXEC_OBJECT_CAPTURE;
-   if (brw->has_llc)
-      llc_map = brw_bo_map(brw, new_bo, MAP_READ | MAP_WRITE | MAP_ASYNC);
+   if (brw->has_llc) {
+      llc_map = brw_bo_map(brw, new_bo, MAP_READ | MAP_WRITE |
+                                        MAP_ASYNC | MAP_PERSISTENT);
+   }
 
    /* Copy any existing data that needs to be saved. */
    if (cache->next_offset != 0) {
@@ -416,8 +418,10 @@ brw_init_caches(struct brw_context *brw)
    cache->bo = brw_bo_alloc(brw->bufmgr, "program cache",  4096, 64);
    if (can_do_exec_capture(brw->screen))
       cache->bo->kflags = EXEC_OBJECT_CAPTURE;
-   if (brw->has_llc)
-      cache->map = brw_bo_map(brw, cache->bo, MAP_READ | MAP_WRITE | MAP_ASYNC);
+   if (brw->has_llc) {
+      cache->map = brw_bo_map(brw, cache->bo, MAP_READ | MAP_WRITE |
+                                              MAP_ASYNC | MAP_PERSISTENT);
+   }
 }
 
 static void
-- 
2.13.3



More information about the mesa-dev mailing list