1696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca/************************************************************************** 2696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 3696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * Copyright 2009 VMware, Inc. 4696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * All Rights Reserved. 5696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 6696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * Permission is hereby granted, free of charge, to any person obtaining a 7696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * copy of this software and associated documentation files (the 8696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * "Software"), to deal in the Software without restriction, including 9696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * without limitation the rights to use, copy, modify, merge, publish, 10696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * distribute, sub license, and/or sell copies of the Software, and to 11696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * permit persons to whom the Software is furnished to do so, subject to 12696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * the following conditions: 13696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 14696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * The above copyright notice and this permission notice (including the 15696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * next paragraph) shall be included in all copies or substantial portions 16696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * of the Software. 17696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 18696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 22696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 26696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca **************************************************************************/ 27696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 28696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca/** 29696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * @file 30696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * Dump data in human/machine readable format. 31696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * 32696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca * @author Jose Fonseca <jfonseca@vmware.com> 33696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca */ 34696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 35696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#ifndef U_DEBUG_DUMP_H_ 36696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#define U_DEBUG_DUMP_H_ 37696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 38696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 39696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#include "pipe/p_compiler.h" 40696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#include "pipe/p_state.h" 41696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 4257f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonseca#include <stdio.h> 4357f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonseca 44696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 45696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#ifdef __cplusplus 46696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonsecaextern "C" { 47696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#endif 48696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 49696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 50c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonseca#define UTIL_DUMP_INVALID_NAME "<invalid>" 51c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonseca 52c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonseca 53165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/* 54165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * p_defines.h 55165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * 56165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * XXX: These functions don't really dump anything -- just translate into 57165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * strings so a verb better than "dump" should be used instead, in order to 58165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * free up the namespace to the true dumper functions. 59165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */ 60165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 61696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonsecaconst char * 62c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_blend_factor(unsigned value, boolean shortened); 63696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 64696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonsecaconst char * 65c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_blend_func(unsigned value, boolean shortened); 66696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 67b5e397c3693fbae6b2c91c602454d9a70651c9c4José Fonsecaconst char * 68df61404daeaadf2ab50798e384b9ebd4e0659910Brian Paulutil_dump_logicop(unsigned value, boolean shortened); 69df61404daeaadf2ab50798e384b9ebd4e0659910Brian Paul 70df61404daeaadf2ab50798e384b9ebd4e0659910Brian Paulconst char * 71c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_func(unsigned value, boolean shortened); 72696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 7347f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonsecaconst char * 74994e45de4919319db37facb4fde810d9079737f7José Fonsecautil_dump_stencil_op(unsigned value, boolean shortened); 75994e45de4919319db37facb4fde810d9079737f7José Fonseca 76994e45de4919319db37facb4fde810d9079737f7José Fonsecaconst char * 77c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_tex_target(unsigned value, boolean shortened); 7847f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonseca 7947f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonsecaconst char * 80c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_tex_wrap(unsigned value, boolean shortened); 8147f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonseca 8247f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonsecaconst char * 83c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_tex_mipfilter(unsigned value, boolean shortened); 8447f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonseca 8547f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonsecaconst char * 86c16a8e0dd552dc7a5f95169da983e6164fc1492eJosé Fonsecautil_dump_tex_filter(unsigned value, boolean shortened); 8747f0529806cff6be84ce4d3637aad4f2e3e0693aJosé Fonseca 88696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 89165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/* 9057f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonseca * p_state.h, through a FILE 91165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */ 92165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 93165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 9457f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_template(FILE *stream, 95287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell const struct pipe_resource *templat); 96165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 97165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 9857f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_rasterizer_state(FILE *stream, 99165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_rasterizer_state *state); 100165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 101165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 10257f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_poly_stipple(FILE *stream, 103165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_poly_stipple *state); 104165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 105165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 10657f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_viewport_state(FILE *stream, 107165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_viewport_state *state); 108165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 109165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 11057f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_scissor_state(FILE *stream, 111165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_scissor_state *state); 112165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 113165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 11457f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_clip_state(FILE *stream, 115165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_clip_state *state); 116165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 117165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 11857f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_shader_state(FILE *stream, 119165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_shader_state *state); 120165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 121165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 12257f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_depth_stencil_alpha_state(FILE *stream, 123165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_depth_stencil_alpha_state *state); 124165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 125165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 12657f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_rt_blend_state(FILE *stream, 127165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_rt_blend_state *state); 128165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 129165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 13057f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_blend_state(FILE *stream, 131165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_blend_state *state); 132165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 133165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 13457f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_blend_color(FILE *stream, 135165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_blend_color *state); 136165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 137165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 13857f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_stencil_ref(FILE *stream, 139165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_stencil_ref *state); 140165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 141165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 14257f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_framebuffer_state(FILE *stream, 143165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_framebuffer_state *state); 144165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 145165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 14657f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_sampler_state(FILE *stream, 147165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_sampler_state *state); 148165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 149165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 15057f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_surface(FILE *stream, 151165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_surface *state); 152165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 153165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 15457f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_transfer(FILE *stream, 155165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_transfer *state); 156165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 157165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 15857f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_vertex_buffer(FILE *stream, 159165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_vertex_buffer *state); 160165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 161165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid 16257f8e26ca87a2846f192682c84eccbf8b4500bfcJosé Fonsecautil_dump_vertex_element(FILE *stream, 163165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca const struct pipe_vertex_element *state); 164165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 1651ae9e588fa8e213f414f3d2d2e70c001deb304c8Marek Olšákvoid 1661ae9e588fa8e213f414f3d2d2e70c001deb304c8Marek Olšákutil_dump_draw_info(FILE *stream, const struct pipe_draw_info *state); 167165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca 168696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca/* FIXME: Move the other debug_dump_xxx functions out of u_debug.h into here. */ 169696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 170696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 171696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#ifdef __cplusplus 172696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca} 173696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#endif 174696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca 175696f7f2be51672da41a947a7028e01e82e44a09fJosé Fonseca#endif /* U_DEBUG_H_ */ 176