prog_hash_table: Convert to using util/hash_table.h.
authorEric Anholt <eric@anholt.net>
Tue, 9 Aug 2016 07:11:13 +0000 (00:11 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 10 Aug 2016 19:27:22 +0000 (12:27 -0700)
commitee02a5e330151630be871decde563ddbf192465c
treea570cbdf2307f2e35c967a595f8ebf2f050a5d90
parent91945f9e91e46aef79700015da032e16c355c96c
prog_hash_table: Convert to using util/hash_table.h.

Improves glretrace -b servo.trace (a trace of Mozilla's servo rendering
engine booting, rendering a page, and exiting) from 1.8s to 1.1s.  It uses
a large uniform array of structs, making a huge number of separate program
resources, and the fixed-size hash table was killing it.  Given how many
times we've improved performance by swapping the hash table to
util/hash_table.h, just do it once and for all.

This just rebases the old hash table API on top of util/, for minimal
diff.  Cleaning things up is left for later, particularly because I want
to fix up the new hash table API a little bit.

v2: Add UNUSED to the now-unused parameter.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/mesa/program/hash_table.h
src/mesa/program/prog_hash_table.c