util/hash_table: added hash functions for integer types
A few hash_table users roll their own integer hash functions which call _mesa_hash_data to perform the hashing which ultimately calls into XXH32 with a dynamic key length. When using small keys with a constant size the hash rate can be greatly improved by inlining XXH32 and providing it a constant key length, see: https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html Additionally, this patch removes calls to _mesa_key_hash_string and makes them instead call _mesa_has_string directly, matching the new integer hash functions. Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>
This commit is contained in:
@@ -1486,7 +1486,7 @@ init_print_state(print_state *state, nir_shader *shader, FILE *fp)
|
||||
state->fp = fp;
|
||||
state->shader = shader;
|
||||
state->ht = _mesa_pointer_hash_table_create(NULL);
|
||||
state->syms = _mesa_set_create(NULL, _mesa_key_hash_string,
|
||||
state->syms = _mesa_set_create(NULL, _mesa_hash_string,
|
||||
_mesa_key_string_equal);
|
||||
state->index = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user