intel/compiler: Move spill/fill tracking to the register allocator
Originally, we had virtual opcodes for scratch access, and let the generator count spills/fills separately from other sends. Later, we started using the generic SHADER_OPCODE_SEND for spills/fills on some generations of hardware, and simply detected stateless messages there. But then we started using stateless messages for other things: - anv uses stateless messages for the buffer device address feature. - nir_opt_large_constants generates stateless messages. - XeHP curbe setup can generate stateless messages. So counting stateless messages is not accurate. Instead, we move the spill/fill accounting to the register allocator, as it generates such things, as well as the load/store_scratch intrinsic handling, as those are basically spill/fills, just at a higher level. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16691>
This commit is contained in:

committed by
Marge Bot

parent
4896e136b6
commit
9886615958
@@ -81,6 +81,8 @@ offset(const fs_reg ®, const brw::fs_builder &bld, unsigned delta)
|
||||
struct shader_stats {
|
||||
const char *scheduler_mode;
|
||||
unsigned promoted_constants;
|
||||
unsigned spill_count;
|
||||
unsigned fill_count;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user