[Mesa-dev] [PATCH 0/6] Prehash all the things

Dieter Nützel Dieter at nuetzel-hh.de
Tue May 23 03:40:00 UTC 2017


For the series:

Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>

on radeonsi/RX580

Unigine_Heaven-4.0, Unigine_Valley-1.0, Unigine_Superposition-1.0,
LS2015 (Wine-staging), Mesa-demos (objviewer)

Dieter

Am 22.05.2017 20:55, schrieb Thomas Helland:
> While this doesn't prehash all the things, it does switch quite a lot
> of places from doing a search and then a subsequent insert to first
> hash the key, and then use this hash when searching / inserting.
> While our new pointer hashing function remedied much of our overhead
> hashing pointers, there is still more to gain here. This cuts executed
> instructions / task-clock by about 0.5% on a shader-db run on my i965
> running machine. While that's not a lot, it is still a nice little
> improvement on the way to less overhead. The changes should also be
> fairly trivial, so it's not much of a burden.
> 
> Thomas Helland (6):
>   glsl: Prehash in refcount hash table to reduce hashing
>   nir: Prehash in instr_set to avoid hashing twice
>   glsl: Prehash in constant propagation
>   glsl: Prehash in constant variable pass to avoid hashing twice
>   glsl: Prehash to avoid computing the hash twice
>   util: Avoid computing hash twice in string_to_uint_map
> 
>  src/compiler/glsl/ir_variable_refcount.cpp          | 7 +++++--
>  src/compiler/glsl/opt_constant_propagation.cpp      | 8 +++++---
>  src/compiler/glsl/opt_constant_variable.cpp         | 6 ++++--
>  src/compiler/glsl/opt_copy_propagation_elements.cpp | 7 +++++--
>  src/compiler/nir/nir_instr_set.c                    | 7 +++++--
>  src/util/string_to_uint_map.h                       | 9 ++++++---
>  6 files changed, 30 insertions(+), 14 deletions(-)


More information about the mesa-dev mailing list