From 2b3064c07316057755a3fbb732d0e315f25aff8a Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Fri, 20 Jul 2018 23:52:59 -0700 Subject: [PATCH] i965, anv: Use INTEL_DEBUG for disk_cache driver flags Since various options within INTEL_DEBUG could impact code generation, we need to set the disk cache driver_flags parameter based on the INTEL_DEBUG flags in use. An example that will affect the program generated by i965 is the INTEL_DEBUG=nocompact option. The DEBUG_DISK_CACHE_MASK value is added to mask the settings of INTEL_DEBUG that can affect program generation. v2: * Use driver_flags (Tim) * Also update Anvil (Jason) Signed-off-by: Jordan Justen Reviewed-by: Lionel Landwerlin --- src/intel/common/gen_debug.h | 5 +++++ src/intel/vulkan/anv_device.c | 3 ++- src/mesa/drivers/dri/i965/brw_disk_cache.c | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/intel/common/gen_debug.h b/src/intel/common/gen_debug.h index f6c44eeb912..aa9f3cf80d7 100644 --- a/src/intel/common/gen_debug.h +++ b/src/intel/common/gen_debug.h @@ -84,6 +84,11 @@ extern uint64_t INTEL_DEBUG; #define DEBUG_COLOR (1ull << 40) #define DEBUG_REEMIT (1ull << 41) +/* These flags may affect program generation */ +#define DEBUG_DISK_CACHE_MASK \ + (DEBUG_SHADER_TIME | DEBUG_NO16 | DEBUG_NO_DUAL_OBJECT_GS | DEBUG_NO8 | \ + DEBUG_SPILL_FS | DEBUG_SPILL_VEC4 | DEBUG_NO_COMPACTION | DEBUG_DO32) + #ifdef HAVE_ANDROID_PLATFORM #define LOG_TAG "INTEL-MESA" #if ANDROID_API_LEVEL >= 26 diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 247ba641336..97a71563b8a 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -286,7 +286,8 @@ anv_physical_device_init_disk_cache(struct anv_physical_device *device) char timestamp[41]; _mesa_sha1_format(timestamp, device->driver_build_sha1); - device->disk_cache = disk_cache_create(renderer, timestamp, 0); + const uint64_t driver_flags = INTEL_DEBUG & DEBUG_DISK_CACHE_MASK; + device->disk_cache = disk_cache_create(renderer, timestamp, driver_flags); #else device->disk_cache = NULL; #endif diff --git a/src/mesa/drivers/dri/i965/brw_disk_cache.c b/src/mesa/drivers/dri/i965/brw_disk_cache.c index a678c355b9d..8f1b064fd61 100644 --- a/src/mesa/drivers/dri/i965/brw_disk_cache.c +++ b/src/mesa/drivers/dri/i965/brw_disk_cache.c @@ -393,6 +393,7 @@ brw_disk_cache_init(struct intel_screen *screen) char timestamp[41]; _mesa_sha1_format(timestamp, id_sha1); - screen->disk_cache = disk_cache_create(renderer, timestamp, 0); + const uint64_t driver_flags = INTEL_DEBUG & DEBUG_DISK_CACHE_MASK; + screen->disk_cache = disk_cache_create(renderer, timestamp, driver_flags); #endif } -- 2.30.2