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