diff options
author | Bas Nieuwenhuizen <[email protected]> | 2016-03-08 16:01:47 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-03-09 00:52:07 +0100 |
commit | 6373845d985d65c00f7c62b793e67ae5106eabff (patch) | |
tree | 4e298b6885f7d963d6389af1c3b662d52beadee0 /src/gallium/winsys | |
parent | 32e848b01627e0935f10fbf30b0a0f292c758d30 (diff) |
winsys/amdgpu: enlarge buffer_indices_hashlist
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 <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r-- | src/gallium/winsys/amdgpu/drm/amdgpu_cs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h index 6ad3cddf7cb..a2fb44a4b0e 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; |