intel/common: move gen_debug to intel/dev
authorMark Janes <mark.a.janes@intel.com>
Fri, 5 Apr 2019 22:39:51 +0000 (15:39 -0700)
committerMark Janes <mark.a.janes@intel.com>
Wed, 10 Apr 2019 20:15:33 +0000 (13:15 -0700)
libintel_common depends on libintel_compiler, but it contains debug
functionality that is needed by libintel_compiler.  Break the circular
dependency by moving gen_debug files to libintel_dev.

Suggested-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
31 files changed:
src/gallium/drivers/iris/iris_bufmgr.c
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_resource.c
src/intel/Makefile.sources
src/intel/common/gen_debug.c [deleted file]
src/intel/common/gen_debug.h [deleted file]
src/intel/common/meson.build
src/intel/compiler/brw_compile_clip.c
src/intel/compiler/brw_compile_sf.c
src/intel/compiler/brw_compiler.c
src/intel/compiler/brw_disasm_info.c
src/intel/compiler/brw_eu.c
src/intel/compiler/brw_eu_compact.c
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_nir.c
src/intel/compiler/brw_shader.cpp
src/intel/compiler/brw_vec4.cpp
src/intel/compiler/brw_vec4_generator.cpp
src/intel/compiler/brw_vec4_gs_visitor.cpp
src/intel/compiler/brw_vec4_tcs.cpp
src/intel/compiler/brw_vec4_tes.cpp
src/intel/compiler/brw_vec4_vs_visitor.cpp
src/intel/compiler/brw_vue_map.c
src/intel/dev/gen_debug.c [new file with mode: 0644]
src/intel/dev/gen_debug.h [new file with mode: 0644]
src/intel/dev/meson.build
src/intel/vulkan/anv_private.h
src/mesa/drivers/dri/i965/brw_blorp.c
src/mesa/drivers/dri/i965/brw_bufmgr.c
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_disk_cache.c

index be136389431ddde1ddf39a710f2b9fa9a82ef2b6..147fdd69964f9ae226c28228e7d85a59d5057b1c 100644 (file)
@@ -55,7 +55,7 @@
 #define ETIME ETIMEDOUT
 #endif
 #include "common/gen_clflush.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "common/gen_gem.h"
 #include "dev/gen_device_info.h"
 #include "main/macros.h"
index 51b40f30cb840a03d516486f428aaeeeb857c356..4ec73973dc551463424f5859b04b5de14a60d861 100644 (file)
@@ -27,7 +27,7 @@
 #include "pipe/p_state.h"
 #include "util/u_debug.h"
 #include "intel/blorp/blorp.h"
-#include "intel/common/gen_debug.h"
+#include "intel/dev/gen_debug.h"
 #include "intel/compiler/brw_compiler.h"
 #include "iris_batch.h"
 #include "iris_binder.h"
index fc093110fb27902e3323536d0592d0c9ea36bc32..82e1add94af649c3c18dd6067fb6476a72298f71 100644 (file)
@@ -46,7 +46,7 @@
 #include "iris_context.h"
 #include "iris_resource.h"
 #include "iris_screen.h"
-#include "intel/common/gen_debug.h"
+#include "intel/dev/gen_debug.h"
 #include "isl/isl.h"
 #include "drm-uapi/drm_fourcc.h"
 #include "drm-uapi/i915_drm.h"
index a5c8828a6b64758d6346824430fc73161ec0fb6d..c283058db11970245f1722e1be217d4a46876a57 100644 (file)
@@ -10,8 +10,6 @@ BLORP_FILES = \
 COMMON_FILES = \
        common/gen_clflush.h \
        common/gen_batch_decoder.c \
-       common/gen_debug.c \
-       common/gen_debug.h \
        common/gen_decoder.c \
        common/gen_decoder.h \
        common/gen_disasm.c \
@@ -127,6 +125,8 @@ COMPILER_GENERATED_FILES = \
        compiler/brw_nir_trig_workarounds.c
 
 DEV_FILES = \
+       dev/gen_debug.c \
+       dev/gen_debug.h \
        dev/gen_device_info.c \
        dev/gen_device_info.h
 
