intel/fs: switch register allocation spilling to use LSC on Gfx12.5+
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 18 Jul 2022 09:27:53 +0000 (12:27 +0300)
committerMarge Bot <emma+marge@anholt.net>
Wed, 24 Aug 2022 17:51:40 +0000 (17:51 +0000)
commit37b3601052c35ebce78a14a34d0ae0095890bce3
treef9eadee761a062be0d0fb25133968f7c7eec3e44
parent3c6fa2703dad46a5026cc3993224feff0f106745
intel/fs: switch register allocation spilling to use LSC on Gfx12.5+

v2: drop the hardcoded inst->mlen=1 (Rohan)

v3: Move back to LOAD/STORE messages (limited to SIMD16 for LSC)

v4: Also use 4 GRFs transpose loads for fills (Curro)

v5: Reduce amount of needed register to build per lane offsets (Curro)
    Drop some now useless SIMD32 code
    Unify unspill code

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17555>
src/intel/compiler/brw_eu.h
src/intel/compiler/brw_eu_emit.c
src/intel/compiler/brw_fs_generator.cpp
src/intel/compiler/brw_fs_reg_allocate.cpp
src/intel/compiler/brw_ir.h