From: Mark Janes Date: Fri, 5 Apr 2019 22:39:51 +0000 (-0700) Subject: intel/common: move gen_debug to intel/dev X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2393cc7f00ee1b94c07e29fb82fc14add89e1238;p=mesa.git intel/common: move gen_debug to intel/dev 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 Reviewed-by: Kenneth Graunke --- diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index be136389431..147fdd69964 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -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" diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index 51b40f30cb8..4ec73973dc5 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -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" diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index fc093110fb2..82e1add94af 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -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" diff --git a/src/intel/Makefile.sources b/src/intel/Makefile.sources index a5c8828a6b6..c283058db11 100644 --- a/src/intel/Makefile.sources +++ b/src/intel/Makefile.sources @@ -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 index 49af1163314..00000000000 --- a/src/intel/common/gen_debug.c +++ /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 - -#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 index e4dabc67f8d..00000000000 --- a/src/intel/common/gen_debug.h +++ /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 -#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 -#else -#include -#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 */ diff --git a/src/intel/common/meson.build b/src/intel/common/meson.build index ec45962502e..19ee2f64875 100644 --- a/src/intel/common/meson.build +++ b/src/intel/common/meson.build @@ -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', diff --git a/src/intel/compiler/brw_compile_clip.c b/src/intel/compiler/brw_compile_clip.c index c04d1a82777..68261122317 100644 --- a/src/intel/compiler/brw_compile_clip.c +++ b/src/intel/compiler/brw_compile_clip.c @@ -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, diff --git a/src/intel/compiler/brw_compile_sf.c b/src/intel/compiler/brw_compile_sf.c index 91e8a6da6cf..51eb9b0dbf9 100644 --- a/src/intel/compiler/brw_compile_sf.c +++ b/src/intel/compiler/brw_compile_sf.c @@ -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; diff --git a/src/intel/compiler/brw_compiler.c b/src/intel/compiler/brw_compiler.c index d3f8c7ef1e0..5d88a66f1fa 100644 --- a/src/intel/compiler/brw_compiler.c +++ b/src/intel/compiler/brw_compiler.c @@ -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" diff --git a/src/intel/compiler/brw_disasm_info.c b/src/intel/compiler/brw_disasm_info.c index 7a9a55d83ef..bec83e8a65d 100644 --- a/src/intel/compiler/brw_disasm_info.c +++ b/src/intel/compiler/brw_disasm_info.c @@ -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, diff --git a/src/intel/compiler/brw_eu.c b/src/intel/compiler/brw_eu.c index 3fb4e405072..87a6145ac29 100644 --- a/src/intel/compiler/brw_eu.c +++ b/src/intel/compiler/brw_eu.c @@ -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" diff --git a/src/intel/compiler/brw_eu_compact.c b/src/intel/compiler/brw_eu_compact.c index 25ad2f2c8cd..51dce9efbdd 100644 --- a/src/intel/compiler/brw_eu_compact.c +++ b/src/intel/compiler/brw_eu_compact.c @@ -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, diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp index baf5df2c3d1..29a80d36d87 100644 --- a/src/intel/compiler/brw_fs.cpp +++ b/src/intel/compiler/brw_fs.cpp @@ -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" diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index 2e63efdc427..899d871a4e5 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -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" diff --git a/src/intel/compiler/brw_shader.cpp b/src/intel/compiler/brw_shader.cpp index f9e88d43539..1b0eeed8415 100644 --- a/src/intel/compiler/brw_shader.cpp +++ b/src/intel/compiler/brw_shader.cpp @@ -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" diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp index 2e9de29b4f2..bb8b554c852 100644 --- a/src/intel/compiler/brw_vec4.cpp +++ b/src/intel/compiler/brw_vec4.cpp @@ -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" diff --git a/src/intel/compiler/brw_vec4_generator.cpp b/src/intel/compiler/brw_vec4_generator.cpp index 8e3dc34ddb3..05e6f50ebb6 100644 --- a/src/intel/compiler/brw_vec4_generator.cpp +++ b/src/intel/compiler/brw_vec4_generator.cpp @@ -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; diff --git a/src/intel/compiler/brw_vec4_gs_visitor.cpp b/src/intel/compiler/brw_vec4_gs_visitor.cpp index a6e38b0f379..09be70d36d5 100644 --- a/src/intel/compiler/brw_vec4_gs_visitor.cpp +++ b/src/intel/compiler/brw_vec4_gs_visitor.cpp @@ -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 { diff --git a/src/intel/compiler/brw_vec4_tcs.cpp b/src/intel/compiler/brw_vec4_tcs.cpp index be0969dda12..f0ef8c0dd96 100644 --- a/src/intel/compiler/brw_vec4_tcs.cpp +++ b/src/intel/compiler/brw_vec4_tcs.cpp @@ -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 { diff --git a/src/intel/compiler/brw_vec4_tes.cpp b/src/intel/compiler/brw_vec4_tes.cpp index cf1bff42aa9..2ad5d06b539 100644 --- a/src/intel/compiler/brw_vec4_tes.cpp +++ b/src/intel/compiler/brw_vec4_tes.cpp @@ -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 { diff --git a/src/intel/compiler/brw_vec4_vs_visitor.cpp b/src/intel/compiler/brw_vec4_vs_visitor.cpp index 8f15bc30a7c..6ee3cb4ac24 100644 --- a/src/intel/compiler/brw_vec4_vs_visitor.cpp +++ b/src/intel/compiler/brw_vec4_vs_visitor.cpp @@ -23,7 +23,7 @@ #include "brw_vec4_vs.h" -#include "common/gen_debug.h" +#include "dev/gen_debug.h" namespace brw { diff --git a/src/intel/compiler/brw_vue_map.c b/src/intel/compiler/brw_vue_map.c index e14cba8f67d..76ca4004230 100644 --- a/src/intel/compiler/brw_vue_map.c +++ b/src/intel/compiler/brw_vue_map.c @@ -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 index 00000000000..b0d0d1a574a --- /dev/null +++ b/src/intel/dev/gen_debug.c @@ -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 + +#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 index 00000000000..e4dabc67f8d --- /dev/null +++ b/src/intel/dev/gen_debug.h @@ -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 +#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 +#else +#include +#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 */ diff --git a/src/intel/dev/meson.build b/src/intel/dev/meson.build index a46a4d79226..9027a3ef2b3 100644 --- a/src/intel/dev/meson.build +++ b/src/intel/dev/meson.build @@ -21,6 +21,8 @@ # TODO: android? files_libintel_dev = files( + 'gen_debug.c', + 'gen_debug.h', 'gen_device_info.c', 'gen_device_info.h', ) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 1316077ae09..1664918af8c 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -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" diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c index e09a8cef762..3c2445d335d 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.c +++ b/src/mesa/drivers/dri/i965/brw_blorp.c @@ -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 diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.c b/src/mesa/drivers/dri/i965/brw_bufmgr.c index b33a30930db..7b0ddfb64dd 100644 --- a/src/mesa/drivers/dri/i965/brw_bufmgr.c +++ b/src/mesa/drivers/dri/i965/brw_bufmgr.c @@ -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" diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 55264075325..4d6cd58d3ce 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -46,7 +46,7 @@ #include -#include "common/gen_debug.h" +#include "dev/gen_debug.h" #include "common/gen_decoder.h" #include "intel_screen.h" #include "intel_tex_obj.h" diff --git a/src/mesa/drivers/dri/i965/brw_disk_cache.c b/src/mesa/drivers/dri/i965/brw_disk_cache.c index 65fcab24b7f..e3a6d6f62e0 100644 --- a/src/mesa/drivers/dri/i965/brw_disk_cache.c +++ b/src/mesa/drivers/dri/i965/brw_disk_cache.c @@ -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"