[Mesa-dev] [PATCH 2/3] gallium/radeon: only pass shader-specific debug flags to the disk shader cache

Marek Olšák maraeo at gmail.com
Thu Aug 10 19:57:53 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

---
 src/gallium/drivers/radeon/r600_pipe_common.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 2acef6a..95458d2e 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -870,24 +870,31 @@ static void r600_disk_cache_create(struct r600_common_screen *rscreen)
 		else {
 			uint32_t llvm_timestamp;
 			if (disk_cache_get_function_timestamp(LLVMInitializeAMDGPUTargetInfo,
 							      &llvm_timestamp)) {
 				res = asprintf(&timestamp_str, "%u_%u",
 					       mesa_timestamp, llvm_timestamp);
 			}
 		}
 #endif
 		if (res != -1) {
+			/* These flags affect shader compilation. */
+			uint64_t shader_debug_flags =
+				rscreen->debug_flags &
+				(DBG_FS_CORRECT_DERIVS_AFTER_KILL |
+				 DBG_SI_SCHED |
+				 DBG_UNSAFE_MATH);
+
 			rscreen->disk_shader_cache =
 				disk_cache_create(r600_get_family_name(rscreen),
 						  timestamp_str,
-						  rscreen->debug_flags);
+						  shader_debug_flags);
 			free(timestamp_str);
 		}
 	}
 }
 
 static struct disk_cache *r600_get_disk_shader_cache(struct pipe_screen *pscreen)
 {
 	struct r600_common_screen *rscreen = (struct r600_common_screen*)pscreen;
 	return rscreen->disk_shader_cache;
 }
-- 
2.7.4



More information about the mesa-dev mailing list