1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/************************************************************************** 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright 2008-2010 VMware, Inc. 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * All Rights Reserved. 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish, 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sub license, and/or sell copies of the Software, and to 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions: 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial portions 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * of the Software. 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org **************************************************************************/ 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_compiler.h" 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_memory.h" 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_string.h" 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_format.h" 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "tgsi/tgsi_dump.h" 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "u_dump.h" 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Dump primitives 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic INLINE void 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_stream_writef(FILE *stream, const char *format, ...) 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org static char buf[1024]; 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned len; 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org va_list ap; 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org va_start(ap, format); 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org len = util_vsnprintf(buf, sizeof(buf), format, ap); 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org va_end(ap); 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fwrite(buf, len, 1, stream); 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_bool(FILE *stream, int value) 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "%c", value ? '1' : '0'); 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_int(FILE *stream, long long int value) 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "%lli", value); 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_uint(FILE *stream, long long unsigned value) 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "%llu", value); 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_float(FILE *stream, double value) 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "%g", value); 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_string(FILE *stream, const char *str) 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("\"", stream); 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs(str, stream); 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("\"", stream); 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_enum(FILE *stream, const char *value) 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs(value, stream); 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_array_begin(FILE *stream) 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("{", stream); 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_array_end(FILE *stream) 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("}", stream); 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_elem_begin(FILE *stream) 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_elem_end(FILE *stream) 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs(", ", stream); 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_struct_begin(FILE *stream, const char *name) 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("{", stream); 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_struct_end(FILE *stream) 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("}", stream); 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_member_begin(FILE *stream, const char *name) 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "%s = ", name); 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_member_end(FILE *stream) 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs(", ", stream); 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_null(FILE *stream) 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fputs("NULL", stream); 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_ptr(FILE *stream, const void *value) 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(value) 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_stream_writef(stream, "0x%08lx", (unsigned long)(uintptr_t)value); 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org else 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Code saving macros. 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_arg(_stream, _type, _arg) \ 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_arg_begin(_stream, #_arg); \ 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_##_type(_stream, _arg); \ 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_arg_end(_stream); \ 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_ret(_stream, _type, _arg) \ 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_ret_begin(_stream); \ 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_##_type(_stream, _arg); \ 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_ret_end(_stream); \ 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_array(_stream, _type, _obj, _size) \ 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org size_t idx; \ 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_begin(_stream); \ 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(idx = 0; idx < (_size); ++idx) { \ 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_begin(_stream); \ 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_##_type(_stream, (_obj)[idx]); \ 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_end(_stream); \ 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } \ 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_end(_stream); \ 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_struct_array(_stream, _type, _obj, _size) \ 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org size_t idx; \ 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_begin(_stream); \ 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(idx = 0; idx < (_size); ++idx) { \ 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_begin(_stream); \ 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_##_type(_stream, &(_obj)[idx]); \ 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_end(_stream); \ 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } \ 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_end(_stream); \ 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_member(_stream, _type, _obj, _member) \ 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(_stream, #_member); \ 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_##_type(_stream, (_obj)->_member); \ 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(_stream); \ 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_arg_array(_stream, _type, _arg, _size) \ 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_arg_begin(_stream, #_arg); \ 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array(_stream, _type, _arg, _size); \ 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_arg_end(_stream); \ 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define util_dump_member_array(_stream, _type, _obj, _member) \ 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org do { \ 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(_stream, #_member); \ 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array(_stream, _type, (_obj)->_member, sizeof((_obj)->_member)/sizeof((_obj)->_member[0])); \ 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(_stream); \ 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } while(0) 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Wrappers for enum -> string dumpers. 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_format(FILE *stream, enum pipe_format format) 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_enum(stream, util_format_name(format)); 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_enum_blend_factor(FILE *stream, unsigned value) 234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_enum(stream, util_dump_blend_factor(value, TRUE)); 236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_enum_blend_func(FILE *stream, unsigned value) 240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_enum(stream, util_dump_blend_func(value, TRUE)); 242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_enum_func(FILE *stream, unsigned value) 246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_enum(stream, util_dump_func(value, TRUE)); 248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Public functions 253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_template(FILE *stream, const struct pipe_resource *templat) 258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!templat) { 260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_resource"); 265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, int, templat, target); 267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, format, templat, format); 268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "width"); 270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_uint(stream, templat->width0); 271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "height"); 274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_uint(stream, templat->height0); 275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "depth"); 278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_uint(stream, templat->depth0); 279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "array_size"); 282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_uint(stream, templat->array_size); 283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, templat, last_level); 286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, templat, usage); 287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, templat, bind); 288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, templat, flags); 289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_rasterizer_state(FILE *stream, const struct pipe_rasterizer_state *state) 296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_rasterizer_state"); 303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, flatshade); 305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, light_twoside); 306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, clamp_vertex_color); 307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, clamp_fragment_color); 308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, front_ccw); 309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, cull_face); 310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, fill_front); 311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, fill_back); 312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, offset_point); 313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, offset_line); 314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, offset_tri); 315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, scissor); 316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, poly_smooth); 317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, poly_stipple_enable); 318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, point_smooth); 319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, sprite_coord_enable); 320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, sprite_coord_mode); 321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, point_quad_rasterization); 322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, point_size_per_vertex); 323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, multisample); 324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, line_smooth); 325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, line_stipple_enable); 326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, line_stipple_factor); 327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, line_stipple_pattern); 328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, line_last_pixel); 329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, flatshade_first); 330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, gl_rasterization_rules); 331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, rasterizer_discard); 332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, depth_clip); 333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, clip_plane_enable); 334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, line_width); 336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, point_size); 337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, offset_units); 338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, offset_scale); 339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, offset_clamp); 340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_poly_stipple(FILE *stream, const struct pipe_poly_stipple *state) 347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_poly_stipple"); 354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "stipple"); 356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, uint, state, stipple); 357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_viewport_state(FILE *stream, const struct pipe_viewport_state *state) 365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_viewport_state"); 372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, float, state, scale); 374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, float, state, translate); 375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_scissor_state(FILE *stream, const struct pipe_scissor_state *state) 382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_scissor_state"); 389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, minx); 391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, miny); 392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, maxx); 393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, maxy); 394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_clip_state(FILE *stream, const struct pipe_clip_state *state) 401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned i; 403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_clip_state"); 410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "ucp"); 412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_begin(stream); 413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(i = 0; i < PIPE_MAX_CLIP_PLANES; ++i) { 414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_begin(stream); 415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array(stream, float, state->ucp[i], 4); 416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_end(stream); 417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_end(stream); 419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_shader_state(FILE *stream, const struct pipe_shader_state *state) 427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org char str[8192]; 429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned i; 430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org tgsi_dump_str(state->tokens, 0, str, sizeof(str)); 437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_shader_state"); 439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "tokens"); 441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_string(stream, str); 442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "stream_output"); 445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_stream_output_info"); 446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stream_output, num_outputs); 447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array(stream, uint, state->stream_output.stride, 448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Elements(state->stream_output.stride)); 449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_begin(stream); 450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(i = 0; i < state->stream_output.num_outputs; ++i) { 451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_begin(stream); 452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, ""); /* anonymous */ 453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stream_output.output[i], register_index); 454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stream_output.output[i], start_component); 455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stream_output.output[i], num_components); 456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stream_output.output[i], output_buffer); 457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_end(stream); 459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_end(stream); 461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_depth_stencil_alpha_state(FILE *stream, const struct pipe_depth_stencil_alpha_state *state) 470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned i; 472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_depth_stencil_alpha_state"); 479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "depth"); 481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_depth_state"); 482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, &state->depth, enabled); 483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->depth.enabled) { 484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, &state->depth, writemask); 485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_func, &state->depth, func); 486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "stencil"); 491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_begin(stream); 492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(i = 0; i < Elements(state->stencil); ++i) { 493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_begin(stream); 494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_stencil_state"); 495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, &state->stencil[i], enabled); 496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->stencil[i].enabled) { 497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_func, &state->stencil[i], func); 498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stencil[i], fail_op); 499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stencil[i], zpass_op); 500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stencil[i], zfail_op); 501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stencil[i], valuemask); 502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, &state->stencil[i], writemask); 503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_elem_end(stream); 506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_array_end(stream); 508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "alpha"); 511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_alpha_state"); 512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, &state->alpha, enabled); 513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->alpha.enabled) { 514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_func, &state->alpha, func); 515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, &state->alpha, ref_value); 516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_rt_blend_state(FILE *stream, const struct pipe_rt_blend_state *state) 525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_rt_blend_state"); 527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, blend_enable); 529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->blend_enable) { 530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_func, state, rgb_func); 531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_factor, state, rgb_src_factor); 532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_factor, state, rgb_dst_factor); 533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_func, state, alpha_func); 535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_factor, state, alpha_src_factor); 536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_blend_factor, state, alpha_dst_factor); 537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, colormask); 540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_blend_state(FILE *stream, const struct pipe_blend_state *state) 546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned valid_entries = 1; 548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_blend_state"); 555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, dither); 557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, logicop_enable); 559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->logicop_enable) { 560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_func, state, logicop_func); 561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org else { 563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, independent_blend_enable); 564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_begin(stream, "rt"); 566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (state->independent_blend_enable) 567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org valid_entries = PIPE_MAX_COLOR_BUFS; 568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_array(stream, rt_blend_state, state->rt, valid_entries); 569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_end(stream); 570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_blend_color(FILE *stream, const struct pipe_blend_color *state) 578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_blend_color"); 585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, float, state, color); 587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_stencil_ref(FILE *stream, const struct pipe_stencil_ref *state) 593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_stencil_ref"); 600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, uint, state, ref_value); 602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_framebuffer_state(FILE *stream, const struct pipe_framebuffer_state *state) 608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_framebuffer_state"); 610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, width); 612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, height); 613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, nr_cbufs); 614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, ptr, state, cbufs); 615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, ptr, state, zsbuf); 616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 619f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 620f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 621f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 622f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_sampler_state(FILE *stream, const struct pipe_sampler_state *state) 623f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 624f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 625f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 626f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 627f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 628f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 629f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_sampler_state"); 630f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 631f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, wrap_s); 632f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, wrap_t); 633f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, wrap_r); 634f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, min_img_filter); 635f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, min_mip_filter); 636f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, mag_img_filter); 637f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, compare_mode); 638f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, enum_func, state, compare_func); 639f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, normalized_coords); 640f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, max_anisotropy); 641f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, lod_bias); 642f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, min_lod); 643f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, float, state, max_lod); 644f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member_array(stream, float, state, border_color.f); 645f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 646f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 647f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 648f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 649f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 650f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 651f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_surface(FILE *stream, const struct pipe_surface *state) 652f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 653f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 654f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 655f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 656f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 657f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 658f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_surface"); 659f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 660f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, format, state, format); 661f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, width); 662f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, height); 663f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 664f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, usage); 665f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 666f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, ptr, state, texture); 667f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, u.tex.level); 668f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, u.tex.first_layer); 669f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, u.tex.last_layer); 670f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 671f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 672f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 673f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 674f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 675f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 676f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_transfer(FILE *stream, const struct pipe_transfer *state) 677f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 678f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 679f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 680f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 681f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 682f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 683f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_transfer"); 684f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 685f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, ptr, state, resource); 686f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /*util_dump_member(stream, uint, state, box);*/ 687f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 688f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, stride); 689f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, layer_stride); 690f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 691f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /*util_dump_member(stream, ptr, state, data);*/ 692f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 693f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 694f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 695f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 696f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 697f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 698f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_vertex_buffer(FILE *stream, const struct pipe_vertex_buffer *state) 699f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 700f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 701f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 702f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 703f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 704f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 705f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_vertex_buffer"); 706f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 707f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, stride); 708f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, buffer_offset); 709f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, ptr, state, buffer); 710f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 711f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 712f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 713f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 714f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 715f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 716f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_vertex_element(FILE *stream, const struct pipe_vertex_element *state) 717f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 718f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 719f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 720f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 721f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 722f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 723f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_vertex_element"); 724f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 725f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, src_offset); 726f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 727f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, vertex_buffer_index); 728f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 729f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, format, state, src_format); 730f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 731f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 732f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 733f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 734f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 735f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 736f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgutil_dump_draw_info(FILE *stream, const struct pipe_draw_info *state) 737f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 738f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if(!state) { 739f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_null(stream); 740f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 741f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 742f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 743f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_begin(stream, "pipe_draw_info"); 744f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 745f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, indexed); 746f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 747f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, mode); 748f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, start); 749f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, count); 750f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 751f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, start_instance); 752f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, instance_count); 753f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 754f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, int, state, index_bias); 755f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, min_index); 756f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, max_index); 757f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 758f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, bool, state, primitive_restart); 759f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, uint, state, restart_index); 760f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 761f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_member(stream, ptr, state, count_from_stream_output); 762f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 763f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org util_dump_struct_end(stream); 764f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 765