mesa/src/util
Kenneth Graunke 8573e9bf47 ra: Add debug functions for printing spill costs and benefits
These have been incredibly useful when debugging regressions and weird
behavior in the Intel backend when trying to spill multiple registers
before retrying allocation.  With them, we can print out not only what
register was chosen, but the benefit and cost.  Seeing lists of chosen
registers where the benefit/cost was not sorted, and poor options were
chosen before better ones, led me to investigate a number of issues.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28257>
2024-03-19 00:40:52 +00:00
..
blake3 util: Blake3 - Identify arm64ec as aarch64 instead of x64 2023-07-13 15:30:39 +00:00
format util: Add util_format_get_component_shift 2024-02-27 10:51:03 +00:00
perf util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
sha1 util: mark externally-unused functions as static 2023-05-23 20:32:19 +00:00
tests util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
tools util/tools: add the tool that generates perfect hash functions for GLenums 2022-12-18 14:35:59 -05:00
u_gralloc u_gralloc: Add support for gbm_gralloc 2024-01-10 22:26:18 +00:00
.editorconfig util/rb_tree: Fix editorconfig 2023-11-02 21:03:46 +00:00
00-mesa-defaults.conf driconf: add SotTR DX12 to Intel XeSS workaround 2024-03-06 01:12:54 +00:00
00-radv-defaults.conf radv,driconf: Remove active accel struct workaround 2024-03-11 17:08:09 +00:00
anon_file.c util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
anon_file.h util: Add os_create_anonymous_file support on win32 2022-08-12 16:34:32 +00:00
bigmath.h
bitpack_helpers.h util: Add util_bitpack_[su]fixed_clamp helpers 2022-08-30 04:28:34 +00:00
bitscan.c
bitscan.h st/mesa: optimize st_update_arrays using lots of C++ template variants 2024-02-21 18:36:44 +00:00
bitset.h util: make BITSET_TEST_RANGE_INSIDE_WORD take a value to compare with 2023-12-09 00:05:27 +00:00
blend.h util/blend: Add helpers for normalizing inverts 2023-07-13 21:03:32 +00:00
blob.c util: Add align_uintptr and use it treewide to replace ALIGN that works on size_t and uintptr_t 2024-01-05 21:54:35 +00:00
blob.h util/blob: fix trivial typo 2023-12-06 07:22:02 +00:00
build_id.c
build_id.h
cnd_monotonic.h
compiler.h util: Merge p_compiler.h into src/util/compiler.h 2023-06-27 18:18:30 +08:00
compress.c util: Avoid the use of MESA_TRACE_BEGIN/END 2023-10-23 17:20:03 +00:00
compress.h
crc32.c util: use crc32_z instead of crc32 and bump zlib dep to 1.2.9 2024-02-06 19:22:53 +00:00
crc32.h
dag.c util/dag: Add a validation function. 2022-09-29 23:40:18 +00:00
dag.h util/dag: Add a validation function. 2022-09-29 23:40:18 +00:00
dbghelp.h util: Move u_pack_color.h and dbughelp.h into src/util from/src/gallium/auxiliary/util/ 2023-08-02 03:41:24 +00:00
detect.h util: Rename src/gallium/include/pipe/p_config.h to src/util/detect_arch.h 2022-11-15 20:35:55 +00:00
detect_arch.h util: Detect arm64ec as aarch64 (and x86_64) 2024-01-26 00:22:53 +00:00
detect_cc.h util: Remove the unused PIPE_(ARCH|OS|CC) macro defines from src/util/detect_arch.h and src/util/detect_cc.h 2022-11-15 20:35:55 +00:00
detect_os.h mesa/util: Check __ANDROID__ when for detecting for Android 2024-01-18 18:45:40 +00:00
disk_cache.c util/disk_cache: Add marker on cache usage. 2024-01-31 03:14:02 +00:00
disk_cache.h util: Call mesa_bytes_to_hex directly instead of disk_cache_format_hex_id. 2023-04-19 04:19:51 +00:00
disk_cache_os.c util/disk_cache: Use secure_getenv to determine cache directories 2024-01-31 17:28:12 +00:00
disk_cache_os.h util/disk_cache: Add marker on cache usage. 2024-01-31 03:14:02 +00:00
double.c
double.h util: add double_to_float16 helpers 2023-10-09 23:37:52 +00:00
driconf.h radv,driconf: Remove active accel struct workaround 2024-03-11 17:08:09 +00:00
driconf_static.py util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template 2023-12-07 12:41:07 +00:00
enum_operators.h
fast_idiv_by_const.c
fast_idiv_by_const.h
fast_urem_by_const.h fast_urem_by_const: #ifdef DEBUG an assertion. 2023-11-08 07:41:00 +00:00
format_r11g11b10f.h
format_rgb9e5.h
format_srgb.h
format_srgb.py
fossilize_db.c util/fossilize_db: add ifdef for inotify header 2023-01-26 13:06:27 +00:00
fossilize_db.h util/fossilize_db: fix macOS inotify build error 2023-01-23 18:31:48 +00:00
futex.c futex: Change INT_MAX to INT32_MAX. 2023-01-19 03:25:55 +00:00
futex.h mesa: add managarm support 2023-11-20 13:35:19 +00:00
glheader.h glthread: pack the index type to 8 bits 2024-02-23 18:03:58 +00:00
glsl2spirv.py util/glsl2spirv: add ability to pass defines 2023-10-20 13:07:53 +00:00
half_float.c util: remove unused half_to_unorm8 2022-11-04 23:20:02 +00:00
half_float.h util: Do not include immintrin.h in half_float.h 2023-06-28 18:56:20 +00:00
hash_table.c util/hash_table: add u64 foreach macro 2024-02-26 15:37:58 +00:00
hash_table.h util/hash_table: add DERIVE macro 2024-03-12 19:41:49 +00:00
hex.h util: Optimize mesa_hex_to_bytes 2024-01-16 02:15:22 +00:00
libdrm.h util: Updated util/libdrm.h stubs with drmGetMagic() 2024-03-15 10:50:12 +00:00
libsync.h util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
list.h
log.c tree-wide: use __normal_user() everywhere instead of writing the check manually 2024-01-30 12:45:54 +00:00
log.h util: Add more PRINTFLIKE and MALLOCLIKE annotations 2023-09-22 10:47:33 -07:00
macros.h util: Add function util_is_power_of_two_nonzero_uintptr and macro IS_POT_NONZERO 2024-01-11 16:45:56 +00:00
memstream.c util: Add #ifdefs for Xbox GDK support. 2023-01-19 03:25:55 +00:00
memstream.h util: Remove include of windows.h in memstream.h 2022-10-20 03:04:56 +00:00
mesa-blake3.c util/blake3: Add blake3_hash typedef. 2023-06-23 09:28:04 +00:00
mesa-blake3.h util/blake3: Add blake3_hash typedef. 2023-06-23 09:28:04 +00:00
mesa-sha1.c util: Add dedicated hex conversion functions and use it. 2023-04-19 04:19:50 +00:00
mesa-sha1.h util: skip zero-sized SHA1Update 2023-10-25 17:27:47 +00:00
mesa_cache_db.c util/mesa-db: Introduce multipart mesa-db cache 2023-02-01 02:47:30 +00:00
mesa_cache_db.h util: Fixes error: no previous prototype for 'mesa_cache_db_entry_remove' 2023-02-09 04:05:39 +00:00
mesa_cache_db_multipart.c util/mesa-db: Introduce multipart mesa-db cache 2023-02-01 02:47:30 +00:00
mesa_cache_db_multipart.h util/mesa-db: Introduce multipart mesa-db cache 2023-02-01 02:47:30 +00:00
meson.build util: add parson for handling json files 2024-02-09 21:01:05 +00:00
os_file.c util: Allow kcmp on FreeBSD 2024-02-03 17:19:31 +00:00
os_file.h
os_memory.h gallium/util: Remove the EMBEDDED_DEVICE macro because nobody use it 2022-11-08 02:37:20 +00:00
os_memory_aligned.h
os_memory_debug.h util: Replace all usage of __FUNCTION__ with __func__ in src/util/* 2022-11-11 06:15:42 +00:00
os_memory_fd.c util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
os_memory_fd.h
os_memory_stdc.h
os_misc.c util: Re-implement getenv for Windows 2023-12-18 23:49:28 +00:00
os_misc.h util: Add function debug_get_option_cached os_get_option_cached 2022-12-16 19:30:19 +00:00
os_mman.h util: Move src/gallium/auxiliary/os/os_mman.h to src/util/os_mman.h 2022-11-15 19:55:01 +00:00
os_socket.c
os_socket.h
os_time.c mesa: add managarm support 2023-11-20 13:35:19 +00:00
os_time.h util: Replace all usage of PIPE_TIMEOUT_INFINITE with OS_TIMEOUT_INFINITE 2023-06-05 05:12:02 +00:00
parson.c util: add parson for handling json files 2024-02-09 21:01:05 +00:00
parson.h util: add parson for handling json files 2024-02-09 21:01:05 +00:00
ptralloc.h
ralloc.c util/ralloc: add memdup 2024-02-26 15:37:58 +00:00
ralloc.h util/ralloc: add memdup 2024-02-26 15:37:58 +00:00
rand_xor.c
rand_xor.h
rb_tree.c util/rb_tree: Add augmented trees and interval trees 2023-11-02 21:03:46 +00:00
rb_tree.h util/rb_tree: Add augmented trees and interval trees 2023-11-02 21:03:46 +00:00
reallocarray.h
register_allocate.c ra: Add debug functions for printing spill costs and benefits 2024-03-19 00:40:52 +00:00
register_allocate.h ra: Add debug functions for printing spill costs and benefits 2024-03-19 00:40:52 +00:00
register_allocate_internal.h
rgtc.c
rgtc.h
rounding.h
rwlock.c util: Remove include of windows.h in rwlock.h 2022-10-20 03:04:56 +00:00
rwlock.h util: Remove include of windows.h in rwlock.h 2022-10-20 03:04:56 +00:00
set.c util: remove unused set_random_entry 2022-11-04 23:20:02 +00:00
set.h util: remove unused set_random_entry 2022-11-04 23:20:02 +00:00
simple_mtx.c util: Add util_call_once for optimize call to util_call_once_with_context out for hot path 2022-09-22 04:16:29 +00:00
simple_mtx.h util: #include "c11/threads.h" when necessary in simple_mtx.h 2022-10-20 03:04:56 +00:00
slab.c
slab.h
softfloat.c util: remove unused lut 2023-10-30 12:35:07 +00:00
softfloat.h
sparse_array.c
sparse_array.h
streaming-load-memcpy.c util: Add align_uintptr and use it treewide to replace ALIGN that works on size_t and uintptr_t 2024-01-05 21:54:35 +00:00
streaming-load-memcpy.h
string_buffer.c
string_buffer.h util: Add more PRINTFLIKE and MALLOCLIKE annotations 2023-09-22 10:47:33 -07:00
strndup.h
strtod.c util: check and initialize locale before using it 2023-04-27 15:43:33 +00:00
strtod.h
texcompress_astc_luts.cpp util: move ASTCLutHolder from mesa/main to util 2023-10-11 19:28:40 +00:00
texcompress_astc_luts.h util: move ASTCLutHolder from mesa/main to util 2023-10-11 19:28:40 +00:00
texcompress_astc_luts_wrap.cpp util: move ASTCLutHolder from mesa/main to util 2023-10-11 19:28:40 +00:00
texcompress_astc_luts_wrap.h util: move ASTCLutHolder from mesa/main to util 2023-10-11 19:28:40 +00:00
texcompress_rgtc_tmp.h
thread_sched.c util: add mesa_pin_threads environment variable that sets a static affinity mask 2024-01-29 19:40:46 +00:00
thread_sched.h util: add mesa_pin_threads environment variable that sets a static affinity mask 2024-01-29 19:40:46 +00:00
timespec.h util: Add timespec_sub_saturate to avoid negative time for deadlines 2024-02-27 13:10:13 +00:00
u_atomic.c
u_atomic.h util: Fixes note: the alignment of ‘_Atomic long long int’ fields changed in GCC 11. 2023-12-05 09:26:08 +00:00
u_call_once.c util: Add util_call_once for optimize call to util_call_once_with_context out for hot path 2022-09-22 04:16:29 +00:00
u_call_once.h util: Add util_call_once for optimize call to util_call_once_with_context out for hot path 2022-09-22 04:16:29 +00:00
u_cpu_detect.c util/u_cpu_detect: Detect clflushopt support 2023-09-06 01:39:53 +00:00
u_cpu_detect.h util/u_cpu_detect: Detect clflushopt support 2023-09-06 01:39:53 +00:00
u_debug.c util/u_debug: fix parsing of "all" again 2024-03-11 10:44:12 +00:00
u_debug.h util: Provide a secure_getenv fallback for platforms without it 2024-01-31 17:28:11 +00:00
u_debug_memory.c util: Rename src/gallium/include/pipe/p_config.h to src/util/detect_arch.h 2022-11-15 20:35:55 +00:00
u_debug_stack.c util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
u_debug_stack.h util: Include the needed util/detect*.h headers in multiple files 2022-11-15 20:35:55 +00:00
u_debug_stack_android.cpp android: Make libbacktrace optional again 2023-01-25 08:58:25 -03:00
u_debug_symbol.c util: include "util/compiler.h" instead of "pipe/p_compiler.h" 2023-06-27 18:18:30 +08:00
u_debug_symbol.h
u_dl.c
u_dl.h
u_drm.h
u_dynarray.c util: fix stack dynarray used by multiple tus 2023-05-25 15:46:35 +00:00
u_dynarray.h util: fix stack dynarray used by multiple tus 2023-05-25 15:46:35 +00:00
u_endian.h util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
u_hash_table.c util: Remove the usage of enum pipe_error in u_hash_table.* 2022-11-19 01:37:46 +00:00
u_hash_table.h util: Remove include "pipe/*.h" in src/util/* files 2023-08-02 03:41:24 +00:00
u_hexdump.h util: Add common hex dump utility 2023-05-19 16:30:44 +00:00
u_idalloc.c util/idalloc: optimize foreach by tracking the greatest non-zero element 2024-02-21 16:04:51 +00:00
u_idalloc.h util/idalloc: optimize foreach by tracking the greatest non-zero element 2024-02-21 16:04:51 +00:00
u_math.c tree-wide: Convert all usage of defined(PIPE_(OS|ARCH|CC)_*) to DETECT_(OS|ARCH|CC)_* by use grep 2022-11-15 20:35:55 +00:00
u_math.h util: Update ALIGN prototype to match align 2024-01-11 17:30:46 +00:00
u_memory.h util: Delete Offset() macro from u_memory.h 2023-04-15 00:54:16 +00:00
u_memset.h tree-wide: Convert all usage of defined(PIPE_(OS|ARCH|CC)_*) to DETECT_(OS|ARCH|CC)_* by use grep 2022-11-15 20:35:55 +00:00
u_mm.c
u_mm.h
u_pack_color.h util: Move u_pack_color.h and dbughelp.h into src/util from/src/gallium/auxiliary/util/ 2023-08-02 03:41:24 +00:00
u_pointer.h
u_printf.c util/printf: Expose util_printf_prev_tok 2024-01-20 16:11:55 +01:00
u_printf.h util/printf: Expose util_printf_prev_tok 2024-01-20 16:11:55 +01:00
u_process.c util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
u_process.h util/u_process: remove util_get_process_name_may_override() 2023-01-31 22:02:58 +00:00
u_qsort.cpp
u_qsort.h util: Fixes -Wundef in u_qsort.h 2022-11-24 04:33:07 +00:00
u_queue.c util/u_queue: always enable UTIL_QUEUE_INIT_SCALE_THREADS, remove the flag 2023-07-18 11:11:12 -04:00
u_queue.h util/u_queue: always enable UTIL_QUEUE_INIT_SCALE_THREADS, remove the flag 2023-07-18 11:11:12 -04:00
u_string.h util: Add more PRINTFLIKE and MALLOCLIKE annotations 2023-09-22 10:47:33 -07:00
u_thread.c util: refactor to use DETECT_OS_ANDROID 2024-02-01 19:29:49 +00:00
u_thread.h util: Move pipe_semaphore to u_thread.h and rename it to util_semaphore 2022-11-08 05:21:42 +00:00
u_vector.c util: Replace the usage of redundant u_align_u32 with align and remove u_align_u32 2023-06-29 00:45:30 +00:00
u_vector.h util: Replace the usage of redundant u_align_u32 with align and remove u_align_u32 2023-06-29 00:45:30 +00:00
u_worklist.c util,mesa,panfrost: Drop some author tags 2023-03-26 00:16:25 +00:00
u_worklist.h util,mesa,panfrost: Drop some author tags 2023-03-26 00:16:25 +00:00
vl_bitstream.h util: add a bitstream encoder for video stream headers. 2023-11-03 22:59:36 +00:00
vl_rbsp.h util/rbsp: Fill bits twice if reading more than 16 bits 2023-11-22 13:04:06 +00:00
vl_vlc.h util/vl_vlc: Use UINT64_MAX instead of ~0UL with MSVC compiler 2023-09-06 20:47:20 +00:00
vl_zscan_data.c util/vl: extract gallium vl scanning data to shared code 2023-08-25 03:08:13 +00:00
vl_zscan_data.h util/vl: extract gallium vl scanning data to shared code 2023-08-25 03:08:13 +00:00
vma.c treewide: Use align64 instead of ALIGN for 64 bit value parameter 2024-01-11 17:30:46 +00:00
vma.h util/vma: Add "nospan" 2022-12-17 19:14:12 +00:00
xmlconfig.c util/xmlconfig: drop default SYSCONFDIR & DATADIR values 2023-11-16 15:55:02 +00:00
xmlconfig.h util/xmlconfig: drop driInjectDataDir() now that DRIRC_CONFIGDIR is always supported 2023-10-16 07:59:38 +00:00
xxd.py
xxhash.h