Mesa (master): freedreno/ir3: Add missing shader prog cache invalidation

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Feb 16 23:55:54 UTC 2021


Module: Mesa
Branch: master
Commit: 25a37c030b67fcac1046244031869d8921c7de16
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25a37c030b67fcac1046244031869d8921c7de16

Author: Rob Clark <robdclark at chromium.org>
Date:   Thu Feb 11 14:37:00 2021 -0800

freedreno/ir3: Add missing shader prog cache invalidation

I'm not aware of actually hitting this case, but we need to consider
more than just vs/fs when shader state is deleted.

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8795>

---

 src/gallium/drivers/freedreno/ir3/ir3_cache.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cache.c b/src/gallium/drivers/freedreno/ir3/ir3_cache.c
index e5ff5a29656..3d9ebf7a793 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_cache.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_cache.c
@@ -169,7 +169,9 @@ void ir3_cache_invalidate(struct ir3_cache *cache, void *stobj)
 {
 	hash_table_foreach(cache->ht, entry) {
 		const struct ir3_cache_key *key = entry->key;
-		if ((key->fs == stobj) || (key->vs == stobj)) {
+		if ((key->fs == stobj) || (key->vs == stobj) ||
+				(key->ds == stobj) || (key->hs == stobj) ||
+				(key->gs == stobj)) {
 			cache->funcs->destroy_state(cache->data, entry->data);
 			_mesa_hash_table_remove(cache->ht, entry);
 			return;



More information about the mesa-commit mailing list