Caio Oliveira
7451c0f5d6
intel/brw: Pull optimize() out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
254312b9dd
intel/brw: Pull lower_scoreboard out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
5a5a242210
intel/brw: Pull emit_dummy_mov_instruction out of fs_visitor
...
Remove references to the workaround number from the callsites. Instead
the function has "workaround" as part of the name and the number is
in its definition. Return bool for consistency with other passes.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
755d6e8c44
intel/brw: Pull emit_dummy_memory_fence_before_eot out of fs_visitor
...
Rename to workaround_memory_fence_before_eot and return the already
present progress value for consistency.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
a7e0eec62b
intel/brw: Pull fixup_3src_null_dest out of fs_visitor
...
Rename fixup to lower and return the already present
progress value for consistency.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
a073116091
intel/brw: Simplify OPT macro usage in fs_visitor::optimize
...
All passes now take `*this`, so change the macro to implicitly pass it.
The `##__VA_ARGS__` makes it work when there's no extra arguments
(will make the comma disappear), same approach is taken by NIR_PASS.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
de6a798577
intel/brw: Use references for a couple of backend_shader passes
...
This will allow simplify the OPT macro for fs_visitor::optimize().
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
19b28ee44a
intel/brw: Pull lower_load_payload out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
7397d3c950
intel/brw: Pull lower_find_live_channel out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
619888e077
intel/brw: Pull lower_uniform_pull_constant_loads out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
6b00719513
intel/brw: Pull fixup_sends_duplicate_payload out of fs_visitor
...
Rename it to lower_sends_overlapping_payload.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
06272d4883
intel/brw: Pull lower_regioning out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
89866b6259
intel/brw: Pull lower_derivatives out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
7b7da31c45
intel/brw: Pull lower_sub_sat out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
058b723d14
intel/brw: Pull lower_integer_multiplication out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
e8dd8b461e
intel/brw: Pull fixup_nomask_control_flow out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
1bdfa5230f
intel/brw: Pull lower_logical_sends out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
422b4bead6
intel/brw: Pull lower_barycentrics out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
af2b3c478c
intel/brw: Pull lower_simd_width out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
14954cbd58
intel/brw: Pull lower_pack out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
f6b82b0270
intel/brw: Pull lower_constant_loads out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
a1c35563ae
intel/brw: Pull register_coalesce out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
ce10130f09
intel/brw: Pull remove_extra_rounding_modes out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
73fe658456
intel/brw: Pull eliminate_find_live_channel out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
4f314f89f7
intel/brw: Pull opt_zero_samples out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
838d6d5cd2
intel/brw: Pull opt_split_sends out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
8dcbdc8fac
intel/brw: Pull split/compact virtual_grf opts out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
1947a38680
intel/brw: Pull opt_algebraic out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
d849c2ecff
intel/brw: Pull redundant_halt out of fs_visitor
...
And call it "remove redundant halts".
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
96c4aa8545
intel/brw: Pull peephole_sel out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
10489b418c
intel/brw: Pull bank_conflicts out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
13c312431c
intel/brw: Pull opt_cse out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:25 +00:00
Caio Oliveira
4f09ad9dee
intel/brw: Pull opt_combine_constants out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
59bff8adf4
intel/brw: Pull dead_code_eliminate out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
1bd175f458
intel/brw: Pull opt_saturate_propagation out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
dc33a8fb06
intel/brw: Pull opt_cmod_propagation out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
6a3329a6c4
intel/brw: Pull opt_copy_propagation out of fs_visitor
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
0b73d163d4
intel/brw: Remove Gfx8- passes from optimize()
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26887 >
2024-02-26 20:54:24 +00:00
Caio Oliveira
373130a66c
intel/compiler: Remove has_render_target_reads from wm_prog_data
...
This was used only by the classic i965 driver.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27772 >
2024-02-24 02:34:59 +00:00
Kenneth Graunke
c12300844d
intel/fs: Don't rely on CSE for VARYING_PULL_CONSTANT_LOAD
...
In the past, we didn't have a good solution for combining scalar loads
with a variable index plus a constant offset. To handle that, we took
our load offset and rounded it down to the nearest vec4, loaded an
entire vec4, and trusted in the backend CSE pass to detect loads from
the same address and remove redundant ones.
These days, nir_opt_load_store_vectorize() does a good job of taking
those scalar loads and combining them into vector loads for us, so we
no longer need to do this trick. In fact, it can be better not to:
our offset need only be 4 byte (scalar) aligned, but we were making it
16 byte (vec4) aligned. So if you wanted to load an unaligned vec2,
we might actually load two vec4's (___X | Y___) instead of doing a
single load at the starting offset.
This should also reduce the work the backend CSE pass has to do,
since we just emit a single VARYING_PULL_CONSTANT_LOAD instead of 4.
shader-db results on Alchemist:
- No changes in SEND count or spills/fills
- Instructions: helped 95, hurt 100, +/- 1-3 instructions
- Cycles: helped 3411 hurt 1868, -0.01% (-0.28% in affected)
- SIMD32: gained 5, lost 3
fossil-db results on Alchemist:
- Instrs: 161381427 -> 161384130 (+0.00%); split: -0.00%, +0.00%
- Cycles: 14258305873 -> 14145884365 (-0.79%); split: -0.95%, +0.16%
- SIMD32: Gained 42, lost 26
- Totals from 56285 (8.63% of 652236) affected shaders:
- Instrs: 13318308 -> 13321011 (+0.02%); split: -0.01%, +0.03%
- Cycles: 7464985282 -> 7352563774 (-1.51%); split: -1.82%, +0.31%
From this we can see that we aren't doing more loads than before
and the change is pretty inconsequential, but it requires less
optimizing to produce similar results.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27568 >
2024-02-20 23:16:27 -08:00
Caio Oliveira
d8f9a05f32
intel/compiler: Rename the passes and files related to intel_nir.h
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27644 >
2024-02-16 22:35:05 +00:00
Caio Oliveira
dc76cfc781
intel/compiler: Collect NIR-only passes in intel_nir.h
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27644 >
2024-02-16 22:35:05 +00:00
Caio Oliveira
5732c9d269
intel/compiler: Rename brw_cs_dispatch_info to intel_cs_dispatch_info
...
And move to the intel_shader_enums.h file.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Caio Oliveira
c5b80de583
intel/compiler: Rename brw_vue_map to intel_vue_map
...
And move to the intel_shader_enums.h file.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Caio Oliveira
7d85d2c7fd
intel/compiler: Rename DISPATCH_MODE_* enums to INTEL_DISPATCH_MODE_*
...
And move to the intel_shader_enums.h file.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Caio Oliveira
26dd1f0bba
intel/compiler: Rename BRW_WM_MSAA_* enums to INTEL_MSAA_*
...
And move to the intel_shader_enums.h file.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Jordan Justen
b533bf7361
intel/compiler: Set branch shader required-width as 16 for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27529 >
2024-02-14 20:07:13 +00:00
Ian Romanick
7441af803f
intel/compiler/xe2: Update get_sampler_lowered_simd_width
...
The Bspec also says, "The table below describes the SIMD modes which
are supported. SIMD32 and SIMD64 are used for media-type operations
only." Perhaps this commit should just add
if (devinfo->ver >= 20)
return 16;
instead.
v2: Use reg_unit in get_sampler_lowered_simd_width. Suggested by Sagar.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27305 >
2024-02-02 02:39:09 +00:00
Francisco Jerez
c3a64f8dd1
intel/fs/xe2+: Allow SIMD16 MULH instructions.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27165 >
2024-01-20 19:55:31 +00:00
Francisco Jerez
54f3d5a00c
intel/fs: Emit QUAD_SWIZZLE instructions with WE_all for derivative lowering.
...
Otherwise the code generator will attempt to emit SIMD-lowered
QUAD_SWIZZLE instructions with an execution group not multiple of 8,
which is invalid on Xe2+.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27165 >
2024-01-20 19:55:31 +00:00