Mesa (main): radeonsi: split si_shader_key into ps and ge parts to minimize memcmp overhead

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Oct 16 11:01:52 UTC 2021


Module: Mesa
Branch: main
Commit: 8c5a32b5fe211862e92a57443bb4bdffd04c8a54
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c5a32b5fe211862e92a57443bb4bdffd04c8a54

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Sep 13 23:09:22 2021 -0400

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 at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13285>

---

 src/gallium/drivers/radeonsi/gfx10_shader_ngg.c    |  50 +--
 src/gallium/drivers/radeonsi/si_descriptors.c      |  75 ++--
 src/gallium/drivers/radeonsi/si_pipe.c             |   4 +-
 src/gallium/drivers/radeonsi/si_pipe.h             |  11 +-
 src/gallium/drivers/radeonsi/si_shader.c           | 322 +++++++++--------
 src/gallium/drivers/radeonsi/si_shader.h           |  75 ++--
 src/gallium/drivers/radeonsi/si_shader_internal.h  |   4 +-
 src/gallium/drivers/radeonsi/si_shader_llvm.c      |  89 ++---
 src/gallium/drivers/radeonsi/si_shader_llvm_gs.c   |   8 +-
 src/gallium/drivers/radeonsi/si_shader_llvm_ps.c   |  48 +--
 src/gallium/drivers/radeonsi/si_shader_llvm_tess.c |  30 +-
 src/gallium/drivers/radeonsi/si_shader_llvm_vs.c   |  22 +-
 src/gallium/drivers/radeonsi/si_sqtt.c             |  12 +-
 src/gallium/drivers/radeonsi/si_state.c            |   2 +-
 src/gallium/drivers/radeonsi/si_state.h            |   9 +-
 src/gallium/drivers/radeonsi/si_state_draw.cpp     |  30 +-
 src/gallium/drivers/radeonsi/si_state_shaders.cpp  | 401 +++++++++++----------
 17 files changed, 652 insertions(+), 540 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=8c5a32b5fe211862e92a57443bb4bdffd04c8a54


More information about the mesa-commit mailing list