From 46d5b07c5c39d1b8cf10976f6574a63062dea9c4 Mon Sep 17 00:00:00 2001 From: Dmitriy Nester Date: Thu, 27 Feb 2020 15:42:21 +0200 Subject: [PATCH] util: delete fnv1a hash function xxhash is faster than fnv1a in almost all circumstances, so we're switching to it globally. Signed-off-by: Dmytro Nester Reviewed-by: Eric Anholt Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2405 Part-of: --- src/util/Makefile.sources | 1 - src/util/fnv1a.h | 61 --------------------------------------- src/util/hash_table.h | 3 +- src/util/meson.build | 1 - 4 files changed, 1 insertion(+), 65 deletions(-) delete mode 100644 src/util/fnv1a.h diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources index 95e2f788c1e..dc1b205bfc9 100644 --- a/src/util/Makefile.sources +++ b/src/util/Makefile.sources @@ -22,7 +22,6 @@ MESA_UTIL_FILES := \ double.h \ fast_idiv_by_const.c \ fast_idiv_by_const.h \ - fnv1a.h \ format/u_format.c \ format/u_format.h \ format/u_format_bptc.c \ diff --git a/src/util/fnv1a.h b/src/util/fnv1a.h deleted file mode 100644 index 0f92d0b0e40..00000000000 --- a/src/util/fnv1a.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright © 2009,2012 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Eric Anholt - * - */ - -#ifndef _FNV1A_H -#define _FNV1A_H - -enum { - _mesa_fnv32_1a_offset_bias = 2166136261u, -}; - -/** - * Quick FNV-1a hash implementation based on: - * http://www.isthe.com/chongo/tech/comp/fnv/ - * - * FNV-1a is not be the best hash out there -- Jenkins's lookup3 is supposed - * to be quite good, and it probably beats FNV. But FNV has the advantage - * that it involves almost no code. For an improvement on both, see Paul - * Hsieh's http://www.azillionmonkeys.com/qed/hash.html - */ -static inline uint32_t -_mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size) -{ - const uint8_t *bytes = (const uint8_t *)data; - - while (size-- != 0) { - hash ^= *bytes; - hash = hash * 0x01000193; - bytes++; - } - - return hash; -} - -#define _mesa_fnv32_1a_accumulate(hash, expr) \ - _mesa_fnv32_1a_accumulate_block(hash, &(expr), sizeof(expr)) - -#endif diff --git a/src/util/hash_table.h b/src/util/hash_table.h index b1eb9d4e217..eabc88a5906 100644 --- a/src/util/hash_table.h +++ b/src/util/hash_table.h @@ -1,4 +1,4 @@ -/* +/* * Copyright © 2009,2012 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a @@ -32,7 +32,6 @@ #include #include #include "c99_compat.h" -#include "fnv1a.h" #include "macros.h" #ifdef __cplusplus diff --git a/src/util/meson.build b/src/util/meson.build index 7ea125e5ac8..1fda53bafd5 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -46,7 +46,6 @@ files_mesa_util = files( 'double.h', 'fast_idiv_by_const.c', 'fast_idiv_by_const.h', - 'fnv1a.h', 'format_r11g11b10f.h', 'format_rgb9e5.h', 'format_srgb.h', -- 2.30.2