radv: add support for 32-bit pointers in user data SGPRs

Graphics / Mesa 3D Graphics Library / Mesa - Samuel Pitoiset [gmail.com] - 22 May 2018 13:53 EDT

We still use 64-bit GPU pointers for all ring buffers because llvm.amdgcn.implicit.buffer.ptr doesn't seem to support 32-bit GPU pointers for now. This can be improved later anyways.

Vega10: Totals from affected shaders: SGPRS: 1008722 -> 1026710 (1.78 %)
VGPRS: 706580 -> 707136 (0.08 %) Spilled SGPRs: 22555 -> 22209 (-1.53 %) Spilled VGPRs: 75 -> 75 (0.00 %) Code Size: 34819208 -> 35202140 (1.10 %) bytes Max Waves: 175423 -> 175086 (-0.19 %)

Polaris10: Totals from affected shaders: SGPRS: 1029849 -> 1036517 (0.65 %)
VGPRS: 709984 -> 708872 (-0.16 %) Spilled SGPRs: 22672 -> 22309 (-1.60 %) Spilled VGPRs: 82 -> 66 (-19.51 %) Scratch size: 76 -> 60 (-21.05 %) dwords per thread Code Size: 34915336 -> 35309752 (1.13 %) bytes Max Waves: 151221 -> 151677 (0.30 %)

36a4d6d081 radv: add support for 32-bit pointers in user data SGPRs
src/amd/vulkan/radv_cmd_buffer.c | 13 +++++++------
src/amd/vulkan/radv_device.c | 6 ++++--
src/amd/vulkan/radv_nir_to_llvm.c | 24 +++++++++++++++---------
src/amd/vulkan/radv_private.h | 18 ++++++++++++++----
4 files changed, 40 insertions(+), 21 deletions(-)

Upstream: cgit.freedesktop.org


  • Share