anv_pipeline.c revision 832bcc36133107e604a89f1762b9794fa7fc52ca
1832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke/* 2832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. 3832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Copyright © 2006 Intel Corporation 4832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * 5832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Permission is hereby granted, free of charge, to any person obtaining a 6832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * copy of this software and associated documentation files (the "Software"), 7832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * to deal in the Software without restriction, including without limitation 8832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * and/or sell copies of the Software, and to permit persons to whom the 10832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Software is furnished to do so, subject to the following conditions: 11832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * 12832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * The above copyright notice and this permission notice (including the next 13832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * paragraph) shall be included in all copies or substantial portions of the 14832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Software. 15832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * 16832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * IN THE SOFTWARE. 23832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke */ 24832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 25832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke/** 26832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * \file intel_debug.c 27832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * 28832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * Support for the INTEL_DEBUG environment variable, along with other 29832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke * miscellaneous debugging code. 30832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke */ 31832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 32832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke#include "brw_context.h" 33832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke#include "intel_debug.h" 34832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke#include "utils.h" 35832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 36832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunkeint INTEL_DEBUG = 0; 37832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 38832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunkestatic const struct dri_debug_control debug_control[] = { 39832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "tex", DEBUG_TEXTURE}, 40832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "state", DEBUG_STATE}, 41832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "ioctl", DEBUG_IOCTL}, 42832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "blit", DEBUG_BLIT}, 43832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "mip", DEBUG_MIPTREE}, 44832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "fall", DEBUG_PERF}, 45832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "perf", DEBUG_PERF}, 46832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "bat", DEBUG_BATCH}, 47832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "pix", DEBUG_PIXEL}, 48832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "buf", DEBUG_BUFMGR}, 49832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "reg", DEBUG_REGION}, 50832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "fbo", DEBUG_FBO}, 51832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "fs", DEBUG_WM }, 52832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "gs", DEBUG_GS}, 53832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "sync", DEBUG_SYNC}, 54832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "prim", DEBUG_PRIMS }, 55832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "vert", DEBUG_VERTS }, 56832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "dri", DEBUG_DRI }, 57832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "sf", DEBUG_SF }, 58832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "stats", DEBUG_STATS }, 59832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "wm", DEBUG_WM }, 60832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "urb", DEBUG_URB }, 61832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "vs", DEBUG_VS }, 62832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "clip", DEBUG_CLIP }, 63832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "aub", DEBUG_AUB }, 64832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "shader_time", DEBUG_SHADER_TIME }, 65832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "no16", DEBUG_NO16 }, 66832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { "blorp", DEBUG_BLORP }, 67832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke { NULL, 0 } 68832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke}; 69832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 70832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunkevoid 71832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunkebrw_process_intel_debug_variable(struct brw_context *brw) 72832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke{ 73832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke INTEL_DEBUG = driParseDebugString(getenv("INTEL_DEBUG"), debug_control); 74832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke if (INTEL_DEBUG & DEBUG_BUFMGR) 75832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke dri_bufmgr_set_debug(brw->bufmgr, true); 76832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 77832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke if ((INTEL_DEBUG & DEBUG_SHADER_TIME) && brw->gen < 7) { 78832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke fprintf(stderr, 79832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke "shader_time debugging requires gen7 (Ivybridge) or better.\n"); 80832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke INTEL_DEBUG &= ~DEBUG_SHADER_TIME; 81832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke } 82832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 83832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke if (INTEL_DEBUG & DEBUG_PERF) 84832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke brw->perf_debug = true; 85832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke 86832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke if (INTEL_DEBUG & DEBUG_AUB) 87832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke drm_intel_bufmgr_gem_set_aub_dump(brw->bufmgr, true); 88832bcc36133107e604a89f1762b9794fa7fc52caKenneth Graunke} 89