mesa/src/freedreno
Danylo Piliaiev a5f0f7d4b1 turnip,ir3: Implement A7XX push consts load via preamble
New push consts loading consist of:
- Push consts are set for the entire pipeline via HLSQ_SHARED_CONSTS_IMM
  array which could fit up to 256b of push consts.
- For each shader stage that uses push consts READ_IMM_SHARED_CONSTS
  should be set in HLSQ_*_CNTL, otherwise push consts may get overwritten
  by new push consts that are set after the draw.
- Push consts are loaded into consts reg file in a shader preamble via
  stsc at the very start of the preamble.

OPC_PUSH_CONSTS_LOAD_MACRO is used instead of directly translating NIR
intrinsic into stsc because: we don't want to teach legalize pass how
to set (ss) between stores and loads of consts reg file, don't want for
stsc to be reordered, etc.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25086>
2023-10-04 15:51:54 +00:00
..
.gitlab-ci freedreno/decode: Lookup device info 2023-09-22 19:17:14 +00:00
afuc freedreno/afuc: Initial a7xx support 2023-07-28 18:41:58 +00:00
ci ci/freedreno: Add a new flake 2023-09-29 17:27:49 -03:00
common turnip,ir3: Implement A7XX push consts load via preamble 2023-10-04 15:51:54 +00:00
computerator freedreno/computerator: Fix remaining issues with A7XX 2023-09-05 16:19:29 +00:00
decode freedreno: move redump.h to common code + cleanup 2023-10-02 23:31:34 +00:00
drm freedreno: Add attach-bo debugging 2023-10-03 15:18:03 +00:00
drm-shim freedreno: decouple compiler and vulkan driver from gallium 2023-08-03 07:29:36 +00:00
ds meson: remove needless c++17-overrides 2023-05-19 12:45:31 +00:00
fdl freedreno/fdl: Support PIPE_FORMAT_R5G5B5A1_UNORM on a6xx 2023-09-27 19:07:22 +00:00
ir2 freedreno/ir2: Re-indent 2021-04-17 15:38:56 +00:00
ir3 turnip,ir3: Implement A7XX push consts load via preamble 2023-10-04 15:51:54 +00:00
isa ir3/a7xx: Add ccinv instruction 2023-09-05 16:19:30 +00:00
perfcntrs freedreno: decouple compiler and vulkan driver from gallium 2023-08-03 07:29:36 +00:00
registers freedreno/registers: Refine a7xx push consts registers 2023-10-04 15:51:54 +00:00
rnn freedreno/rnn: Remove %n usage in fprintf 2023-09-13 22:20:13 +00:00
vulkan turnip,ir3: Implement A7XX push consts load via preamble 2023-10-04 15:51:54 +00:00
.clang-format clang-format: Disable formatting by default 2023-08-13 16:48:49 +02:00
.dir-locals.el freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
.editorconfig freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
meson.build meson: use a single dependency call for lua 2023-09-15 18:01:38 +00:00