mesa/src/intel/compiler
Jason Ekstrand 05a37e2422 intel/nir: Set lower txs with non-zero LOD
There's a recently discovered HW bug affecting hardware at least as far
back as Skylake where, if the LOD is out-of-bounds for any SIMD lane,
then garbage may be returned in all SIMD lanes.  The easy solution is to
set lower_txs_lod so that we always have a constant LOD of 0 which we
know a priori is always in-bounds.  Fortunately, not many shaders
actually use textureSize() with LOD.

Shader-db results on Ice Lake:

    total instructions in shared programs: 19948537 -> 19948564 (<.01%)
    instructions in affected programs: 3859 -> 3886 (0.70%)
    helped: 0
    HURT: 7

One of the shaders is in Civilization: Beyond Earth, and the rest are
all in Civilization VI.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10538>
2021-05-04 00:02:43 +00:00
..
brw_cfg.cpp intel/ir: Remove scheduling-based cycle count estimates. 2020-04-28 23:01:27 -07:00
brw_cfg.h intel/ir: Remove scheduling-based cycle count estimates. 2020-04-28 23:01:27 -07:00
brw_clip.h i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_line.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_point.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_tri.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_unfilled.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_util.c intel: Rename gen field in gen_device_info struct to ver 2021-04-02 18:33:07 +00:00
brw_compile_clip.c intel: Rename files with gen_debug prefix 2021-04-20 20:06:33 +00:00
brw_compile_sf.c intel: Rename files with gen_debug prefix 2021-04-20 20:06:33 +00:00
brw_compiler.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_compiler.h intel/compiler: add support for fragment coordinate with coarse pixels 2021-05-02 20:20:06 +00:00
brw_dead_control_flow.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_dead_control_flow.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_debug_recompile.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_disasm.c intel/compiler: handle coarse pixel in render target writes descriptors 2021-05-02 20:20:06 +00:00
brw_disasm_info.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +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/compiler: Fix INTEL_DEBUG=hex 2021-04-30 01:51:23 -07:00
brw_eu.h intel/eu: Set message subtype properly for SIMD8 FB fetch 2021-05-03 15:30:41 +00:00
brw_eu_compact.c intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_eu_defines.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_eu_emit.c intel/eu: Set message subtype properly for SIMD8 FB fetch 2021-05-03 15:30:41 +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: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_fs.cpp intel/compiler: add restrictions related to coarse pixel shading 2021-05-02 20:20:06 +00:00
brw_fs.h intel/compiler: add support for fragment coordinate with coarse pixels 2021-05-02 20:20:06 +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 Convert most remaining free-form fall-through comments to FALLTHROUGH 2021-04-15 16:01:22 +00:00
brw_fs_cmod_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_combine_constants.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_cse.cpp intel/fs: Use BRW_OPCODE_HALT for discards 2020-12-01 16:19:08 -06:00
brw_fs_dead_code_eliminate.cpp intel/compiler/fs: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:57 -08:00
brw_fs_generator.cpp intel/fs: Stop using brw_dp_read/write_desc in Gen7+ only code 2021-05-02 20:20:06 +00:00
brw_fs_live_variables.cpp intel/compiler: Silence unused parameter warning in fs_live_variables::setup_one_read 2020-04-17 08:21:40 -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 intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_fs_lower_regioning.cpp intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_fs_nir.cpp intel/compiler: add support for fragment shading rate variable 2021-05-02 20:20:06 +00:00
brw_fs_reg_allocate.cpp intel/fs: Stop using brw_dp_read/write_desc in Gen7+ only code 2021-05-02 20:20:06 +00:00
brw_fs_register_coalesce.cpp intel/fs: Don't delete coalesced MOVs if they have a cmod 2020-04-29 16:45:51 +00:00
brw_fs_saturate_propagation.cpp intel/compiler/fs: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:57 -08:00
brw_fs_scoreboard.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_sel_peephole.cpp intel/compiler: Don't create 64-bit src1 immediates in opt_peephole_sel 2020-04-23 00:53:14 +00:00
brw_fs_validate.cpp intel: disable FS IR validation in release mode. 2018-10-15 18:10:27 -07:00
brw_fs_visitor.cpp intel/fs: Don't use pixel_z for Gen4-5 source_depth_to_render_target 2021-05-03 23:51:51 +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: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +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: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_ir_allocator.h intel/ir: Don't allow allocating zero registers 2018-12-11 21:26:23 -06:00
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: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_ir_performance.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_ir_performance.h intel/ir: Import shader performance analysis pass. 2020-04-28 23:01:03 -07:00
brw_ir_vec4.h intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_nir.c intel/nir: Set lower txs with non-zero LOD 2021-05-04 00:02:43 +00:00
brw_nir.h intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_nir_analyze_boolean_resolves.c intel/fs: Mark source 0 of bcsel as needing Boolean resolve 2019-06-11 12:12:07 -07:00
brw_nir_analyze_ubo_ranges.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_attribute_workarounds.c nir: Make nir_ssa_def_rewrite_uses_after take an SSA value 2021-03-08 16:59:55 +00:00
brw_nir_clamp_image_1d_2d_array_sizes.c intel: Rename GEN:BUG:### to Wa_### 2021-04-02 18:33:07 +00:00
brw_nir_lower_alpha_to_coverage.c intel/nir: Clean up lower_alpha_to_coverage a bit 2020-08-29 16:41:05 +00:00
brw_nir_lower_conversions.c nir: Make nir_ssa_def_rewrite_uses take an SSA value 2021-03-08 16:59:55 +00:00
brw_nir_lower_cs_intrinsics.c nir: Make nir_ssa_def_rewrite_uses_after take an SSA value 2021-03-08 16:59:55 +00:00
brw_nir_lower_image_load_store.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +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: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_lower_rt_intrinsics.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_lower_scoped_barriers.c intel/compiler: use intrinsic builders 2021-01-06 14:34:41 +00:00
brw_nir_lower_shader_calls.c nir: Make nir_ssa_def_rewrite_uses take an SSA value 2021-03-08 16:59:55 +00:00
brw_nir_opt_peephole_ffma.c nir: Make nir_ssa_def_rewrite_uses take an SSA value 2021-03-08 16:59:55 +00:00
brw_nir_rt.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_rt.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_rt_builder.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_tcs_workarounds.c intel: Rename Genx keyword to Gfxx 2021-04-02 18:33:07 +00:00
brw_nir_trig_workarounds.py intel/nir: do not apply the fsin and fcos trig workarounds for consts 2019-09-17 23:39:18 +03:00
brw_packed_float.c intel/compiler: Cast to target type before shifting left 2019-10-24 16:19:23 +02:00
brw_predicated_break.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_reg.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00: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: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00: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/compiler: use existing helpers to pull bits of descriptors 2021-05-02 20:20:06 +00:00
brw_shader.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_shader.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4.h intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +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/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08: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 i965/vec4: Ignore swizzle of VGRF for use by var_range_end() 2020-05-20 20:19:18 +00:00
brw_vec4_dead_code_eliminate.cpp intel/compiler/vec4: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:59 -08:00
brw_vec4_generator.cpp intel/compiler: rework message descriptors for render targets 2021-05-02 20:20:06 +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 intel: Rename files with gen_debug prefix 2021-04-20 20:06:33 +00:00
brw_vec4_gs_visitor.h intel/compiler: Make visitors take debug_enabled as a parameter 2021-03-24 23:18:46 +00:00
brw_vec4_live_variables.cpp intel/compiler: Drop invalidate_live_intervals() 2020-03-06 10:21:01 -08:00
brw_vec4_live_variables.h intel/compiler/vec4: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:59 -08:00
brw_vec4_nir.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4_reg_allocate.cpp intel: Rename GENx keyword to GFXx 2021-04-02 18:33:07 +00:00
brw_vec4_surface_builder.cpp intel/vec4: Remove all support for Gen8+ [v2] 2020-09-28 11:43:10 -07:00
brw_vec4_surface_builder.h intel/vec4: Drop dead code for handling typed surface messages 2019-02-28 16:58:20 -06:00
brw_vec4_tcs.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4_tcs.h intel/compiler: remove unused member 'input_vue_map' 2021-04-08 18:20:10 +00:00
brw_vec4_tes.cpp intel: Rename files with gen_debug prefix 2021-04-20 20:06:33 +00:00
brw_vec4_tes.h intel/compiler: Make visitors take debug_enabled as a parameter 2021-03-24 23:18:46 +00:00
brw_vec4_visitor.cpp intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_vec4_vs.h intel/compiler: Make visitors take debug_enabled as a parameter 2021-03-24 23:18:46 +00:00
brw_vec4_vs_visitor.cpp intel: Rename files with gen_debug prefix 2021-04-20 20:06:33 +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: Rename Genx keyword to Gfxx 2021-04-02 18:33:07 +00:00
gfx6_gs_visitor.h intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
meson.build intel: Rename genx keyword in filenames to gfxx 2021-04-02 18:33:07 +00:00
test_eu_compact.cpp intel: Rename eu compact instruction tests 2021-04-20 20:06:34 +00:00
test_eu_validate.cpp intel: Rename gen keyword in test_eu_validate.cpp 2021-04-20 20:06:34 +00:00
test_fs_cmod_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_fs_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_fs_saturate_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_fs_scoreboard.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_vec4_cmod_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_vec4_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_vec4_dead_code_eliminate.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_vec4_register_coalesce.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
test_vf_float_conversions.cpp i965: Move the back-end compiler to src/intel/compiler 2017-03-13 11:16:34 +00:00