mesa/src/amd
Timur Kristóf 2c40215ab9 aco/optimizer: Change v_cmp with subgroup invocation to constant.
When a shader has a comparison with the subgroup invocation id,
we can use a constant instead, saving a VALU instruction.
When the constant can't be represented as a 64-bit literal,
use the s_bfm_b64 instruction to generate it instead, which
is still a win.

Fossil DB stats on GFX11:
Totals from 300 (0.22% of 134913) affected shaders:
CodeSize: 2223052 -> 2214336 (-0.39%); split: -0.43%, +0.04%
Instrs: 430216 -> 429882 (-0.08%); split: -0.14%, +0.06%
Latency: 5881180 -> 5878181 (-0.05%); split: -0.05%, +0.00%
InvThroughput: 731846 -> 729293 (-0.35%)
Copies: 31662 -> 31847 (+0.58%); split: -0.03%, +0.61%
Branches: 8241 -> 8100 (-1.71%)
PreVGPRs: 15788 -> 15786 (-0.01%)

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20843>
2023-02-18 21:16:58 +01:00
..
addrlib amd: split GFX1103 into GFX1103_R1 and GFX1103_R2 2023-02-03 00:18:01 +00:00
ci radv/ci: add missing expected failures with RADV_PERFTEST=gpl on GFX1100 2023-02-15 17:29:10 +00:00
common ac: Port ACO's get_fetch_format to ac_get_safe_fetch_size. 2023-02-16 15:29:36 +00:00
compiler aco/optimizer: Change v_cmp with subgroup invocation to constant. 2023-02-18 21:16:58 +01:00
drm-shim r300: use drm_shim_override 2022-11-16 14:37:47 +00:00
llvm ac/llvm: Implement bvh64_intersect_ray_amd 2023-02-17 17:04:47 +00:00
registers amd/registers: remove confusing definitions from gfx10-rsrc.json 2023-02-03 00:18:02 +00:00
vulkan radv: add a size check in radv_create_buffer for Android 2023-02-17 18:14:34 +00:00
.clang-format radv: Add nir_foreach_variable_with_modes to .clang-format 2022-12-09 07:07:10 +00:00
meson.build meson: build radeon drm-shim also for r300 and r600 2022-11-16 14:37:47 +00:00