[Mesa-dev] [PATCH] winsys/amdgpu: enlarge buffer_indices_hashlist

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Tue Mar 8 15:01:47 UTC 2016


Enlarge the buffer hashlist to prevent large numbers of misses
due to adding more buffers than can be cached in the hashlist.

The game I tested had CS's with up to 1500 buffers and the overhead
of amdgpu_lookup_buffer for various sizes was:

4096 1.97% (new value)
2048 4.37%
1024 6.92%
512  9.47% (old value)

(percentage of CPU usage in render thread as determined by perf)

The time spent in amdgpu_add_buffer self is ~4.2% in all cases and
for 4096 the time needed to clear the hashlist is still < 0.10%,
so I am not expecting significant regressions.

Signed-off-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
---
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
index 6ad3cdd..a2fb44a 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
@@ -76,7 +76,7 @@ struct amdgpu_cs {
    uint8_t                     *flags;
    struct amdgpu_cs_buffer     *buffers;
 
-   int                         buffer_indices_hashlist[512];
+   int                         buffer_indices_hashlist[4096];
 
    uint64_t                    used_vram;
    uint64_t                    used_gart;
-- 
2.7.2



More information about the mesa-dev mailing list