intel/debug: Add a debug flag to force software fp64
authorJason Ekstrand <jason.ekstrand@intel.com>
Sun, 3 Mar 2019 16:10:46 +0000 (10:10 -0600)
committerJason Ekstrand <jason@jlekstrand.net>
Wed, 6 Mar 2019 17:24:57 +0000 (17:24 +0000)
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/common/gen_debug.c
src/intel/common/gen_debug.h
src/intel/compiler/brw_compiler.c

index a978f2f5818f917b14688330a1a770fedd386ac8..49af11633147911020cd910b12d6ad235bb1698f 100644 (file)
@@ -85,6 +85,7 @@ static const struct debug_control debug_control[] = {
    { "nohiz",       DEBUG_NO_HIZ },
    { "color",       DEBUG_COLOR },
    { "reemit",      DEBUG_REEMIT },
+   { "soft64",      DEBUG_SOFT64 },
    { NULL,    0 }
 };
 
index 72d7ca20a393e738da25813639aef21a817e5f4a..e4dabc67f8d4da764f6e4e566f58f12e2e465530 100644 (file)
@@ -83,6 +83,7 @@ extern uint64_t INTEL_DEBUG;
 #define DEBUG_NO_HIZ              (1ull << 39)
 #define DEBUG_COLOR               (1ull << 40)
 #define DEBUG_REEMIT              (1ull << 41)
+#define DEBUG_SOFT64              (1ull << 42)
 
 /* These flags are not compatible with the disk shader cache */
 #define DEBUG_DISK_CACHE_DISABLE_MASK DEBUG_SHADER_TIME
@@ -90,7 +91,7 @@ extern uint64_t INTEL_DEBUG;
 /* These flags may affect program generation */
 #define DEBUG_DISK_CACHE_MASK \
    (DEBUG_NO16 | DEBUG_NO_DUAL_OBJECT_GS | DEBUG_NO8 |  DEBUG_SPILL_FS | \
-   DEBUG_SPILL_VEC4 | DEBUG_NO_COMPACTION | DEBUG_DO32)
+   DEBUG_SPILL_VEC4 | DEBUG_NO_COMPACTION | DEBUG_DO32 | DEBUG_SOFT64)
 
 #ifdef HAVE_ANDROID_PLATFORM
 #define LOG_TAG "INTEL-MESA"
index 28793b1f0e6b9d5f127d6347a73f49a8b3b2d750..4101f99d9925399a43f9064f709c5a3ddcee43bb 100644 (file)
@@ -159,7 +159,7 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
       nir_lower_dround_even |
       nir_lower_dmod;
 
-   if (!devinfo->has_64bit_types) {
+   if (!devinfo->has_64bit_types || (INTEL_DEBUG & DEBUG_SOFT64)) {
       int64_options |= nir_lower_mov64 |
                        nir_lower_icmp64 |
                        nir_lower_iadd64 |