diff options
author | Marek Olšák <[email protected]> | 2017-06-29 18:49:48 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-07-04 15:40:37 +0200 |
commit | 0f13451da30a6ae298af297de18db595b791b62c (patch) | |
tree | 6817d4b3d548e0090d35dd70a7d68bd56c161d4c /src/gallium/drivers/radeon | |
parent | d4fac1e1d7f7c43663d64e826e946f6da2da7a73 (diff) |
gallium/radeon: clean up pb_cache bucket/usage determination
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r-- | src/gallium/drivers/radeon/radeon_winsys.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h index 4ecd73f01dc..239b6ab9a67 100644 --- a/src/gallium/drivers/radeon/radeon_winsys.h +++ b/src/gallium/drivers/radeon/radeon_winsys.h @@ -665,6 +665,7 @@ enum radeon_heap { RADEON_HEAP_GTT_WC, RADEON_HEAP_GTT, RADEON_MAX_SLAB_HEAPS, + RADEON_MAX_CACHED_HEAPS = RADEON_MAX_SLAB_HEAPS, }; static inline enum radeon_bo_domain radeon_domain_from_heap(enum radeon_heap heap) @@ -699,6 +700,25 @@ static inline unsigned radeon_flags_from_heap(enum radeon_heap heap) } } +/* The pb cache bucket is chosen to minimize pb_cache misses. + * It must be between 0 and 3 inclusive. + */ +static inline unsigned radeon_get_pb_cache_bucket_index(enum radeon_heap heap) +{ + switch (heap) { + case RADEON_HEAP_VRAM_NO_CPU_ACCESS: + return 0; + case RADEON_HEAP_VRAM: + case RADEON_HEAP_VRAM_GTT: + return 1; + case RADEON_HEAP_GTT_WC: + return 2; + case RADEON_HEAP_GTT: + default: + return 3; + } +} + /* Return the heap index for winsys allocators, or -1 on failure. */ static inline int radeon_get_heap_index(enum radeon_bo_domain domain, enum radeon_bo_flag flags) |