Commit 54b3493f authored by Jason Ekstrand's avatar Jason Ekstrand

anv/entrypoints_gen: Allow the string map to grow

Reviewed-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez's avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
parent d91da06d
......@@ -24,6 +24,7 @@
import argparse
import functools
import math
import os
import xml.etree.cElementTree as et
......@@ -334,9 +335,7 @@ anv_lookup_entrypoint(const struct gen_device_info *devinfo, const char *name)
return anv_resolve_entrypoint(devinfo, idx);
}""", output_encoding='utf-8')
HASH_SIZE = 256
U32_MASK = 2**32 - 1
HASH_MASK = HASH_SIZE - 1
PRIME_FACTOR = 5024183
PRIME_STEP = 19
......@@ -354,6 +353,9 @@ class StringIntMapEntry(object):
self.offset = None
def round_to_pow2(x):
return 2**int(math.ceil(math.log(x, 2)))
class StringIntMap(object):
def __init__(self):
self.baked = False
......@@ -374,8 +376,8 @@ class StringIntMap(object):
offset += len(entry.string) + 1
# Save off some values that we'll need in C
self.hash_size = HASH_SIZE
self.hash_mask = HASH_SIZE - 1
self.hash_size = round_to_pow2(len(self.strings) * 1.25)
self.hash_mask = self.hash_size - 1
self.prime_factor = PRIME_FACTOR
self.prime_step = PRIME_STEP
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment