From 1ec12c53ba71622dc5dcf62c23972aa539792ccb Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 12 Oct 2012 12:10:59 -0600 Subject: [PATCH] util: added debug_print_transfer_flags() function --- src/gallium/auxiliary/util/u_debug.c | 41 ++++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_debug.h | 4 +++ 2 files changed, 45 insertions(+) diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c index c41585fdd23..b26192a8b58 100644 --- a/src/gallium/auxiliary/util/u_debug.c +++ b/src/gallium/auxiliary/util/u_debug.c @@ -691,4 +691,45 @@ error1: ; } + +/** + * Print PIPE_TRANSFER_x flags with a message. + */ +void +debug_print_transfer_flags(const char *msg, unsigned usage) +{ +#define FLAG(x) { x, #x } + static const struct { + unsigned bit; + const char *name; + } flags[] = { + FLAG(PIPE_TRANSFER_READ), + FLAG(PIPE_TRANSFER_WRITE), + FLAG(PIPE_TRANSFER_MAP_DIRECTLY), + FLAG(PIPE_TRANSFER_DISCARD_RANGE), + FLAG(PIPE_TRANSFER_DONTBLOCK), + FLAG(PIPE_TRANSFER_UNSYNCHRONIZED), + FLAG(PIPE_TRANSFER_FLUSH_EXPLICIT), + FLAG(PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE) + }; + unsigned i; + + debug_printf("%s ", msg); + + for (i = 0; i < Elements(flags); i++) { + if (usage & flags[i].bit) { + debug_printf("%s", flags[i].name); + usage &= ~flags[i].bit; + if (usage) { + debug_printf(" | "); + } + } + } + + debug_printf("\n"); +#undef FLAG +} + + + #endif diff --git a/src/gallium/auxiliary/util/u_debug.h b/src/gallium/auxiliary/util/u_debug.h index ec7d4a07a8c..14d319c2cf1 100644 --- a/src/gallium/auxiliary/util/u_debug.h +++ b/src/gallium/auxiliary/util/u_debug.h @@ -446,6 +446,10 @@ void debug_dump_float_rgba_bmp(const char *filename, #endif +void +debug_print_transfer_flags(const char *msg, unsigned usage); + + #ifdef __cplusplus } #endif -- 2.30.2