1*61046927SAndroid Build Coastguard Worker /* 2*61046927SAndroid Build Coastguard Worker * Copyright 2003 VMware, Inc. 3*61046927SAndroid Build Coastguard Worker * Copyright © 2007 Intel Corporation 4*61046927SAndroid Build Coastguard Worker * 5*61046927SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining 6*61046927SAndroid Build Coastguard Worker * a copy of this software and associated documentation files (the 7*61046927SAndroid Build Coastguard Worker * "Software"), to deal in the Software without restriction, including 8*61046927SAndroid Build Coastguard Worker * without limitation the rights to use, copy, modify, merge, publish, 9*61046927SAndroid Build Coastguard Worker * distribute, sublicense, and/or sell copies of the Software, and to 10*61046927SAndroid Build Coastguard Worker * permit persons to whom the Software is furnished to do so, subject to 11*61046927SAndroid Build Coastguard Worker * the following conditions: 12*61046927SAndroid Build Coastguard Worker * 13*61046927SAndroid Build Coastguard Worker * The above copyright notice and this permission notice (including the 14*61046927SAndroid Build Coastguard Worker * next paragraph) shall be included in all copies or substantial 15*61046927SAndroid Build Coastguard Worker * portions of the Software. 16*61046927SAndroid Build Coastguard Worker * 17*61046927SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18*61046927SAndroid Build Coastguard Worker * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19*61046927SAndroid Build Coastguard Worker * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20*61046927SAndroid Build Coastguard Worker * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 21*61046927SAndroid Build Coastguard Worker * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 22*61046927SAndroid Build Coastguard Worker * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 23*61046927SAndroid Build Coastguard Worker * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24*61046927SAndroid Build Coastguard Worker */ 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Worker #ifndef MESA_V3D_DEBUG_H 27*61046927SAndroid Build Coastguard Worker #define MESA_V3D_DEBUG_H 28*61046927SAndroid Build Coastguard Worker 29*61046927SAndroid Build Coastguard Worker #include <stdint.h> 30*61046927SAndroid Build Coastguard Worker #include "compiler/shader_enums.h" 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 33*61046927SAndroid Build Coastguard Worker extern "C" { 34*61046927SAndroid Build Coastguard Worker #endif 35*61046927SAndroid Build Coastguard Worker /** 36*61046927SAndroid Build Coastguard Worker * \file v3d_debug.h 37*61046927SAndroid Build Coastguard Worker * 38*61046927SAndroid Build Coastguard Worker * Basic V3D_DEBUG environment variable handling. This file defines the 39*61046927SAndroid Build Coastguard Worker * list of debugging flags, as well as some macros for handling them. 40*61046927SAndroid Build Coastguard Worker */ 41*61046927SAndroid Build Coastguard Worker 42*61046927SAndroid Build Coastguard Worker extern uint32_t v3d_mesa_debug; 43*61046927SAndroid Build Coastguard Worker 44*61046927SAndroid Build Coastguard Worker #define V3D_DBG(flag) unlikely(v3d_mesa_debug & V3D_DEBUG_ ## flag) 45*61046927SAndroid Build Coastguard Worker 46*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_SHADERDB (1 << 0) 47*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_TGSI (1 << 1) 48*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_NIR (1 << 2) 49*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_VIR (1 << 3) 50*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_QPU (1 << 4) 51*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_FS (1 << 5) 52*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_GS (1 << 6) 53*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_VS (1 << 7) 54*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_CS (1 << 8) 55*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_CL (1 << 9) 56*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_SURFACE (1 << 10) 57*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_PERF (1 << 11) 58*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_NORAST (1 << 12) 59*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_ALWAYS_FLUSH (1 << 13) 60*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_CLIF (1 << 14) 61*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_PRECOMPILE (1 << 15) 62*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_RA (1 << 16) 63*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_TMU_32BIT (1 << 18) 64*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_TMU_16BIT (1 << 19) 65*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_NO_LOOP_UNROLL (1 << 20) 66*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_CL_NO_BIN (1 << 21) 67*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_DOUBLE_BUFFER (1 << 22) 68*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_CACHE (1 << 23) 69*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_NO_MERGE_JOBS (1 << 24) 70*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_OPT_COMPILE_TIME (1 << 25) 71*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_DISABLE_TFU (1 << 26) 72*61046927SAndroid Build Coastguard Worker 73*61046927SAndroid Build Coastguard Worker #define V3D_DEBUG_SHADERS (V3D_DEBUG_TGSI | V3D_DEBUG_NIR | \ 74*61046927SAndroid Build Coastguard Worker V3D_DEBUG_VIR | V3D_DEBUG_QPU | \ 75*61046927SAndroid Build Coastguard Worker V3D_DEBUG_FS | V3D_DEBUG_GS | \ 76*61046927SAndroid Build Coastguard Worker V3D_DEBUG_VS | V3D_DEBUG_CS | \ 77*61046927SAndroid Build Coastguard Worker V3D_DEBUG_RA) 78*61046927SAndroid Build Coastguard Worker 79*61046927SAndroid Build Coastguard Worker #ifdef HAVE_ANDROID_PLATFORM 80*61046927SAndroid Build Coastguard Worker #define LOG_TAG "BROADCOM-MESA" 81*61046927SAndroid Build Coastguard Worker #if ANDROID_API_LEVEL >= 26 82*61046927SAndroid Build Coastguard Worker #include <log/log.h> 83*61046927SAndroid Build Coastguard Worker #else 84*61046927SAndroid Build Coastguard Worker #include <cutils/log.h> 85*61046927SAndroid Build Coastguard Worker #endif /* use log/log.h start from android 8 major version */ 86*61046927SAndroid Build Coastguard Worker #ifndef ALOGW 87*61046927SAndroid Build Coastguard Worker #define ALOGW LOGW 88*61046927SAndroid Build Coastguard Worker #endif 89*61046927SAndroid Build Coastguard Worker #define dbg_printf(...) ALOGW(__VA_ARGS__) 90*61046927SAndroid Build Coastguard Worker #else 91*61046927SAndroid Build Coastguard Worker #define dbg_printf(...) fprintf(stderr, __VA_ARGS__) 92*61046927SAndroid Build Coastguard Worker #endif /* HAVE_ANDROID_PLATFORM */ 93*61046927SAndroid Build Coastguard Worker 94*61046927SAndroid Build Coastguard Worker extern bool v3d_debug_flag_for_shader_stage(gl_shader_stage stage); 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard Worker extern void v3d_process_debug_variable(void); 97*61046927SAndroid Build Coastguard Worker 98*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 99*61046927SAndroid Build Coastguard Worker } 100*61046927SAndroid Build Coastguard Worker #endif 101*61046927SAndroid Build Coastguard Worker 102*61046927SAndroid Build Coastguard Worker #endif /* V3D_DEBUG_H */ 103