summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2015-07-16 14:30:28 -0700
committerEric Anholt <eric@anholt.net>2015-07-17 12:25:55 -0700
commitbe7adc2ecad0d04037cb0c99754703dde86ee73a (patch)
treec2fb74f64e6bbb9f3f55384aa85c8aace2e3eec2
parent90dfabc3b5ce5b485a1bbcd7e815a72588f7153d (diff)
downloadexternal_mesa3d-be7adc2ecad0d04037cb0c99754703dde86ee73a.zip
external_mesa3d-be7adc2ecad0d04037cb0c99754703dde86ee73a.tar.gz
external_mesa3d-be7adc2ecad0d04037cb0c99754703dde86ee73a.tar.bz2
vc4: Also consider uniform 0 in uniform lowering.
The hash table considers key 0 to be the empty key.
-rw-r--r--src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c b/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
index 910c89d..f087c3b 100644
--- a/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
+++ b/src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c
@@ -52,7 +52,7 @@ static void
add_uniform(struct hash_table *ht, struct qreg reg)
{
struct hash_entry *entry;
- void *key = (void *)(uintptr_t)reg.index;
+ void *key = (void *)(uintptr_t)(reg.index + 1);
entry = _mesa_hash_table_search(ht, key);
if (entry) {
@@ -66,7 +66,7 @@ static void
remove_uniform(struct hash_table *ht, struct qreg reg)
{
struct hash_entry *entry;
- void *key = (void *)(uintptr_t)reg.index;
+ void *key = (void *)(uintptr_t)(reg.index + 1);
entry = _mesa_hash_table_search(ht, key);
assert(entry);
@@ -122,7 +122,7 @@ qir_lower_uniforms(struct vc4_compile *c)
struct hash_entry *entry;
hash_table_foreach(ht, entry) {
uint32_t count = (uintptr_t)entry->data;
- uint32_t index = (uintptr_t)entry->key;
+ uint32_t index = (uintptr_t)entry->key - 1;
if (count > max_count) {
max_count = count;
max_index = index;