mesa/src/util
Eric Anholt 2d7bcdaf6b ra: Add fast-path support for register classes of contiguous regs.
In the fully general case of register classes, to expose an allocation
class of unaligned 2-contiguous-regs allocations, for example, you'd have
your base individual regs (128 on intel), and another set of 127 regs that
each conflicted with the corresponding pair of the base regs.  Single-reg
nodes would allocate in the 128, and double-reg nodes would allocate in
the 127 and the user would remap from the 127 down to the base regs with
some irritating table.

If you need many different contiguous allocation sizes (16 is a pretty
common number across drivers), your number of regs explodes, wasting
memory and making the q computation expensive at startup.

If all the user has is contiguous-reg classes, we can easily compute the q
value up front (as found in the intel driver and nouveau, for example),
and we only have to change a couple of places in the conflict-checking
logic so the contiguous-reg classes can use the base registers.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9437>
2021-06-04 19:08:57 +00:00
..
format util/format: Change the pointer offset. 2021-06-03 04:44:24 +00:00
sha1 util: rename PIPE_ARCH_*_ENDIAN to UTIL_ARCH_*_ENDIAN 2019-11-05 16:39:55 +00:00
tests util: Switch the non-block formats to unpacking rgba rows instead of rects. 2021-04-19 17:59:44 +00:00
00-mesa-defaults.conf radv: enable RADV_DEBUG=invariantgeom for SotTR DX11/DX12 versions 2021-06-03 06:32:35 +00:00
Android.mk util/format: Add some NEON intrinsics-based u_format_unpack. 2021-04-19 17:59:44 +00:00
anon_file.c util/anon_file: add OpenBSD shm_mkstemp() path 2020-08-31 09:14:57 +00:00
anon_file.h util/anon_file: const string param 2019-08-08 22:02:54 +01:00
bigmath.h
bitscan.c util: only allow _BitScanReverse64 on 64-bit cpus 2019-09-02 12:45:45 +00:00
bitscan.h util/bitscan: add u_foreach_bit macros 2021-02-24 17:11:44 +00:00
bitset.h util/bitset: Add BITSET_COUNT helper 2021-05-02 20:38:28 +00:00
bitset_test.cpp util/tests: add basic unit tests for bitset 2019-05-03 15:23:04 +10:00
blob.c util: stop including files from mesa/main 2020-03-27 21:00:09 +00:00
blob.h util/blob: Add overwrite function for uint8 2020-03-20 17:25:25 +00:00
blob_test.c Move blob from compiler/ to util/ 2019-09-19 19:56:22 +00:00
build_id.c
build_id.h util: add missing extern C 2020-09-25 20:09:08 +00:00
cnd_monotonic.h util,radv: Cross-platform monotonic condition variable 2020-11-26 07:58:56 +00:00
compiler.h util: Disable [[fallthrough]] for C17 2020-12-02 19:35:59 +00:00
compress.c meson, util: Make zlib optional again 2021-03-19 19:33:59 +00:00
compress.h meson, util: Make zlib optional again 2021-03-19 19:33:59 +00:00
crc32.c
crc32.h
dag.c
dag.h
debug.c util: stop including files from mesa/main 2020-03-27 21:00:09 +00:00
debug.h Revert "util: Add helpers for various one-time-init patters" 2020-11-25 09:44:11 +00:00
detect_os.h util: introduce detect_os.h 2019-08-02 18:38:52 +01:00
disk_cache.c util/disk_cache: make MESA_DISK_CACHE_READ_ONLY_FOZ_DBS a relative path 2021-03-04 04:07:46 +00:00
disk_cache.h util/disk_cache: use a new cache dir for the single file cache feature 2021-02-21 02:50:45 +00:00
disk_cache_os.c util/disk_cache: add cache item headers to single file cache entries 2021-03-16 23:37:48 +00:00
disk_cache_os.h util/disk_cache: make MESA_DISK_CACHE_READ_ONLY_FOZ_DBS a relative path 2021-03-04 04:07:46 +00:00
double.c util: add fp64 -> fp32 conversion support for RTNE and RTZ rounding modes 2019-09-17 23:39:18 +03:00
double.h util: add fp64 -> fp32 conversion support for RTNE and RTZ rounding modes 2019-09-17 23:39:18 +03:00
driconf.h radv: add few new drirc options 2021-05-26 18:48:04 +00:00
driconf_static.py util/drirc: make engine_versions an optional field 2021-05-26 18:48:04 +00:00
enum_operators.h util: tune signatures of generated enum operators 2021-05-14 11:00:52 +00:00
fast_idiv_by_const.c util: Use uint64_t for shifting left in sign_extend and strunc 2019-10-24 16:21:01 +02:00
fast_idiv_by_const.h
fast_urem_by_const.h util: Add a helper for faster remainders 2019-05-31 19:14:27 +02:00
format_r11g11b10f.h
format_rgb9e5.h
format_srgb.h
format_srgb.py util: initialize float-array with float-literals 2020-01-14 12:00:27 +01:00
fossilize_db.c util/hash_table: do not leak u64 struct key 2021-04-29 12:58:23 +02:00
fossilize_db.h util/fossilize_db: remove compression from foz db helper 2021-03-15 03:34:48 +00:00
futex.h util: futex fixes for OpenBSD 2020-08-31 09:14:57 +00:00
half_float.c gallium/util: remove empty file u_half.h 2020-10-06 21:07:11 -04:00
half_float.h util: Add accessor for util_cpu_caps 2021-02-26 18:31:19 +00:00
hash_table.c util/hash_table: _mesa_hash_table_create_u32_keys() 2021-05-07 13:14:08 +00:00
hash_table.h util/hash_table: _mesa_hash_table_create_u32_keys() 2021-05-07 13:14:08 +00:00
libsync.h android: Add pre-4.7 Android kernel compatibility to our libsync header. 2020-10-19 18:41:50 +00:00
list.h util/list: use helper function in list_is_singular 2020-12-18 01:46:00 +00:00
log.c mesa: Promote Intel's simple logging façade for Android to util/ 2020-09-28 09:14:44 -07:00
log.h mesa: Promote Intel's simple logging façade for Android to util/ 2020-09-28 09:14:44 -07:00
macros.h macros: Add thread-safety annotation macros 2021-02-18 00:27:49 +00:00
Makefile.sources android: util: create some standalone compression helpers 2021-03-18 01:31:31 +00:00
memstream.c util: Disable memstream for Apple builds 2021-01-08 09:37:14 +00:00
memstream.h util,ac,aco,radv: Cross-platform memstream API 2020-10-19 03:37:42 -07:00
mesa-sha1.c util/mesa_sha1: add helper to reconvert sha1 hex strings 2021-02-21 02:50:45 +00:00
mesa-sha1.h util/mesa_sha1: add helper to reconvert sha1 hex strings 2021-02-21 02:50:45 +00:00
mesa-sha1_test.c
meson.build ra: Add a unit test. 2021-06-04 19:08:57 +00:00
os_file.c util: Make os_read_file use O_BINARY on Windows 2021-03-11 23:43:47 +00:00
os_file.h util: Make os_read_file use O_BINARY on Windows 2021-03-11 23:43:47 +00:00
os_memory.h Fix VMware capitalization. 2020-10-27 15:33:40 -07:00
os_memory_aligned.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
os_memory_debug.h util: move debug_memory_{begin,end} to os_memory_debug.h 2020-02-24 23:07:57 +00:00
os_memory_stdc.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
os_misc.c util: Remove unused Android options_tbl_lock 2021-04-15 16:01:21 +00:00
os_misc.h util: Add os_get_page_size query 2020-12-02 10:12:27 -08:00
os_socket.c util: fix possible fd leaks in os_socket_listen_abstract 2020-07-30 10:41:00 +00:00
os_socket.h util/os_socket: fix header unavailable on windows 2020-02-04 17:33:49 +00:00
os_time.c util/os_time: Safe os_time_get_nano for Windows 2020-11-26 07:58:56 +00:00
os_time.h util: Add os_localtime 2020-12-01 07:11:44 +00:00
process_test.c util/u_process: implement util_get_process_name for Windows 2020-11-12 11:49:12 +00:00
ralloc.c util/ralloc: fix ralloc alignment. 2020-08-21 18:22:21 +00:00
ralloc.h util/ralloc: Add helpers for growing zero-initialized memory 2019-05-14 12:30:22 -05:00
rand_xor.c util/rand_xor: extend the urandom path to all non-Windows platforms 2020-05-16 12:05:37 +00:00
rand_xor.h util/rand_xor: make it clear that {,s_}rand_xorshift128plus take *exactly 2* uint64_t 2020-05-16 12:05:37 +00:00
rb_tree.c
rb_tree.h util/rb_tree: Stop relying on &iter->field != NULL 2019-09-26 20:36:41 +00:00
rb_tree_test.c util/rb_tree: Also test _safe iterators 2019-09-26 20:36:41 +00:00
register_allocate.c ra: Add fast-path support for register classes of contiguous regs. 2021-06-04 19:08:57 +00:00
register_allocate.h ra: Add fast-path support for register classes of contiguous regs. 2021-06-04 19:08:57 +00:00
register_allocate_internal.h ra: Add fast-path support for register classes of contiguous regs. 2021-06-04 19:08:57 +00:00
register_allocate_test.cpp ra: Add fast-path support for register classes of contiguous regs. 2021-06-04 19:08:57 +00:00
rgtc.c
rgtc.h
roundeven_test.c
rounding.h util: When building 'ARM64EC', don't use x64 intrinsics which need to be emulated 2021-01-22 17:56:08 +00:00
rwlock.h util: Fix rwlock Windows include for MinGW 2020-10-20 08:33:42 +00:00
set.c util/set: add macro for destructively iterating set entries 2021-04-07 22:57:27 +00:00
set.h util/set: add macro for destructively iterating set entries 2021-04-07 22:57:27 +00:00
simple_list.h
simple_mtx.h util: Add helgrind support for simple_mtx 2020-11-24 21:03:34 +00:00
slab.c util/slab: do not dereference NULL-pointer 2020-12-01 18:03:31 +00:00
slab.h util/slab: allow usage from c++ code 2020-11-10 15:37:07 +00:00
softfloat.c softfloat: Silence a warning at -Og 2021-02-18 20:59:43 +00:00
softfloat.h util: implement F16C using inline assembly on x86_64 2020-10-06 21:07:03 -04:00
sparse_array.c util/sparse_free_list: manipulate node pointers using atomic primitives 2020-04-18 12:18:03 +00:00
sparse_array.h util/sparse_array: Stash the node level in the node pointer 2020-03-20 15:31:10 -05:00
string_buffer.c util: use standard name for vsnprintf() 2019-07-19 22:39:38 +01:00
string_buffer.h
strndup.h
strtod.c
strtod.h
texcompress_rgtc_tmp.h
timespec.h lavapipe: fix usleep usage in lvp_device 2020-10-27 21:05:55 +00:00
u_atomic.c
u_atomic.h util: Use explicit relaxed reads for u_queue 2021-01-28 18:07:09 +00:00
u_atomic_test.c
u_cpu_detect.c util: fix (re-enable) L3 cache pinning 2021-05-04 01:02:07 -04:00
u_cpu_detect.h util: fix (re-enable) L3 cache pinning 2021-05-04 01:02:07 -04:00
u_debug.c util: add a env getter for versions 2020-11-11 06:08:15 +10:00
u_debug.h util: Add helper to get FILE* options 2020-12-03 21:19:57 +00:00
u_debug_memory.c util: move debug_memory_{begin,end} to os_memory_debug.h 2020-02-24 23:07:57 +00:00
u_debug_stack.c util: Fix pointer to integer conversion error when using libunwind 2021-01-15 20:00:20 +00:00
u_debug_stack.h gallium/android: Rewrite backtrace helper for android 2020-08-05 18:08:06 +00:00
u_debug_stack_android.cpp gallium/android: Rewrite backtrace helper for android 2020-08-05 18:08:06 +00:00
u_debug_stack_test.cpp u_debug_stack_test: Fix MSVC compiling by using ATTRIBUTE_NOINLINE 2020-08-13 23:18:36 +00:00
u_debug_symbol.c util: Move stack debug functions to src/util 2020-08-05 18:08:06 +00:00
u_debug_symbol.h util: Move stack debug functions to src/util 2020-08-05 18:08:06 +00:00
u_drm.h util: Add a drm_find_modifier helper 2019-03-14 22:41:08 +00:00
u_dynarray.h u_dynarray: turn util_dynarray_{grow, resize} into element-oriented macros 2019-06-12 18:30:25 -04:00
u_endian.h util: unbreak endian detection on OpenBSD 2020-08-31 09:14:57 +00:00
u_idalloc.c util: add thread-safe version of idalloc 2021-05-17 10:37:24 +00:00
u_idalloc.h util: add thread-safe version of idalloc 2021-05-17 10:37:24 +00:00
u_math.c tgsi_exec: Garbage-collect the FAST_MATH path. 2021-06-04 17:26:28 +00:00
u_math.h u_math: Reduce fast-log2 table size from 65k entries back to 256. 2021-06-04 17:26:28 +00:00
u_memory.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
u_memset.h util: add optimised memset64 2021-02-22 00:30:46 +00:00
u_mm.c util: don't include p_defines.h and u_pointer.h from gallium 2020-03-27 21:00:10 +00:00
u_mm.h mesa/main/util: moving gallium u_mm to util, remove main/mm 2019-12-02 13:59:28 +01:00
u_perfetto.cc util/perfetto: Add one-time init 2021-05-10 15:34:07 +00:00
u_perfetto.h util/perfetto: Add one-time init 2021-05-10 15:34:07 +00:00
u_printf.cpp util: add printf specifier shared helper code. 2020-12-29 09:07:23 +10:00
u_printf.h util: add printf specifier shared helper code. 2020-12-29 09:07:23 +10:00
u_process.c util: implement GET_PROGRAM_NAME for Haiku 2021-01-09 20:51:03 -06:00
u_process.h util/u_process: add util_get_process_exec_path 2020-03-24 08:30:34 +01:00
u_queue.c util/queue: don't require a fence when adding a job 2021-05-14 06:49:31 +00:00
u_queue.h util: Use explicit relaxed reads for u_queue 2021-01-28 18:07:09 +00:00
u_string.h util: fix gcc vsnprintf overflow 2021-02-19 11:05:38 +00:00
u_thread.h android: Fix ELF TLS support. 2021-06-02 03:10:49 +00:00
u_vector.c
u_vector.h util: Promote __builtin_types_compatible_p compat 2020-12-10 16:48:36 +00:00
vma.c util/vma: Add a debug print helper 2020-05-13 23:36:44 +00:00
vma.h util/vma: Add a debug print helper 2020-05-13 23:36:44 +00:00
xmlconfig.c xmlconfig: Fix MSVC warning C4334 (32bit shift cast to 64bit) 2021-04-20 00:28:35 +00:00
xmlconfig.h xmlconfig: Disable WITH_XMLCONFIG on Windows 2020-12-14 17:28:04 +00:00
xxd.py util/xxd.py: Add an option for binary files 2020-10-07 21:52:04 +00:00
xxhash.h xxhash: update fallthrough comments 2020-12-01 10:04:41 +01:00