st_debug.c revision 4a49301e
1/************************************************************************** 2 * 3 * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. 4 * All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the 8 * "Software"), to deal in the Software without restriction, including 9 * without limitation the rights to use, copy, modify, merge, publish, 10 * distribute, sub license, and/or sell copies of the Software, and to 11 * permit persons to whom the Software is furnished to do so, subject to 12 * the following conditions: 13 * 14 * The above copyright notice and this permission notice (including the 15 * next paragraph) shall be included in all copies or substantial portions 16 * of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 * 26 **************************************************************************/ 27 28 29#include "main/context.h" 30#include "shader/prog_print.h" 31 32#include "pipe/p_state.h" 33#include "pipe/p_shader_tokens.h" 34#include "tgsi/tgsi_dump.h" 35 36#include "cso_cache/cso_cache.h" 37 38#include "st_context.h" 39#include "st_debug.h" 40#include "st_program.h" 41 42 43 44#ifdef DEBUG 45int ST_DEBUG = 0; 46 47static const struct debug_named_value st_debug_flags[] = { 48 { "mesa", DEBUG_MESA }, 49 { "tgsi", DEBUG_TGSI }, 50 { "pipe", DEBUG_PIPE }, 51 { "tex", DEBUG_TEX }, 52 { "fallback", DEBUG_FALLBACK }, 53 { "screen", DEBUG_SCREEN }, 54 { "query", DEBUG_QUERY }, 55 {NULL, 0} 56}; 57#endif 58 59 60void 61st_debug_init(void) 62{ 63#ifdef DEBUG 64 ST_DEBUG = debug_get_flags_option("ST_DEBUG", st_debug_flags, 0 ); 65#endif 66} 67 68 69 70/** 71 * Print current state. May be called from inside gdb to see currently 72 * bound vertex/fragment shaders and associated constants. 73 */ 74void 75st_print_current(void) 76{ 77 GET_CURRENT_CONTEXT(ctx); 78 struct st_context *st = ctx->st; 79 80#if 0 81 int i; 82 83 printf("Vertex Transform Inputs:\n"); 84 for (i = 0; i < st->vp->state.num_inputs; i++) { 85 printf(" Slot %d: VERT_ATTRIB_%d\n", i, st->vp->index_to_input[i]); 86 } 87#endif 88 89 tgsi_dump( st->vp->state.tokens, 0 ); 90 if (st->vp->Base.Base.Parameters) 91 _mesa_print_parameter_list(st->vp->Base.Base.Parameters); 92 93 tgsi_dump( st->fp->state.tokens, 0 ); 94 if (st->fp->Base.Base.Parameters) 95 _mesa_print_parameter_list(st->fp->Base.Base.Parameters); 96} 97 98 99