gallium/radeon: only pass shader-specific debug flags to the disk shader cache
authorMarek Olšák <marek.olsak@amd.com>
Thu, 10 Aug 2017 10:22:33 +0000 (12:22 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 11 Aug 2017 18:38:29 +0000 (20:38 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/gallium/drivers/radeon/r600_pipe_common.c

index 2acef6a93c662819eabc3adbf9b574879d0bdbc5..95458d2e15b3f4430f96b7b4b0ba489444b60e22 100644 (file)
@@ -877,10 +877,17 @@ static void r600_disk_cache_create(struct r600_common_screen *rscreen)
                }
 #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);
                }
        }