aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'freedreno/freedreno_device.c')
-rw-r--r--freedreno/freedreno_device.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/freedreno/freedreno_device.c b/freedreno/freedreno_device.c
index ddb95455..0e20332e 100644
--- a/freedreno/freedreno_device.c
+++ b/freedreno/freedreno_device.c
@@ -43,19 +43,19 @@ struct fd_device * kgsl_device_new(int fd);
43struct fd_device * msm_device_new(int fd); 43struct fd_device * msm_device_new(int fd);
44 44
45static void 45static void
46add_bucket(struct fd_device *dev, int size) 46add_bucket(struct fd_bo_cache *cache, int size)
47{ 47{
48 unsigned int i = dev->num_buckets; 48 unsigned int i = cache->num_buckets;
49 49
50 assert(i < ARRAY_SIZE(dev->cache_bucket)); 50 assert(i < ARRAY_SIZE(cache->cache_bucket));
51 51
52 list_inithead(&dev->cache_bucket[i].list); 52 list_inithead(&cache->cache_bucket[i].list);
53 dev->cache_bucket[i].size = size; 53 cache->cache_bucket[i].size = size;
54 dev->num_buckets++; 54 cache->num_buckets++;
55} 55}
56 56
57static void 57static void
58init_cache_buckets(struct fd_device *dev) 58fd_bo_cache_init(struct fd_bo_cache *cache)
59{ 59{
60 unsigned long size, cache_max_size = 64 * 1024 * 1024; 60 unsigned long size, cache_max_size = 64 * 1024 * 1024;
61 61
@@ -67,16 +67,16 @@ init_cache_buckets(struct fd_device *dev)
67 * width/height alignment and rounding of sizes to pages will 67 * width/height alignment and rounding of sizes to pages will
68 * get us useful cache hit rates anyway) 68 * get us useful cache hit rates anyway)
69 */ 69 */
70 add_bucket(dev, 4096); 70 add_bucket(cache, 4096);
71 add_bucket(dev, 4096 * 2); 71 add_bucket(cache, 4096 * 2);
72 add_bucket(dev, 4096 * 3); 72 add_bucket(cache, 4096 * 3);
73 73
74 /* Initialize the linked lists for BO reuse cache. */ 74 /* Initialize the linked lists for BO reuse cache. */
75 for (size = 4 * 4096; size <= cache_max_size; size *= 2) { 75 for (size = 4 * 4096; size <= cache_max_size; size *= 2) {
76 add_bucket(dev, size); 76 add_bucket(cache, size);
77 add_bucket(dev, size + size * 1 / 4); 77 add_bucket(cache, size + size * 1 / 4);
78 add_bucket(dev, size + size * 2 / 4); 78 add_bucket(cache, size + size * 2 / 4);
79 add_bucket(dev, size + size * 3 / 4); 79 add_bucket(cache, size + size * 3 / 4);
80 } 80 }
81} 81}
82 82
@@ -113,7 +113,7 @@ struct fd_device * fd_device_new(int fd)
113 dev->fd = fd; 113 dev->fd = fd;
114 dev->handle_table = drmHashCreate(); 114 dev->handle_table = drmHashCreate();
115 dev->name_table = drmHashCreate(); 115 dev->name_table = drmHashCreate();
116 init_cache_buckets(dev); 116 fd_bo_cache_init(&dev->bo_cache);
117 117
118 return dev; 118 return dev;
119} 119}
@@ -137,7 +137,7 @@ struct fd_device * fd_device_ref(struct fd_device *dev)
137 137
138static void fd_device_del_impl(struct fd_device *dev) 138static void fd_device_del_impl(struct fd_device *dev)
139{ 139{
140 fd_cleanup_bo_cache(dev, 0); 140 fd_cleanup_bo_cache(&dev->bo_cache, 0);
141 drmHashDestroy(dev->handle_table); 141 drmHashDestroy(dev->handle_table);
142 drmHashDestroy(dev->name_table); 142 drmHashDestroy(dev->name_table);
143 if (dev->closefd) 143 if (dev->closefd)