/** * Print PIPE_USAGE_x enum values with a message. */ void debug_print_usage_enum(const char *msg, unsigned usage) { static const struct debug_named_value names[] = { DEBUG_NAMED_VALUE(PIPE_USAGE_DEFAULT), DEBUG_NAMED_VALUE(PIPE_USAGE_IMMUTABLE), DEBUG_NAMED_VALUE(PIPE_USAGE_DYNAMIC), DEBUG_NAMED_VALUE(PIPE_USAGE_STREAM), DEBUG_NAMED_VALUE(PIPE_USAGE_STAGING), DEBUG_NAMED_VALUE_END }; debug_printf("%s: %s\n", msg, debug_dump_enum(names, usage)); }
/** * Print PIPE_TRANSFER_x flags with a message. */ void debug_print_transfer_flags(const char *msg, unsigned usage) { static const struct debug_named_value names[] = { DEBUG_NAMED_VALUE(PIPE_TRANSFER_READ), DEBUG_NAMED_VALUE(PIPE_TRANSFER_WRITE), DEBUG_NAMED_VALUE(PIPE_TRANSFER_MAP_DIRECTLY), DEBUG_NAMED_VALUE(PIPE_TRANSFER_DISCARD_RANGE), DEBUG_NAMED_VALUE(PIPE_TRANSFER_DONTBLOCK), DEBUG_NAMED_VALUE(PIPE_TRANSFER_UNSYNCHRONIZED), DEBUG_NAMED_VALUE(PIPE_TRANSFER_FLUSH_EXPLICIT), DEBUG_NAMED_VALUE(PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE), DEBUG_NAMED_VALUE(PIPE_TRANSFER_PERSISTENT), DEBUG_NAMED_VALUE(PIPE_TRANSFER_COHERENT), DEBUG_NAMED_VALUE_END }; debug_printf("%s: %s\n", msg, debug_dump_flags(names, usage)); }
return output; } #ifdef DEBUG void debug_print_format(const char *msg, unsigned fmt ) { debug_printf("%s: %s\n", msg, util_format_name(fmt)); } #endif static const struct debug_named_value pipe_prim_names[] = { #ifdef DEBUG DEBUG_NAMED_VALUE(PIPE_PRIM_POINTS), DEBUG_NAMED_VALUE(PIPE_PRIM_LINES), DEBUG_NAMED_VALUE(PIPE_PRIM_LINE_LOOP), DEBUG_NAMED_VALUE(PIPE_PRIM_LINE_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLES), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLE_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLE_FAN), DEBUG_NAMED_VALUE(PIPE_PRIM_QUADS), DEBUG_NAMED_VALUE(PIPE_PRIM_QUAD_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_POLYGON), #endif DEBUG_NAMED_VALUE_END }; const char *u_prim_name( unsigned prim )
first = 0; util_snprintf(rest, sizeof(rest), "0x%08lx", value); util_strncat(output, rest, sizeof(output)); } if(first) return "0"; return output; } static const struct debug_named_value pipe_format_names[] = { #ifdef DEBUG DEBUG_NAMED_VALUE(PIPE_FORMAT_NONE), DEBUG_NAMED_VALUE(PIPE_FORMAT_A8R8G8B8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_X8R8G8B8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_B8G8R8A8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_B8G8R8X8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_A1R5G5B5_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_A4R4G4B4_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_R5G6B5_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_A2B10G10R10_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_L8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_A8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_I8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_A8L8_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_L16_UNORM), DEBUG_NAMED_VALUE(PIPE_FORMAT_YCBCR), DEBUG_NAMED_VALUE(PIPE_FORMAT_YCBCR_REV),
/** * Print PIPE_BIND_x flags with a message. */ void debug_print_bind_flags(const char *msg, unsigned usage) { static const struct debug_named_value names[] = { DEBUG_NAMED_VALUE(PIPE_BIND_DEPTH_STENCIL), DEBUG_NAMED_VALUE(PIPE_BIND_RENDER_TARGET), DEBUG_NAMED_VALUE(PIPE_BIND_BLENDABLE), DEBUG_NAMED_VALUE(PIPE_BIND_SAMPLER_VIEW), DEBUG_NAMED_VALUE(PIPE_BIND_VERTEX_BUFFER), DEBUG_NAMED_VALUE(PIPE_BIND_INDEX_BUFFER), DEBUG_NAMED_VALUE(PIPE_BIND_CONSTANT_BUFFER), DEBUG_NAMED_VALUE(PIPE_BIND_DISPLAY_TARGET), DEBUG_NAMED_VALUE(PIPE_BIND_TRANSFER_WRITE), DEBUG_NAMED_VALUE(PIPE_BIND_TRANSFER_READ), DEBUG_NAMED_VALUE(PIPE_BIND_STREAM_OUTPUT), DEBUG_NAMED_VALUE(PIPE_BIND_CURSOR), DEBUG_NAMED_VALUE(PIPE_BIND_CUSTOM), DEBUG_NAMED_VALUE(PIPE_BIND_GLOBAL), DEBUG_NAMED_VALUE(PIPE_BIND_SHADER_RESOURCE), DEBUG_NAMED_VALUE(PIPE_BIND_COMPUTE_RESOURCE), DEBUG_NAMED_VALUE(PIPE_BIND_COMMAND_ARGS_BUFFER), DEBUG_NAMED_VALUE(PIPE_BIND_SCANOUT), DEBUG_NAMED_VALUE(PIPE_BIND_SHARED), DEBUG_NAMED_VALUE(PIPE_BIND_LINEAR), DEBUG_NAMED_VALUE_END }; debug_printf("%s: %s\n", msg, debug_dump_flags(names, usage)); }
/** Return string name of given primitive type */ const char * u_prim_name(unsigned prim) { static const struct debug_named_value names[] = { DEBUG_NAMED_VALUE(PIPE_PRIM_POINTS), DEBUG_NAMED_VALUE(PIPE_PRIM_LINES), DEBUG_NAMED_VALUE(PIPE_PRIM_LINE_LOOP), DEBUG_NAMED_VALUE(PIPE_PRIM_LINE_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLES), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLE_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLE_FAN), DEBUG_NAMED_VALUE(PIPE_PRIM_QUADS), DEBUG_NAMED_VALUE(PIPE_PRIM_QUAD_STRIP), DEBUG_NAMED_VALUE(PIPE_PRIM_POLYGON), DEBUG_NAMED_VALUE(PIPE_PRIM_LINES_ADJACENCY), DEBUG_NAMED_VALUE(PIPE_PRIM_LINE_STRIP_ADJACENCY), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLES_ADJACENCY), DEBUG_NAMED_VALUE(PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY), DEBUG_NAMED_VALUE_END }; return debug_dump_enum(names, prim); }