mesa/src/intel/compiler
Caio Oliveira 650ec7169d intel/brw: Add SHADER_OPCODE_SEND_GATHER
Starting in Xe3, there's a variant of SEND that take the
register numbers from the ARF scalar register, and don't
require them to be contiguous.  The new opcode added here
represents that kind of SEND.

To make the original sources still reachable, we keep them
around during the IR, just ignoring them at generator time.
This allow software scoreboard to properly reason the
dependencies without trying to decode the contents of ARF
scalar register being used.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32410>
2025-01-30 04:43:58 +00:00
..
elk intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
tests intel/brw: Remove assembler tests for Gfx8- 2024-02-24 02:10:56 +00:00
brw_asm.c intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_asm.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_asm_internal.h intel/brw: Rename brw_inst.h to brw_eu_inst.h 2024-12-30 17:16:15 +00:00
brw_asm_tool.c intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_builder.cpp intel/brw: Use brw prefix instead of namespace in dynamic_msaa_flags() 2025-01-28 00:48:38 +00:00
brw_builder.h intel/brw: Move shuffle_from_32bit_read implementation to brw_builder 2025-01-18 20:48:57 +00:00
brw_cfg.cpp intel/brw: Add a file parameter to idom_tree::dump() 2024-08-22 22:54:45 +00:00
brw_cfg.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_compile_bs.cpp anv/xe3+: Set RegistersPerThread for bindless shader dispatch. 2025-01-29 23:39:32 +00:00
brw_compile_cs.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_fs.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_gs.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_mesh.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_tcs.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_tes.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compile_vs.cpp intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
brw_compiler.c nir: remove dead code due to IO being always lowered in st/mesa 2025-01-22 02:15:04 +00:00
brw_compiler.h intel/brw: Define ptl_register_blocks() helper. 2025-01-29 23:39:32 +00:00
brw_debug_recompile.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_def_analysis.cpp intel: Add statistic for Non SSA registers after NIR to BRW 2024-10-11 06:40:29 +00:00
brw_device_sha1_gen_c.py intel/compiler: drop unused ray-tracing fields from cache hash 2024-03-22 00:01:28 +00:00
brw_disasm.c intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_disasm.h intel/brw: Rename brw_inst to brw_eu_inst 2024-12-30 17:16:15 +00:00
brw_disasm_info.cpp intel/brw: Simplify fs_inst annotation 2024-08-28 03:59:50 +00:00
brw_disasm_info.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_disasm_tool.c intel/brw: Remove Gfx8- code from disassembler 2024-02-28 05:45:38 +00:00
brw_eu.c intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_eu.h intel/brw: Plumb through generator whether SEND is gather variant 2025-01-30 04:43:58 +00:00
brw_eu_compact.c brw: Pass number and sizeof separately to calloc 2025-01-21 22:58:56 +00:00
brw_eu_defines.h intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_eu_emit.c intel/brw: Plumb through generator whether SEND is gather variant 2025-01-30 04:43:58 +00:00
brw_eu_inst.h intel/brw: Add missing bits in 3-src SWSB encoding for Xe2+ 2025-01-03 21:19:26 +00:00
brw_eu_validate.c intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_fs.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_fs.h intel/brw: Remove unused enum 2025-01-28 02:17:17 +00:00
brw_fs_live_variables.cpp brw: Add devinfo parameter to fs_inst::regs_read 2024-12-24 18:09:58 -08:00
brw_fs_live_variables.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_fs_nir.cpp intel/brw/xe3+: Mask subgroup shuffle index to be within valid range to avoid VRT hangs. 2025-01-29 23:39:32 +00:00
brw_fs_thread_payload.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_fs_visitor.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_generator.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_generator.h intel/brw: Rename fs_generator to brw_generator 2025-01-17 00:04:41 +00:00
brw_gram.y intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
brw_ir.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_ir_allocator.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_ir_analysis.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_ir_fs.h brw: move final send lowering up into the IR 2025-01-11 08:41:42 +00:00
brw_ir_performance.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_ir_performance.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_isa_info.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_kernel.c brw/elk: move internal kernel parsing out of intel_clc 2025-01-25 03:28:07 +00:00
brw_kernel.h intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
brw_lex.l intel/brw: Add assembly support for ARF scalar register 2024-12-13 02:18:15 +00:00
brw_lower.cpp intel/brw: Stop using namespace for brw_builder 2025-01-18 16:12:56 +00:00
brw_lower_dpas.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_lower_integer_multiplication.cpp intel/brw: Apply conventions to lower_src_modifiers helper 2025-01-19 08:24:09 -08:00
brw_lower_logical_sends.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_lower_pack.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_lower_regioning.cpp intel/brw: Apply conventions to lower_src_modifiers helper 2025-01-19 08:24:09 -08:00
brw_lower_scoreboard.cpp intel/brw: Add scoreboard support for scalar register 2025-01-30 04:43:57 +00:00
brw_lower_simd_width.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_lower_subgroup_ops.cpp intel/brw: Saturate shifted subgroup index to avoid reading past the end of register file. 2025-01-29 23:39:32 +00:00
brw_nir.c intel/brw: Allow specifying a required subgroup size for fragment shaders. 2025-01-29 23:39:32 +00:00
brw_nir.h intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
brw_nir_analyze_ubo_ranges.c intel/compiler: take reg_unit size into account with ubo ranges 2025-01-07 21:38:06 +00:00
brw_nir_lower_alpha_to_coverage.c brw: rename brw_sometimes to intel_sometimes 2024-11-26 13:05:30 +00:00
brw_nir_lower_cooperative_matrix.c intel/brw/xe2+: Allow vec16 for cooperative matrix 2024-06-25 14:17:47 -07:00
brw_nir_lower_cs_intrinsics.c compiler: Allow derivative_group to be used for all stages in shader_info 2024-09-03 20:03:18 +00:00
brw_nir_lower_fsign.py intel/brw: Use range analysis to optimize fsign 2024-05-14 01:28:21 +00:00
brw_nir_lower_intersection_shader.c intel/rt: fix terminateOnFirstHit handling 2024-08-05 21:43:36 +00:00
brw_nir_lower_ray_queries.c intel/rt: fix ray_query stack address calculation 2024-11-08 18:31:52 +00:00
brw_nir_lower_rt_intrinsics.c brw/rt: fix ray_object_(direction|origin) for closest-hit shaders 2024-08-13 10:28:50 +00:00
brw_nir_lower_shader_calls.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
brw_nir_lower_storage_image.c intel/brw: Drop image_{load,store}_raw_intel handling 2024-08-09 07:20:08 +00:00
brw_nir_opt_fsat.c intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_nir_rt.c brw/nir: rework inline_data_intel to work with compute 2024-10-17 19:35:59 +00:00
brw_nir_rt.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_nir_rt_builder.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_nir_trig_workarounds.py
brw_opt.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_opt_address_reg_load.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_opt_algebraic.cpp intel/brw: Rename brw_fs_builder.h to brw_builder.h 2025-01-18 16:12:54 +00:00
brw_opt_bank_conflicts.cpp intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_opt_cmod_propagation.cpp intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_opt_combine_constants.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_opt_copy_propagation.cpp intel/brw: Rename fs_generator to brw_generator 2025-01-17 00:04:41 +00:00
brw_opt_cse.cpp brw: fix CSE with negation 2025-01-23 12:45:34 +00:00
brw_opt_dead_code_eliminate.cpp intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_opt_register_coalesce.cpp intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_opt_saturate_propagation.cpp intel/brw: Remove 'fs' prefix from passes and related functions 2025-01-02 18:11:05 +00:00
brw_opt_txf_combiner.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_opt_virtual_grfs.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
brw_packed_float.c
brw_prim.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_print.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_private.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_reg.cpp brw: add infra to make use of the address register in the IR 2025-01-11 08:41:42 +00:00
brw_reg.h intel/brw/xe3: Define XE3_MAX_GRF. 2025-01-29 23:39:32 +00:00
brw_reg_allocate.cpp intel/brw/xe3+: Disable round-robin allocation heuristic on Xe3+. 2025-01-29 23:39:32 +00:00
brw_reg_type.c intel/brw: Rename brw_reg_type_to_hw_type to brw_type_encode 2024-04-25 11:41:48 +00:00
brw_reg_type.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_rt.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
brw_schedule_instructions.cpp intel/brw: Use brw prefix for some schedule instructions identifiers 2025-01-27 18:32:41 +00:00
brw_shader.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_simd_selection.cpp intel/brw/xe3+: Optimize CS/TASK/MESH compile time optimistically assuming SIMD32. 2025-01-29 23:39:32 +00:00
brw_spirv.c intel: rework CL pre-compile 2025-01-25 03:28:07 +00:00
brw_validate.cpp intel/brw: Add SHADER_OPCODE_SEND_GATHER 2025-01-30 04:43:58 +00:00
brw_vue_map.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_workaround.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
intel_clc.c intel/brw: Report number of GRF registers used in brw_stage_prog_data. 2025-01-29 23:39:32 +00:00
intel_gfx_ver_enum.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
intel_nir.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir.h brw: Align and combine constant-offset UBO loads in NIR 2025-01-10 22:44:09 +00:00
intel_nir_blockify_uniform_loads.c brw: Align and combine constant-offset UBO loads in NIR 2025-01-10 22:44:09 +00:00
intel_nir_clamp_image_1d_2d_array_sizes.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_clamp_per_vertex_loads.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_conversions.c intel/nir: Don't needlessly split u2f16 for nir_type_uint32 2024-07-11 02:37:05 -07:00
intel_nir_lower_non_uniform_barycentric_at_sample.c nir: change signature of nir_src_is_divergent() 2024-10-24 10:06:17 +00:00
intel_nir_lower_non_uniform_resource_intel.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_printf.c brw: handle load_printf_buffer_size intrinsic 2025-01-17 18:09:45 +00:00
intel_nir_lower_shading_rate_output.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_sparse.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_texture.c intel/compiler: Pack texture LOD and offset to a single 32-bit value 2024-02-27 00:22:46 +00:00
intel_nir_opt_peephole_ffma.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_opt_peephole_imul32x16.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_tcs_workarounds.c intel/nir: Set src_type on TCS quads workaround store_output 2024-05-02 13:58:21 -07:00
intel_shader_enums.h intel/compiler: Use #pragma once instead of header guards 2024-12-11 19:47:44 +00:00
meson.build intel: Add meson option -Dintel-elk 2025-01-30 00:45:59 +00:00
test_eu_compact.cpp intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
test_eu_validate.cpp intel/brw: Rename brw_inst_* helpers to brw_eu_inst_* 2024-12-30 17:16:15 +00:00
test_lower_scoreboard.cpp intel/brw: Add scoreboard support for scalar register 2025-01-30 04:43:57 +00:00
test_opt_cmod_propagation.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
test_opt_combine_constants.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
test_opt_copy_propagation.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
test_opt_cse.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
test_opt_saturate_propagation.cpp intel/brw: Rename fs_builder to brw_builder 2025-01-18 16:12:55 +00:00
test_simd_selection.cpp intel/brw/xe3+: Optimize CS/TASK/MESH compile time optimistically assuming SIMD32. 2025-01-29 23:39:32 +00:00
test_vf_float_conversions.cpp