radeonsi: split si_shader_key into ps and ge parts to minimize memcmp overhead
authorMarek Olšák <marek.olsak@amd.com>
Tue, 14 Sep 2021 03:09:22 +0000 (23:09 -0400)
committerMarge Bot <eric+marge@anholt.net>
Sat, 16 Oct 2021 10:41:51 +0000 (10:41 +0000)
commit8c5a32b5fe211862e92a57443bb4bdffd04c8a54
tree1761ba490c041edd470d5a9c67af9aa2884112ae
parent385c9e1cafbb2b60993478bc21bc51d712d0cb9b
radeonsi: split si_shader_key into ps and ge parts to minimize memcmp overhead

ps is for the pixel shader, while ge is for VS, TCS, TES, and GS.

si_shader_key: 68 bytes
si_shader_key_ge: 68 bytes
si_shader_key_ps: 28 bytes

The only notable change is that si_shader_select_with_key is changed
to a C++ template. Other changes are trivial.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13285>
17 files changed:
src/gallium/drivers/radeonsi/gfx10_shader_ngg.c
src/gallium/drivers/radeonsi/si_descriptors.c
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/radeonsi/si_pipe.h
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_shader_internal.h
src/gallium/drivers/radeonsi/si_shader_llvm.c
src/gallium/drivers/radeonsi/si_shader_llvm_gs.c
src/gallium/drivers/radeonsi/si_shader_llvm_ps.c
src/gallium/drivers/radeonsi/si_shader_llvm_tess.c
src/gallium/drivers/radeonsi/si_shader_llvm_vs.c
src/gallium/drivers/radeonsi/si_sqtt.c
src/gallium/drivers/radeonsi/si_state.c
src/gallium/drivers/radeonsi/si_state.h
src/gallium/drivers/radeonsi/si_state_draw.cpp
src/gallium/drivers/radeonsi/si_state_shaders.cpp