mesa/src/intel/compiler
Ian Romanick 945fb51fb5 intel/fs: Fix gl_FrontFacing optimization on Gfx12+
It's not obvious why the (gl_FrontFacing ? -1.0 : 1.0) case was handled
different for Gfx12+ than for previous generations, and it's not
correct.  It tries to negate the result as an integer, and it does this
before the mask operation that clears the other bits in the value.

When we eventually support dual-SIMD8 dispatch, the other front-facing
bit is in g1.6 at bit 15, so similar code should be possible there.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Fixes: c92fb60007 ("intel/fs/gen12: Implement gl_FrontFacing on gen12+.")
Closes: #5876
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14625>
2022-01-20 22:37:18 +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: move away from booleans to identify platforms 2021-11-08 16:48:06 +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: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT. 2021-12-08 02:47:11 +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