diff --git a/src/intel/common/gen_debug.c b/src/intel/common/gen_debug.c
deleted file mode 100644 (file)
index 49af116..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright 2003 VMware, Inc.
- * Copyright © 2006 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-/**
- * \file gen_debug.c
- *
- * Support for the INTEL_DEBUG environment variable, along with other
- * miscellaneous debugging code.
- */
-
-#include <stdlib.h>
-
-#include "common/gen_debug.h"
-#include "util/macros.h"
-#include "util/debug.h"
-#include "c11/threads.h"
-
-uint64_t INTEL_DEBUG = 0;
-
-static const struct debug_control debug_control[] = {
-   { "tex",         DEBUG_TEXTURE},
-   { "state",       DEBUG_STATE},
-   { "blit",        DEBUG_BLIT},
-   { "mip",         DEBUG_MIPTREE},
-   { "fall",        DEBUG_PERF},
-   { "perf",        DEBUG_PERF},
-   { "perfmon",     DEBUG_PERFMON},
-   { "bat",         DEBUG_BATCH},
-   { "pix",         DEBUG_PIXEL},
-   { "buf",         DEBUG_BUFMGR},
-   { "fbo",         DEBUG_FBO},
-   { "fs",          DEBUG_WM },
-   { "gs",          DEBUG_GS},
-   { "sync",        DEBUG_SYNC},
-   { "prim",        DEBUG_PRIMS },
-   { "vert",        DEBUG_VERTS },
-   { "dri",         DEBUG_DRI },
-   { "sf",          DEBUG_SF },
-   { "submit",      DEBUG_SUBMIT },
-   { "wm",          DEBUG_WM },
-   { "urb",         DEBUG_URB },
-   { "vs",          DEBUG_VS },
-   { "clip",        DEBUG_CLIP },
-   { "shader_time", DEBUG_SHADER_TIME },
-   { "no16",        DEBUG_NO16 },
-   { "blorp",       DEBUG_BLORP },
-   { "nodualobj",   DEBUG_NO_DUAL_OBJECT_GS },
-   { "optimizer",   DEBUG_OPTIMIZER },
-   { "ann",         DEBUG_ANNOTATION },
-   { "no8",         DEBUG_NO8 },
-   { "no-oaconfig", DEBUG_NO_OACONFIG },
-   { "spill_fs",    DEBUG_SPILL_FS },
-   { "spill_vec4",  DEBUG_SPILL_VEC4 },
-   { "cs",          DEBUG_CS },
-   { "hex",         DEBUG_HEX },
-   { "nocompact",   DEBUG_NO_COMPACTION },
-   { "hs",          DEBUG_TCS },
-   { "tcs",         DEBUG_TCS },
-   { "ds",          DEBUG_TES },
-   { "tes",         DEBUG_TES },
-   { "l3",          DEBUG_L3 },
-   { "do32",        DEBUG_DO32 },
-   { "norbc",       DEBUG_NO_RBC },
-   { "nohiz",       DEBUG_NO_HIZ },
-   { "color",       DEBUG_COLOR },
-   { "reemit",      DEBUG_REEMIT },
-   { "soft64",      DEBUG_SOFT64 },
-   { NULL,    0 }
-};
-
-uint64_t
-intel_debug_flag_for_shader_stage(gl_shader_stage stage)
-{
-   uint64_t flags[] = {
-      [MESA_SHADER_VERTEX] = DEBUG_VS,
-      [MESA_SHADER_TESS_CTRL] = DEBUG_TCS,
-      [MESA_SHADER_TESS_EVAL] = DEBUG_TES,
-      [MESA_SHADER_GEOMETRY] = DEBUG_GS,
-      [MESA_SHADER_FRAGMENT] = DEBUG_WM,
-      [MESA_SHADER_COMPUTE] = DEBUG_CS,
-   };
-   STATIC_ASSERT(MESA_SHADER_STAGES == 6);
-   return flags[stage];
-}
-
-static void
-brw_process_intel_debug_variable_once(void)
-{
-   INTEL_DEBUG = parse_debug_string(getenv("INTEL_DEBUG"), debug_control);
-}
-
-void
-brw_process_intel_debug_variable(void)
-{
-   static once_flag process_intel_debug_variable_flag = ONCE_FLAG_INIT;
-
-   call_once(&process_intel_debug_variable_flag,
-             brw_process_intel_debug_variable_once);
-}
diff --git a/src/intel/common/gen_debug.h b/src/intel/common/gen_debug.h
deleted file mode 100644 (file)
index e4dabc6..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2003 VMware, Inc.
- * Copyright © 2007 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef GEN_DEBUG_H
-#define GEN_DEBUG_H
-
-#include <stdint.h>
-#include "compiler/shader_enums.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/**
- * \file gen_debug.h
- *
- * Basic INTEL_DEBUG environment variable handling.  This file defines the
- * list of debugging flags, as well as some macros for handling them.
- */
-
-extern uint64_t INTEL_DEBUG;
-
-#define DEBUG_TEXTURE             (1ull <<  0)
-#define DEBUG_STATE               (1ull <<  1)
-#define DEBUG_BLIT                (1ull <<  2)
-#define DEBUG_MIPTREE             (1ull <<  3)
-#define DEBUG_PERF                (1ull <<  4)
-#define DEBUG_PERFMON             (1ull <<  5)
-#define DEBUG_BATCH               (1ull <<  6)
-#define DEBUG_PIXEL               (1ull <<  7)
-#define DEBUG_BUFMGR              (1ull <<  8)
-#define DEBUG_FBO                 (1ull <<  9)
-#define DEBUG_GS                  (1ull << 10)
-#define DEBUG_SYNC                (1ull << 11)
-#define DEBUG_PRIMS               (1ull << 12)
-#define DEBUG_VERTS               (1ull << 13)
-#define DEBUG_DRI                 (1ull << 14)
-#define DEBUG_SF                  (1ull << 15)
-#define DEBUG_SUBMIT              (1ull << 16)
-#define DEBUG_WM                  (1ull << 17)
-#define DEBUG_URB                 (1ull << 18)
-#define DEBUG_VS                  (1ull << 19)
-#define DEBUG_CLIP                (1ull << 20)
-#define DEBUG_SHADER_TIME         (1ull << 21)
-#define DEBUG_BLORP               (1ull << 22)
-#define DEBUG_NO16                (1ull << 23)
-#define DEBUG_NO_DUAL_OBJECT_GS   (1ull << 24)
-#define DEBUG_OPTIMIZER           (1ull << 25)
-#define DEBUG_ANNOTATION          (1ull << 26)
-#define DEBUG_NO8                 (1ull << 27)
-#define DEBUG_NO_OACONFIG         (1ull << 28)
-#define DEBUG_SPILL_FS            (1ull << 29)
-#define DEBUG_SPILL_VEC4          (1ull << 30)
-#define DEBUG_CS                  (1ull << 31)
-#define DEBUG_HEX                 (1ull << 32)
-#define DEBUG_NO_COMPACTION       (1ull << 33)
-#define DEBUG_TCS                 (1ull << 34)
-#define DEBUG_TES                 (1ull << 35)
-#define DEBUG_L3                  (1ull << 36)
-#define DEBUG_DO32                (1ull << 37)
-#define DEBUG_NO_RBC              (1ull << 38)
-#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
-
-/* 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_SOFT64)
-
-#ifdef HAVE_ANDROID_PLATFORM
-#define LOG_TAG "INTEL-MESA"
-#if ANDROID_API_LEVEL >= 26
-#include <log/log.h>
-#else
-#include <cutils/log.h>
-#endif /* use log/log.h start from android 8 major version */
-#ifndef ALOGW
-#define ALOGW LOGW
-#endif
-#define dbg_printf(...)        ALOGW(__VA_ARGS__)
-#else
-#define dbg_printf(...)        fprintf(stderr, __VA_ARGS__)
-#endif /* HAVE_ANDROID_PLATFORM */
-
-#define DBG(...) do {                                          \
-       if (unlikely(INTEL_DEBUG & FILE_DEBUG_FLAG))            \
-               dbg_printf(__VA_ARGS__);                        \
-} while(0)
-
-extern uint64_t intel_debug_flag_for_shader_stage(gl_shader_stage stage);
-
-extern void brw_process_intel_debug_variable(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GEN_DEBUG_H */
index ec45962502e59e26d9b4ddfba8af919af49363ab..19ee2f64875ef538df38d2526220cbea3c3f649d 100644 (file)
@@ -23,8 +23,6 @@
 files_libintel_common = files(
   'gen_clflush.h',
   'gen_batch_decoder.c',
-  'gen_debug.c',
-  'gen_debug.h',
   'gen_decoder.c',
   'gen_decoder.h',
   'gen_disasm.c',
index c04d1a82777d0b780428d4171d56cee9341905cc..682611223173fa0e15608aa4cb4df0a132fbfe43 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "brw_clip.h"
 
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 const unsigned *
 brw_compile_clip(const struct brw_compiler *compiler,
index 91e8a6da6cf026fdd79d17d871c543243082f969..51eb9b0dbf924201f654fe8705e6817b569bac14 100644 (file)
@@ -24,7 +24,7 @@
 #include "brw_compiler.h"
 #include "brw_eu.h"
 
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 struct brw_sf_compile {
    struct brw_codegen func;
index d3f8c7ef1e049386c86129372620fa9c62bae309..5d88a66f1fac89549c4260b17be1c8c5874528d3 100644 (file)
@@ -24,7 +24,7 @@
 #include "brw_compiler.h"
 #include "brw_shader.h"
 #include "brw_eu.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "compiler/nir/nir.h"
 #include "main/errors.h"
 #include "util/debug.h"
index 7a9a55d83ef75d7236703653ea0cdabc7c667e72..bec83e8a65d3bde5b85952bdab63894ccf188a5a 100644 (file)
@@ -24,7 +24,7 @@
 #include "brw_cfg.h"
 #include "brw_eu.h"
 #include "brw_disasm_info.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "compiler/nir/nir.h"
 
 __attribute__((weak)) void nir_print_instr(UNUSED const nir_instr *instr,
index 3fb4e4050724cbd8f59b561b89f9bfe98fe8d388..87a6145ac2943bfb420e485759d5ee284c57d9cb 100644 (file)
@@ -33,7 +33,7 @@
 #include "brw_eu_defines.h"
 #include "brw_eu.h"
 #include "brw_shader.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 #include "util/ralloc.h"
 
index 25ad2f2c8cd4dcc71855a0d2ec91f36e4921f3ca..51dce9efbddc4eab0a763d0fd3c495cfd1fded80 100644 (file)
@@ -75,7 +75,7 @@
 #include "brw_eu.h"
 #include "brw_shader.h"
 #include "brw_disasm_info.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 static const uint32_t g45_control_index_table[32] = {
    0b00000000000000000,
index baf5df2c3d1b4f2a7a30554139d255a5e316897b..29a80d36d876a969130d73219c5cfa629aac2478 100644 (file)
@@ -35,7 +35,7 @@
 #include "brw_vec4_gs_visitor.h"
 #include "brw_cfg.h"
 #include "brw_dead_control_flow.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "compiler/glsl_types.h"
 #include "compiler/nir/nir_builder.h"
 #include "program/prog_parameter.h"
index 2e63efdc4272cf73913ebd131d814e66a76e2509..899d871a4e51ad6f15ff6afefdfbc068d2dd9b97 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "brw_nir.h"
 #include "brw_shader.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "compiler/glsl_types.h"
 #include "compiler/nir/nir_builder.h"
 #include "util/u_math.h"
index f9e88d4353949b6fe6c1a581e16ef7fd106abe81..1b0eeed841559c568ec34be73f4f4cf3361912ee 100644 (file)
@@ -26,7 +26,7 @@
 #include "brw_fs.h"
 #include "brw_nir.h"
 #include "brw_vec4_tes.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "main/uniforms.h"
 #include "util/macros.h"
 
index 2e9de29b4f2aa8be58690e9000788ffcb90edc60..bb8b554c852221d94be37a1d8d930071aebe52a3 100644 (file)
@@ -29,7 +29,7 @@
 #include "brw_vec4_live_variables.h"
 #include "brw_vec4_vs.h"
 #include "brw_dead_control_flow.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "program/prog_parameter.h"
 #include "util/u_math.h"
 
index 8e3dc34ddb3309f97b94d0d971ebb30c516a7770..05e6f50ebb60d632ba3fe6b64063586d4ca26d89 100644 (file)
@@ -23,7 +23,7 @@
 #include "brw_vec4.h"
 #include "brw_cfg.h"
 #include "brw_eu.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 using namespace brw;
 
index a6e38b0f379719bd24cae2db4bfcc730d232eebb..09be70d36d546c5ad291819c6edef2a9892c3f67 100644 (file)
@@ -32,7 +32,7 @@
 #include "brw_cfg.h"
 #include "brw_fs.h"
 #include "brw_nir.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 namespace brw {
 
index be0969dda124be86c77a836bc74e69585f6c9c93..f0ef8c0dd96f3df3af1536c4653fad280da28fb3 100644 (file)
@@ -30,7 +30,7 @@
 #include "brw_nir.h"
 #include "brw_vec4_tcs.h"
 #include "brw_fs.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 namespace brw {
 
index cf1bff42aa9af686af1cb362e2df12cf209f027f..2ad5d06b539c06fc1a289e6c64b581c85943e0ca 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "brw_vec4_tes.h"
 #include "brw_cfg.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 namespace brw {
 
index 8f15bc30a7c5a91f4cf89a3b662bb1c56414ba97..6ee3cb4ac2436ee859d13485d5dad5a6271d7222 100644 (file)
@@ -23,7 +23,7 @@
 
 
 #include "brw_vec4_vs.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 namespace brw {
 
index e14cba8f67d1aae6798ad7963d0ac41bf3949998..76ca400423052874a7c99862b6b6f2863bb841e4 100644 (file)
@@ -41,7 +41,7 @@
 
 
 #include "brw_compiler.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 static inline void
 assign_vue_slot(struct brw_vue_map *vue_map, int varying, int slot)
diff --git a/src/intel/dev/gen_debug.c b/src/intel/dev/gen_debug.c
new file mode 100644 (file)
index 0000000..b0d0d1a
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2003 VMware, Inc.
+ * Copyright © 2006 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/**
+ * \file gen_debug.c
+ *
+ * Support for the INTEL_DEBUG environment variable, along with other
+ * miscellaneous debugging code.
+ */
+
+#include <stdlib.h>
+
+#include "dev/gen_debug.h"
+#include "util/macros.h"
+#include "util/debug.h"
+#include "c11/threads.h"
+
+uint64_t INTEL_DEBUG = 0;
+
+static const struct debug_control debug_control[] = {
+   { "tex",         DEBUG_TEXTURE},
+   { "state",       DEBUG_STATE},
+   { "blit",        DEBUG_BLIT},
+   { "mip",         DEBUG_MIPTREE},
+   { "fall",        DEBUG_PERF},
+   { "perf",        DEBUG_PERF},
+   { "perfmon",     DEBUG_PERFMON},
+   { "bat",         DEBUG_BATCH},
+   { "pix",         DEBUG_PIXEL},
+   { "buf",         DEBUG_BUFMGR},
+   { "fbo",         DEBUG_FBO},
+   { "fs",          DEBUG_WM },
+   { "gs",          DEBUG_GS},
+   { "sync",        DEBUG_SYNC},
+   { "prim",        DEBUG_PRIMS },
+   { "vert",        DEBUG_VERTS },
+   { "dri",         DEBUG_DRI },
+   { "sf",          DEBUG_SF },
+   { "submit",      DEBUG_SUBMIT },
+   { "wm",          DEBUG_WM },
+   { "urb",         DEBUG_URB },
+   { "vs",          DEBUG_VS },
+   { "clip",        DEBUG_CLIP },
+   { "shader_time", DEBUG_SHADER_TIME },
+   { "no16",        DEBUG_NO16 },
+   { "blorp",       DEBUG_BLORP },
+   { "nodualobj",   DEBUG_NO_DUAL_OBJECT_GS },
+   { "optimizer",   DEBUG_OPTIMIZER },
+   { "ann",         DEBUG_ANNOTATION },
+   { "no8",         DEBUG_NO8 },
+   { "no-oaconfig", DEBUG_NO_OACONFIG },
+   { "spill_fs",    DEBUG_SPILL_FS },
+   { "spill_vec4",  DEBUG_SPILL_VEC4 },
+   { "cs",          DEBUG_CS },
+   { "hex",         DEBUG_HEX },
+   { "nocompact",   DEBUG_NO_COMPACTION },
+   { "hs",          DEBUG_TCS },
+   { "tcs",         DEBUG_TCS },
+   { "ds",          DEBUG_TES },
+   { "tes",         DEBUG_TES },
+   { "l3",          DEBUG_L3 },
+   { "do32",        DEBUG_DO32 },
+   { "norbc",       DEBUG_NO_RBC },
+   { "nohiz",       DEBUG_NO_HIZ },
+   { "color",       DEBUG_COLOR },
+   { "reemit",      DEBUG_REEMIT },
+   { "soft64",      DEBUG_SOFT64 },
+   { NULL,    0 }
+};
+
+uint64_t
+intel_debug_flag_for_shader_stage(gl_shader_stage stage)
+{
+   uint64_t flags[] = {
+      [MESA_SHADER_VERTEX] = DEBUG_VS,
+      [MESA_SHADER_TESS_CTRL] = DEBUG_TCS,
+      [MESA_SHADER_TESS_EVAL] = DEBUG_TES,
+      [MESA_SHADER_GEOMETRY] = DEBUG_GS,
+      [MESA_SHADER_FRAGMENT] = DEBUG_WM,
+      [MESA_SHADER_COMPUTE] = DEBUG_CS,
+   };
+   STATIC_ASSERT(MESA_SHADER_STAGES == 6);
+   return flags[stage];
+}
+
+static void
+brw_process_intel_debug_variable_once(void)
+{
+   INTEL_DEBUG = parse_debug_string(getenv("INTEL_DEBUG"), debug_control);
+}
+
+void
+brw_process_intel_debug_variable(void)
+{
+   static once_flag process_intel_debug_variable_flag = ONCE_FLAG_INIT;
+
+   call_once(&process_intel_debug_variable_flag,
+             brw_process_intel_debug_variable_once);
+}
diff --git a/src/intel/dev/gen_debug.h b/src/intel/dev/gen_debug.h
new file mode 100644 (file)
index 0000000..e4dabc6
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2003 VMware, Inc.
+ * Copyright © 2007 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef GEN_DEBUG_H
+#define GEN_DEBUG_H
+
+#include <stdint.h>
+#include "compiler/shader_enums.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * \file gen_debug.h
+ *
+ * Basic INTEL_DEBUG environment variable handling.  This file defines the
+ * list of debugging flags, as well as some macros for handling them.
+ */
+
+extern uint64_t INTEL_DEBUG;
+
+#define DEBUG_TEXTURE             (1ull <<  0)
+#define DEBUG_STATE               (1ull <<  1)
+#define DEBUG_BLIT                (1ull <<  2)
+#define DEBUG_MIPTREE             (1ull <<  3)
+#define DEBUG_PERF                (1ull <<  4)
+#define DEBUG_PERFMON             (1ull <<  5)
+#define DEBUG_BATCH               (1ull <<  6)
+#define DEBUG_PIXEL               (1ull <<  7)
+#define DEBUG_BUFMGR              (1ull <<  8)
+#define DEBUG_FBO                 (1ull <<  9)
+#define DEBUG_GS                  (1ull << 10)
+#define DEBUG_SYNC                (1ull << 11)
+#define DEBUG_PRIMS               (1ull << 12)
+#define DEBUG_VERTS               (1ull << 13)
+#define DEBUG_DRI                 (1ull << 14)
+#define DEBUG_SF                  (1ull << 15)
+#define DEBUG_SUBMIT              (1ull << 16)
+#define DEBUG_WM                  (1ull << 17)
+#define DEBUG_URB                 (1ull << 18)
+#define DEBUG_VS                  (1ull << 19)
+#define DEBUG_CLIP                (1ull << 20)
+#define DEBUG_SHADER_TIME         (1ull << 21)
+#define DEBUG_BLORP               (1ull << 22)
+#define DEBUG_NO16                (1ull << 23)
+#define DEBUG_NO_DUAL_OBJECT_GS   (1ull << 24)
+#define DEBUG_OPTIMIZER           (1ull << 25)
+#define DEBUG_ANNOTATION          (1ull << 26)
+#define DEBUG_NO8                 (1ull << 27)
+#define DEBUG_NO_OACONFIG         (1ull << 28)
+#define DEBUG_SPILL_FS            (1ull << 29)
+#define DEBUG_SPILL_VEC4          (1ull << 30)
+#define DEBUG_CS                  (1ull << 31)
+#define DEBUG_HEX                 (1ull << 32)
+#define DEBUG_NO_COMPACTION       (1ull << 33)
+#define DEBUG_TCS                 (1ull << 34)
+#define DEBUG_TES                 (1ull << 35)
+#define DEBUG_L3                  (1ull << 36)
+#define DEBUG_DO32                (1ull << 37)
+#define DEBUG_NO_RBC              (1ull << 38)
+#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
+
+/* 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_SOFT64)
+
+#ifdef HAVE_ANDROID_PLATFORM
+#define LOG_TAG "INTEL-MESA"
+#if ANDROID_API_LEVEL >= 26
+#include <log/log.h>
+#else
+#include <cutils/log.h>
+#endif /* use log/log.h start from android 8 major version */
+#ifndef ALOGW
+#define ALOGW LOGW
+#endif
+#define dbg_printf(...)        ALOGW(__VA_ARGS__)
+#else
+#define dbg_printf(...)        fprintf(stderr, __VA_ARGS__)
+#endif /* HAVE_ANDROID_PLATFORM */
+
+#define DBG(...) do {                                          \
+       if (unlikely(INTEL_DEBUG & FILE_DEBUG_FLAG))            \
+               dbg_printf(__VA_ARGS__);                        \
+} while(0)
+
+extern uint64_t intel_debug_flag_for_shader_stage(gl_shader_stage stage);
+
+extern void brw_process_intel_debug_variable(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GEN_DEBUG_H */
index a46a4d79226b4508545d1025ed7a3a586197fb4a..9027a3ef2b300e1438e10776c93da9774e323e93 100644 (file)
@@ -21,6 +21,8 @@
 # TODO: android?
 
 files_libintel_dev = files(
+  'gen_debug.c',
+  'gen_debug.h',
   'gen_device_info.c',
   'gen_device_info.h',
 )
index 1316077ae09e1ffade29dad939484e667454ee7e..1664918af8c4bcb2490e1ffece5fd8a53ec5887e 100644 (file)
@@ -83,7 +83,7 @@ struct gen_l3_config;
 #include "anv_extensions.h"
 #include "isl/isl.h"
 
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "common/intel_log.h"
 #include "wsi_common.h"
 
index e09a8cef7620b53a66c0608558d32365aab682e3..3c2445d335d9c42dbe1e766ea3ae23295528a9a6 100644 (file)
@@ -38,7 +38,7 @@
 #include "brw_state.h"
 #include "intel_buffer_objects.h"
 #include "intel_fbo.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 #define FILE_DEBUG_FLAG DEBUG_BLORP
 
index b33a30930db447a2e389bd77bd5869f4042990c7..7b0ddfb64ddd804a835b99b6e5e8ef32d9a64a7f 100644 (file)
@@ -53,7 +53,7 @@
 #define ETIME ETIMEDOUT
 #endif
 #include "common/gen_clflush.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "common/gen_gem.h"
 #include "dev/gen_device_info.h"
 #include "libdrm_macros.h"
index 55264075325820abed681269683f349f5c86bc4d..4d6cd58d3cec1f140fc82616c2bae4a016822403 100644 (file)
@@ -46,7 +46,7 @@
 
 #include <brw_bufmgr.h>
 
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "common/gen_decoder.h"
 #include "intel_screen.h"
 #include "intel_tex_obj.h"
index 65fcab24b7f93661d348252c4cceda9778c74b0a..e3a6d6f62e02cba89effebbf1fbbb7cca06f5ad3 100644 (file)
@@ -32,7 +32,7 @@
 #include "util/mesa-sha1.h"
 
 #include "compiler/brw_eu.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 
 #include "brw_context.h"
 #include "brw_program.h"