mesa/src/intel
Ian Romanick 3fd835f6fd intel/fs: Constant fold OR and AND
The path taken in fs_visitor::swizzle_nir_scratch_addr for DG2 generates
some AND and OR instructions before the SHL. This commit folds those so
the whold calculation becomes a constant (like on older platforms).

v2: Fix return type of src_as_uint. Noticed by Marcin.

shader-db results:

DG2
total instructions in shared programs: 23190475 -> 23179540 (-0.05%)
instructions in affected programs: 36026 -> 25091 (-30.35%)
helped: 7 / HURT: 0

total cycles in shared programs: 841196807 -> 841142563 (<.01%)
cycles in affected programs: 1660670 -> 1606426 (-3.27%)
helped: 7 / HURT: 0

No shader-db changes on any older Intel platforms.

fossil-db results:

DG2
Totals:
Instrs: 197780372 -> 197773966 (-0.00%)
Cycles: 14066410782 -> 14066399378 (-0.00%); split: -0.00%, +0.00%
Subgroup size: 8438104 -> 8438112 (+0.00%)
Send messages: 8049445 -> 8049446 (+0.00%)
Scratch Memory Size: 14263296 -> 14264320 (+0.01%)

Totals from 9 (0.00% of 668055) affected shaders:
Instrs: 24547 -> 18141 (-26.10%)
Cycles: 1984791 -> 1973387 (-0.57%); split: -0.98%, +0.40%
Subgroup size: 88 -> 96 (+9.09%)
Send messages: 867 -> 868 (+0.12%)
Scratch Memory Size: 69632 -> 70656 (+1.47%)

No fossil-db changes on any older Intel platforms.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit cb0de0a1d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25377>
2023-09-25 21:13:53 +00:00
..
blorp blorp: update and move fast clear PIPE_CONTROLs to drivers 2023-09-25 21:13:53 +00:00
ci Revert "Revert "intel/ci: disable iris-jsl-deqp because it always fails for an AMD MR"" 2023-09-22 08:46:38 -07:00
common genxml: enable decoding on compute engine 2023-06-27 19:59:06 +00:00
compiler intel/fs: Constant fold OR and AND 2023-09-25 21:13:53 +00:00
dev intel/devinfo/i915: Set has_set_pat_uapi for MTL+ 2023-06-27 22:06:19 +00:00
ds intel: don't assume Linux minor dev node 2023-09-25 11:27:11 -07:00
genxml intel/genxml: Drop incorrect compute aux-inv register entry 2023-07-07 18:05:47 +00:00
isl isl: Set MOCS to uncached for MTL stream-out 2023-07-13 08:43:01 -07:00
nullhw-layer vulkan/layers: Use PUBLIC instead of VK_LAYER_EXPORT 2023-02-17 03:42:34 +00:00
perf intel/perf: add perf query support for Intel Raptorlake 2023-07-28 10:46:33 -07:00
tools intel/aubinator_error_decode: add ccs support 2023-06-27 19:59:06 +00:00
vulkan blorp: update and move fast clear PIPE_CONTROLs to drivers 2023-09-25 21:13:53 +00:00
vulkan_hasvk intel: don't assume Linux minor dev node 2023-09-25 11:27:11 -07:00
meson.build intel: Only build perf if drivers or tools are enabled 2023-09-22 16:50:20 +00:00