u_dump_state.c revision 4c7001462607e6e99e474d6271dd481d3f8f201c
1165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/**************************************************************************
2165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca *
3165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Copyright 2008-2010 VMware, Inc.
4165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * All Rights Reserved.
5165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca *
6165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Permission is hereby granted, free of charge, to any person obtaining a
7165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * copy of this software and associated documentation files (the
8165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * "Software"), to deal in the Software without restriction, including
9165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * without limitation the rights to use, copy, modify, merge, publish,
10165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * distribute, sub license, and/or sell copies of the Software, and to
11165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * permit persons to whom the Software is furnished to do so, subject to
12165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * the following conditions:
13165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca *
14165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * The above copyright notice and this permission notice (including the
15165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * next paragraph) shall be included in all copies or substantial portions
16165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * of the Software.
17165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca *
18165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca *
26165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca **************************************************************************/
27165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
28165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
29165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "pipe/p_compiler.h"
30165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "os/os_stream.h"
31165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "util/u_memory.h"
32165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "util/u_string.h"
33165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "util/u_format.h"
34165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "tgsi/tgsi_dump.h"
35165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
36165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#include "u_dump.h"
37165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
38165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
39165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/*
40165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Dump primitives
41165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */
42165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
43165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic INLINE void
44165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_stream_writef(struct os_stream *stream, const char *format, ...)
45165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
46165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   static char buf[1024];
47165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   unsigned len;
48165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   va_list ap;
49165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   va_start(ap, format);
50165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   len = util_vsnprintf(buf, sizeof(buf), format, ap);
51165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   va_end(ap);
52165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write(stream, buf, len);
53165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
54165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
55165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
56165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_bool(struct os_stream *stream, int value)
57165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
58165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_stream_writef(stream, "%c", value ? '1' : '0');
59165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
60165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
61165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
62165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_int(struct os_stream *stream, long long int value)
63165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
64165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_stream_writef(stream, "%lli", value);
65165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
66165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
67165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
68165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_uint(struct os_stream *stream, long long unsigned value)
69165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
70165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_stream_writef(stream, "%llu", value);
71165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
72165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
73165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
74165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_float(struct os_stream *stream, double value)
75165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
76165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_stream_writef(stream, "%g", value);
77165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
78165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
79165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
80165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_string(struct os_stream *stream, const char *str)
81165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
82165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "\"");
83165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, str);
84165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "\"");
85165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
86165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
87165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
88165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_enum(struct os_stream *stream, const char *value)
89165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
90165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, value);
91165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
92165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
93165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
94165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_array_begin(struct os_stream *stream)
95165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
96165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "{");
97165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
98165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
99165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
100165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_array_end(struct os_stream *stream)
101165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
102165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "}");
103165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
104165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
105165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
106165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_elem_begin(struct os_stream *stream)
107165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
108165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
109165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
110165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
111165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_elem_end(struct os_stream *stream)
112165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
113165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, ", ");
114165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
115165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
116165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
117165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_struct_begin(struct os_stream *stream, const char *name)
118165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
119165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "{");
120165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
121165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
122165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
123165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_struct_end(struct os_stream *stream)
124165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
125165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "}");
126165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
127165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
128165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
129165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_member_begin(struct os_stream *stream, const char *name)
130165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
131165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_stream_writef(stream, "%s = ", name);
132165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
133165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
134165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
135165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_member_end(struct os_stream *stream)
136165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
137165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, ", ");
138165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
139165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
140165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
141165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_null(struct os_stream *stream)
142165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
143165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   os_stream_write_str(stream, "NULL");
144165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
145165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
146165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
147165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_ptr(struct os_stream *stream, const void *value)
148165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
149165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(value)
150165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_stream_writef(stream, "0x%08lx", (unsigned long)(uintptr_t)value);
151165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   else
152165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
153165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
154165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
155165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
156165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/*
157165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Code saving macros.
158165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */
159165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
160165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_arg(_stream, _type, _arg) \
161165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
162165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_arg_begin(_stream, #_arg); \
163165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_##_type(_stream, _arg); \
164165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_arg_end(_stream); \
165165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
166165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
167165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_ret(_stream, _type, _arg) \
168165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
169165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_ret_begin(_stream); \
170165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_##_type(_stream, _arg); \
171165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_ret_end(_stream); \
172165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
173165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
174165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_array(_stream, _type, _obj, _size) \
175165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
176165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      size_t idx; \
177165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array_begin(_stream); \
178165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      for(idx = 0; idx < (_size); ++idx) { \
179165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_elem_begin(_stream); \
180165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_##_type(_stream, (_obj)[idx]); \
181165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_elem_end(_stream); \
182165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      } \
183165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array_end(_stream); \
184165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
185165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
186165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_struct_array(_stream, _type, _obj, _size) \
187165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
188165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      size_t idx; \
189165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array_begin(_stream); \
190165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      for(idx = 0; idx < (_size); ++idx) { \
191165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_elem_begin(_stream); \
192165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_##_type(_stream, &(_obj)[idx]); \
193165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca         util_dump_elem_end(_stream); \
194165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      } \
195165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array_end(_stream); \
196165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
197165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
198165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_member(_stream, _type, _obj, _member) \
199165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
200165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_member_begin(_stream, #_member); \
201165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_##_type(_stream, (_obj)->_member); \
202165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_member_end(_stream); \
203165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
204165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
205165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_arg_array(_stream, _type, _arg, _size) \
206165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
207165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_arg_begin(_stream, #_arg); \
208165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array(_stream, _type, _arg, _size); \
209165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_arg_end(_stream); \
210165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
211165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
212165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca#define util_dump_member_array(_stream, _type, _obj, _member) \
213165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   do { \
214165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_member_begin(_stream, #_member); \
215165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array(_stream, _type, (_obj)->_member, sizeof((_obj)->_member)/sizeof((_obj)->_member[0])); \
216165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_member_end(_stream); \
217165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   } while(0)
218165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
219165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
220165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
221165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/*
222165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Wrappers for enum -> string dumpers.
223165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */
224165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
225165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
226165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
227165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_format(struct os_stream *stream, enum pipe_format format)
228165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
229165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_enum(stream, util_format_name(format));
230165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
231165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
232165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
233165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
234165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_enum_blend_factor(struct os_stream *stream, unsigned value)
235165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
236165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_enum(stream, util_dump_blend_factor(value, TRUE));
237165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
238165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
239165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
240165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_enum_blend_func(struct os_stream *stream, unsigned value)
241165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
242165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_enum(stream, util_dump_blend_func(value, TRUE));
243165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
244165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
245165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecastatic void
246165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_enum_func(struct os_stream *stream, unsigned value)
247165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
248165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_enum(stream, util_dump_func(value, TRUE));
249165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
250165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
251165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
252165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca/*
253165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca * Public functions
254165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca */
255165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
256165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
257165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
258287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellutil_dump_template(struct os_stream *stream, const struct pipe_resource *templat)
259165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
260165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!templat) {
261165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
262165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
263165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
264165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
265287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell   util_dump_struct_begin(stream, "pipe_resource");
266165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
267165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, int, templat, target);
268165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, format, templat, format);
269165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
270165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "width");
271165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_uint(stream, templat->width0);
272165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
273165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
274165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "height");
275165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_uint(stream, templat->height0);
276165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
277165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
278165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "depth");
279165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_uint(stream, templat->depth0);
280165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
281165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
2824c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member_begin(stream, "array_size");
2834c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_uint(stream, templat->array_size);
2844c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member_end(stream);
2854c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger
286165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, templat, last_level);
287a2a01853f3f40b4ef8b3f01503391877960bdaeeBrian Paul   util_dump_member(stream, uint, templat, usage);
288287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell   util_dump_member(stream, uint, templat, bind);
289287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell   util_dump_member(stream, uint, templat, flags);
290165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
291165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
292165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
293165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
294165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
295165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
296165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_rasterizer_state(struct os_stream *stream, const struct pipe_rasterizer_state *state)
297165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
298165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
299165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
300165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
301165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
302165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
303165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_rasterizer_state");
304165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
305165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, flatshade);
306165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, light_twoside);
3070bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, uint, state, front_ccw);
3080bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, uint, state, cull_face);
3090bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, uint, state, fill_front);
3100bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, uint, state, fill_back);
3110bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, bool, state, offset_point);
3120bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, bool, state, offset_line);
3130bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72cKeith Whitwell   util_dump_member(stream, bool, state, offset_tri);
314165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, scissor);
315165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, poly_smooth);
316165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, poly_stipple_enable);
317165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, point_smooth);
318165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, sprite_coord_enable);
319165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, sprite_coord_mode);
320165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, point_quad_rasterization);
321165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, point_size_per_vertex);
322165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, multisample);
323165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, line_smooth);
324165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, line_stipple_enable);
325165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, line_stipple_factor);
326165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, line_stipple_pattern);
327165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, line_last_pixel);
328165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, flatshade_first);
329165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, gl_rasterization_rules);
330165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
331165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, line_width);
332165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, point_size);
333165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, offset_units);
334165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, offset_scale);
335165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
336165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
337165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
338165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
339165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
340165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
341165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_poly_stipple(struct os_stream *stream, const struct pipe_poly_stipple *state)
342165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
343165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
344165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
345165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
346165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
347165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
348165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_poly_stipple");
349165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
350165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "stipple");
351165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, uint, state, stipple);
352165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
353165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
354165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
355165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
356165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
357165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
358165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
359165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_viewport_state(struct os_stream *stream, const struct pipe_viewport_state *state)
360165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
361165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
362165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
363165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
364165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
365165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
366165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_viewport_state");
367165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
368165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, float, state, scale);
369165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, float, state, translate);
370165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
371165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
372165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
373165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
374165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
375165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
376165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_scissor_state(struct os_stream *stream, const struct pipe_scissor_state *state)
377165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
378165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
379165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
380165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
381165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
382165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
383165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_scissor_state");
384165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
385165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, minx);
386165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, miny);
387165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, maxx);
388165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, maxy);
389165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
390165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
391165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
392165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
393165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
394165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
395165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_clip_state(struct os_stream *stream, const struct pipe_clip_state *state)
396165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
397165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   unsigned i;
398165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
399165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
400165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
401165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
402165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
403165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
404165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_clip_state");
405165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
406165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "ucp");
407165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_array_begin(stream);
408165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   for(i = 0; i < PIPE_MAX_CLIP_PLANES; ++i) {
409165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_elem_begin(stream);
410165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_array(stream, float, state->ucp[i], 4);
411165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_elem_end(stream);
412165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
413165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_array_end(stream);
414165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
415165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
416165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, nr);
417165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
418165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
419165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
420165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
421165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
422165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
423165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_shader_state(struct os_stream *stream, const struct pipe_shader_state *state)
424165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
425165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   char str[8192];
426165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
427165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
428165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
429165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
430165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
431165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
432165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   tgsi_dump_str(state->tokens, 0, str, sizeof(str));
433165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
434165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_shader_state");
435165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
436165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "tokens");
437165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_string(stream, str);
438165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
439165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
440165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
441165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
442165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
443165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
444165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
445165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_depth_stencil_alpha_state(struct os_stream *stream, const struct pipe_depth_stencil_alpha_state *state)
446165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
447165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   unsigned i;
448165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
449165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
450165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
451165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
452165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
453165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
454165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_depth_stencil_alpha_state");
455165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
456165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "depth");
457165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_depth_state");
458165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, &state->depth, enabled);
459d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   if (state->depth.enabled) {
460d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, bool, &state->depth, writemask);
461d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_func, &state->depth, func);
462d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   }
463165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
464165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
465165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
466165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "stencil");
467165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_array_begin(stream);
468165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   for(i = 0; i < Elements(state->stencil); ++i) {
469165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_elem_begin(stream);
470165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_struct_begin(stream, "pipe_stencil_state");
471165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_member(stream, bool, &state->stencil[i], enabled);
472d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      if (state->stencil[i].enabled) {
473d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, enum_func, &state->stencil[i], func);
474d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, uint, &state->stencil[i], fail_op);
475d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, uint, &state->stencil[i], zpass_op);
476d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, uint, &state->stencil[i], zfail_op);
477d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, uint, &state->stencil[i], valuemask);
478d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         util_dump_member(stream, uint, &state->stencil[i], writemask);
479d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      }
480165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_struct_end(stream);
481165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_elem_end(stream);
482165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
483165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_array_end(stream);
484165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
485165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
486165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_begin(stream, "alpha");
487165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_alpha_state");
488165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, &state->alpha, enabled);
489d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   if (state->alpha.enabled) {
490d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_func, &state->alpha, func);
491d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, float, &state->alpha, ref_value);
492d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   }
493165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
494165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_end(stream);
495165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
496165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
497165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
498165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
499165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
500165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_rt_blend_state(struct os_stream *stream, const struct pipe_rt_blend_state *state)
501165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
502165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_rt_blend_state");
503165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
504165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, blend_enable);
505d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   if (state->blend_enable) {
506d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_func, state, rgb_func);
507d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_factor, state, rgb_src_factor);
508d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_factor, state, rgb_dst_factor);
509d70c76907519592b723df915e8a71a7bf88c1197José Fonseca
510d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_func, state, alpha_func);
511d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_factor, state, alpha_src_factor);
512d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_blend_factor, state, alpha_dst_factor);
513d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   }
514165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
515165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, colormask);
516165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
517165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
518165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
519165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
520165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
521165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_blend_state(struct os_stream *stream, const struct pipe_blend_state *state)
522165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
523165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   unsigned valid_entries = 1;
524165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
525165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
526165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
527165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
528165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
529165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
530165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_blend_state");
531165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
532165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, dither);
533165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
534165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, logicop_enable);
535d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   if (state->logicop_enable) {
536d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, enum_func, state, logicop_func);
537d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   }
538d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   else {
539d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member(stream, bool, state, independent_blend_enable);
540d70c76907519592b723df915e8a71a7bf88c1197José Fonseca
541d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member_begin(stream, "rt");
542d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      if (state->independent_blend_enable)
543d70c76907519592b723df915e8a71a7bf88c1197José Fonseca         valid_entries = PIPE_MAX_COLOR_BUFS;
544d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_struct_array(stream, rt_blend_state, state->rt, valid_entries);
545d70c76907519592b723df915e8a71a7bf88c1197José Fonseca      util_dump_member_end(stream);
546d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   }
547165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
548165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
549165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
550165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
551165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
552165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
553165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_blend_color(struct os_stream *stream, const struct pipe_blend_color *state)
554165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
555165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
556165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
557165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
558165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
559165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
560165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_blend_color");
561165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
562165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, float, state, color);
563165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
564165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
565165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
566165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
567165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
568165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_stencil_ref(struct os_stream *stream, const struct pipe_stencil_ref *state)
569165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
570165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
571165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
572165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
573165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
574165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
575165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_stencil_ref");
576165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
577165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, uint, state, ref_value);
578165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
579165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
580165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
581165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
582165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
583165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_framebuffer_state(struct os_stream *stream, const struct pipe_framebuffer_state *state)
584165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
585165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_framebuffer_state");
586165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
587165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, width);
588165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, height);
589165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, nr_cbufs);
590165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, ptr, state, cbufs);
591165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, ptr, state, zsbuf);
592165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
593165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
594165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
595165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
596165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
597165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
598165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_sampler_state(struct os_stream *stream, const struct pipe_sampler_state *state)
599165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
600165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
601165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
602165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
603165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
604165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
605165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_sampler_state");
606165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
607165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, wrap_s);
608165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, wrap_t);
609165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, wrap_r);
610165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, min_img_filter);
611165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, min_mip_filter);
612165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, mag_img_filter);
613165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, compare_mode);
614d70c76907519592b723df915e8a71a7bf88c1197José Fonseca   util_dump_member(stream, enum_func, state, compare_func);
615165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, bool, state, normalized_coords);
616165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, max_anisotropy);
617165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, lod_bias);
618165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, min_lod);
619165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, float, state, max_lod);
620165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member_array(stream, float, state, border_color);
621165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
622165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
623165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
624165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
625165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
626165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
627165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_surface(struct os_stream *stream, const struct pipe_surface *state)
628165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
629165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
630165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
631165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
632165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
633165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
634165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_surface");
635165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
636165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, format, state, format);
637165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, width);
638165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, height);
639165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
640165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, usage);
641165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
642165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, ptr, state, texture);
6434c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member(stream, uint, state, u.tex.level);
6444c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member(stream, uint, state, u.tex.first_layer);
6454c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member(stream, uint, state, u.tex.last_layer);
646165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
647165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
648165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
649165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
650165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
651165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
652165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_transfer(struct os_stream *stream, const struct pipe_transfer *state)
653165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
654165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
655165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
656165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
657165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
658165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
659165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_transfer");
660165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
661287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell   util_dump_member(stream, ptr, state, resource);
662443fe5e57cf3db6c2cd810ed123d541ccc379a71Brian Paul   /*util_dump_member(stream, uint, state, box);*/
663165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
664165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, stride);
6654c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger   util_dump_member(stream, uint, state, layer_stride);
666165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
667443fe5e57cf3db6c2cd810ed123d541ccc379a71Brian Paul   /*util_dump_member(stream, ptr, state, data);*/
668165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
669165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
670165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
671165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
672165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
673165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
674165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_vertex_buffer(struct os_stream *stream, const struct pipe_vertex_buffer *state)
675165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
676165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
677165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
678165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
679165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
680165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
681165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_vertex_buffer");
682165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
683165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, stride);
684165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, max_index);
685165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, buffer_offset);
686165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, ptr, state, buffer);
687165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
688165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
689165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
690165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
691165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
692165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecavoid
693165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonsecautil_dump_vertex_element(struct os_stream *stream, const struct pipe_vertex_element *state)
694165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca{
695165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   if(!state) {
696165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      util_dump_null(stream);
697165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca      return;
698165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   }
699165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
700165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_begin(stream, "pipe_vertex_element");
701165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
702165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, src_offset);
703165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
704165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, uint, state, vertex_buffer_index);
705165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
706165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_member(stream, format, state, src_format);
707165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca
708165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca   util_dump_struct_end(stream);
709165b824343e77775b416f8dec16f744ffaf39aeaJosé Fonseca}
710