mesa/src/intel/compiler
Francisco Jerez 44e48751d2 intel/fs: Teach the lower_regioning pass how to split instructions of unsuported exec type.
This adds some generic infrastructure that allows splitting any
instruction into a number of instructions of a smaller legal execution
type.  This is meant to replace several instances of handcrafted 64bit
type lowering done manually in the code generator, which is rather
error-prone, prevents scheduling of the lowered instructions, and
makes them invisible to the SWSB pass on Gfx12+ platforms, which will
become especially problematic on Gfx12.5+ since the EUs introduce
multiple asynchronous execution pipelines which the SWSB pass needs to
be able to synchronize to one another, so it's critical for the real
execution type of the instruction to be visible to the SWSB pass.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14273>
2022-01-25 22:40:44 +00:00
..
brw_cfg.cpp intel/fs: Add physical fall-through CFG edge for unconditional BREAK instruction. 2021-12-21 00:43:29 +00:00
brw_cfg.h intel/compiler: Add cfg_t::adjust_block_ips() method 2021-07-14 09:56:59 -07:00
brw_clip.h
brw_clip_line.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_point.c
brw_clip_tri.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_unfilled.c
brw_clip_util.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_compile_clip.c mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_compile_ff_gs.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compile_sf.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compiler.c nir/algebraic: Separate has_dot_4x8 into has_sdot_4x8 and has_udot_4x8 2022-01-10 13:20:39 +02:00
brw_compiler.h intel/brw: drop gl header from the brw backend. 2022-01-19 21:54:58 +00:00
brw_dead_control_flow.cpp
brw_dead_control_flow.h
brw_debug_recompile.c mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_disasm.c intel/compiler: Prepare disasm for 16-bit sampler params 2021-11-22 21:27:30 -08:00
brw_disasm_info.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_disasm_info.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_eu.cpp intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_eu.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_compact.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_eu_defines.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_emit.c intel/eu: Don't double-loop as often in brw_set_uip_jip 2021-12-18 01:46:19 +00:00
brw_eu_util.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_eu_validate.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_fs.cpp intel/fs: Reuse the same FS input slot for VUE header fields. 2022-01-19 01:31:47 +00:00
brw_fs.h intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_fs_bank_conflicts.cpp intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_fs_builder.h intel/compiler: Fix instruction size written calculation 2021-11-22 21:27:30 -08:00
brw_fs_cmod_propagation.cpp intel/fs: Fix a cmod prop bug when cmod is set to inst that doesn't support it 2021-11-01 21:08:12 +00:00
brw_fs_combine_constants.cpp intel/compiler: Fix missing break in switch 2021-07-22 23:38:04 +00:00
brw_fs_copy_propagation.cpp intel/compiler: Add new variant for TXF_CMS_W 2021-11-22 21:27:30 -08:00
brw_fs_cse.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_dead_code_eliminate.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_generator.cpp intel/fs: Use HF as destination type for F32TOF16 in fquantize2f16 2021-12-15 20:03:51 +00:00
brw_fs_live_variables.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_live_variables.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_lower_pack.cpp
brw_fs_lower_regioning.cpp intel/fs: Teach the lower_regioning pass how to split instructions of unsuported exec type. 2022-01-25 22:40:44 +00:00
brw_fs_nir.cpp intel/fs: Fix gl_FrontFacing optimization on Gfx12+ 2022-01-20 22:37:18 +00:00
brw_fs_reg_allocate.cpp intel/fs: Implement spilling on XeHP 2021-06-25 00:18:29 +00:00
brw_fs_register_coalesce.cpp intel/compiler: Update block IPs once in register_coalesce 2021-07-14 09:57:04 -07:00
brw_fs_saturate_propagation.cpp
brw_fs_scoreboard.cpp intel/fs/xehp: Merge repeated in-order read dependencies instead of replacement. 2022-01-25 22:40:44 +00:00
brw_fs_sel_peephole.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_validate.cpp
brw_fs_visitor.cpp intel/fs: Use compare_func for wm_prog_key::alpha_test_func 2022-01-14 15:08:09 +00:00
brw_gfx_ver_enum.h intel: Rename gen enum to gfx_ver 2021-04-20 20:06:34 +00:00
brw_inst.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_interpolation_map.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_ir.h intel/compiler: Add the ability to defer IP updates in backend_instruction::remove 2021-07-14 09:56:46 -07:00
brw_ir_allocator.h
brw_ir_analysis.h intel/compiler: use C++ template instead of preprocessor 2020-11-03 10:42:29 +00:00
brw_ir_fs.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_ir_performance.cpp intel/compiler: Use uppercase enum values in brw_ir_performance.cpp 2021-12-16 09:00:57 +00:00
brw_ir_performance.h
brw_ir_vec4.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_mesh.cpp mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_nir.c mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_nir.h mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_nir_analyze_boolean_resolves.c
brw_nir_analyze_ubo_ranges.c intel/nir,i965: Move HW generation check for UBO pushing to i965 2021-06-03 05:12:33 +00:00
brw_nir_attribute_workarounds.c intel/compiler: use nir_shader_instructions_pass in brw_nir_apply_attribute_workarounds 2021-08-11 11:23:30 +00:00
brw_nir_clamp_image_1d_2d_array_sizes.c intel/compiler: use nir_shader_instructions_pass in brw_nir_clamp_image_1d_2d_array_sizes 2021-10-05 10:02:54 +00:00
brw_nir_lower_alpha_to_coverage.c
brw_nir_lower_conversions.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_conversions 2021-10-05 10:02:54 +00:00
brw_nir_lower_cs_intrinsics.c intel/compiler: Lower Task/Mesh local_invocation_{id,index} 2021-12-04 00:41:46 +00:00
brw_nir_lower_intersection_shader.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_lower_mem_access_bit_sizes.c intel/nir: preserve access value when duping intrinsic 2021-12-04 20:46:35 +00:00
brw_nir_lower_rt_intrinsics.c intel/compiler: extract brw_nir_load_global_const out of rt code 2021-12-04 00:41:46 +00:00
brw_nir_lower_scoped_barriers.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_scoped_barriers 2021-10-05 10:02:54 +00:00
brw_nir_lower_shader_calls.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_lower_storage_image.c intel/nir: also allow unknown format for getting the size of a storage image 2021-11-17 21:06:23 +00:00
brw_nir_opt_peephole_ffma.c intel/compiler: use nir_shader_instructions_pass in brw_nir_opt_peephole_ffma 2021-10-05 10:02:54 +00:00
brw_nir_rt.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_rt.h intel/rt: switch to common pass for shader calls lowering 2021-06-22 21:09:25 +00:00
brw_nir_rt_builder.h nir: drop the btd_resume_intel intrinsic 2021-06-22 21:09:25 +00:00
brw_nir_tcs_workarounds.c intel/compiler: use nir_metadata_none instead of its value 2021-10-05 10:02:54 +00:00
brw_nir_trig_workarounds.py python: drop python2 support 2021-08-14 21:44:32 +00:00
brw_packed_float.c
brw_predicated_break.cpp intel/compiler: Don't predicate a WHILE if there is a CONT 2021-12-08 14:56:32 -08:00
brw_private.h intel/compiler: Use SIMD selection helpers for variable workgroup size 2021-10-26 17:49:09 +00:00
brw_reg.h intel/compiler: Move type_is_unsigned_int to brw_reg_type.h 2021-08-30 14:00:14 -07:00
brw_reg_type.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_reg_type.h intel/compiler: Move type_is_unsigned_int to brw_reg_type.h 2021-08-30 14:00:14 -07:00
brw_rt.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_schedule_instructions.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_shader.cpp mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_shader.h intel/fs: Add a NONE scheduling mode 2021-12-18 01:46:19 +00:00
brw_simd_selection.c intel/compiler: Don't use SIMD larger than needed for workgroup 2021-10-26 17:49:09 +00:00
brw_vec4.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4.h intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_vec4_builder.h intel: Rename Genx keyword to Gfxx 2021-04-02 18:33:07 +00:00
brw_vec4_cmod_propagation.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4_cse.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_dead_code_eliminate.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_generator.cpp intel/fs,vec4: Drop prog_data binding tables 2021-12-10 21:20:47 +00:00
brw_vec4_gs_nir.cpp nir: Add ability to count emitted GS primitives. 2020-10-09 15:26:14 +02:00
brw_vec4_gs_visitor.cpp mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_vec4_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_live_variables.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_live_variables.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_nir.cpp intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_vec4_reg_allocate.cpp intel/vec4: Use ra_alloc_contig_reg_class() to reduce RA overhead. 2021-06-04 19:08:57 +00:00
brw_vec4_surface_builder.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_vec4_tcs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_visitor.cpp intel/vec4: Inline emit_texture and move helpers to brw_vec4_nir.cpp 2021-12-16 00:09:45 -08:00
brw_vec4_vs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_vs_visitor.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vue_map.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_wm_iz.cpp intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
gfx6_gs_visitor.cpp intel/vec4: Don't override emit_urb_write_opcode for SNB GS 2021-08-11 23:57:52 +00:00
gfx6_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
meson.build intel/compiler: Add backend compiler basics for Task/Mesh 2021-12-04 00:41:46 +00:00
test_eu_compact.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_eu_validate.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_fs_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_saturate_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_scoreboard.cpp intel/compiler/test: Fix build with GCC 7 2021-12-30 19:59:52 +00:00
test_simd_selection.cpp intel/compiler: Initialize SIMDSelectionTest member error. 2021-11-03 04:22:35 +00:00
test_vec4_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_dead_code_eliminate.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_register_coalesce.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vf_float_conversions.cpp