radv,aco: use per-attribute vertex descriptors for robustness
authorRhys Perry <pendingchaos02@gmail.com>
Tue, 1 Dec 2020 17:41:16 +0000 (17:41 +0000)
committerMarge Bot <eric+marge@anholt.net>
Mon, 10 May 2021 12:09:14 +0000 (12:09 +0000)
commit157c6b0f336088704981d2bc6d740b02b0a598e6
tree40026c2f604463ee02a8722643e1f05d7101258e
parentdfa38fa0c7034d71c2a21ae7261c73ed9880f783
radv,aco: use per-attribute vertex descriptors for robustness

We have to use a different num_records for each attribute to correctly
implement robust buffer access.

fossil-db (GFX10.3, robustBufferAccess enabled):
Totals from 60059 (41.06% of 146267) affected shaders:
VGPRs: 2169040 -> 2169024 (-0.00%); split: -0.02%, +0.02%
CodeSize: 79473128 -> 81156016 (+2.12%); split: -0.00%, +2.12%
MaxWaves: 1635360 -> 1635258 (-0.01%); split: +0.00%, -0.01%
Instrs: 15559040 -> 15793205 (+1.51%); split: -0.01%, +1.52%
Latency: 90954792 -> 91308768 (+0.39%); split: -0.30%, +0.69%
InvThroughput: 14937873 -> 14958761 (+0.14%); split: -0.04%, +0.18%
VClause: 444280 -> 412074 (-7.25%); split: -9.22%, +1.97%
SClause: 588545 -> 644141 (+9.45%); split: -0.54%, +9.99%
Copies: 1010395 -> 1011232 (+0.08%); split: -0.44%, +0.53%
Branches: 274279 -> 274282 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 1431171 -> 1405056 (-1.82%); split: -2.89%, +1.07%
PreVGPRs: 1575253 -> 1575259 (+0.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7871>
15 files changed:
src/amd/ci/deqp-radv-navi10-aco-fails.txt
src/amd/ci/deqp-radv-navi14-aco-fails.txt
src/amd/ci/deqp-radv-pitcairn-aco-fails.txt
src/amd/ci/deqp-radv-raven-aco-fails.txt
src/amd/ci/deqp-radv-sienna_cichlid-aco-fails.txt
src/amd/ci/deqp-radv-vega10-aco-fails.txt
src/amd/compiler/aco_instruction_selection.cpp
src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_debug.c
src/amd/vulkan/radv_nir_to_llvm.c
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_private.h
src/amd/vulkan/radv_shader.h
src/amd/vulkan/radv_shader_args.c
src/amd/vulkan/radv_shader_info.c