mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
gallium: debug code to print vertex array data (disabled)
This commit is contained in:
parent
93fd5e150b
commit
6c3e7365d5
1 changed files with 89 additions and 0 deletions
|
|
@ -178,6 +178,92 @@ void draw_pt_destroy( struct draw_context *draw )
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Debug- print the first 'count' vertices.
|
||||
*/
|
||||
static void
|
||||
draw_print_arrays(struct draw_context *draw, uint prim, int start, uint count)
|
||||
{
|
||||
uint i;
|
||||
|
||||
debug_printf("Draw arrays(prim = %u, start = %u, count = %u)\n",
|
||||
prim, start, count);
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
uint ii, j;
|
||||
|
||||
if (draw->pt.user.elts) {
|
||||
/* indexed arrays */
|
||||
switch (draw->pt.user.eltSize) {
|
||||
case 1:
|
||||
{
|
||||
const ubyte *elem = (const ubyte *) draw->pt.user.elts;
|
||||
ii = elem[start + i];
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
const ushort *elem = (const ushort *) draw->pt.user.elts;
|
||||
ii = elem[start + i];
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
const uint *elem = (const uint *) draw->pt.user.elts;
|
||||
ii = elem[start + i];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
debug_printf("Element[%u + %u] -> Vertex %u:\n", start, i, ii);
|
||||
}
|
||||
else {
|
||||
/* non-indexed arrays */
|
||||
ii = start + i;
|
||||
debug_printf("Vertex %u:\n", ii);
|
||||
}
|
||||
|
||||
for (j = 0; j < draw->pt.nr_vertex_elements; j++) {
|
||||
uint buf = draw->pt.vertex_element[j].vertex_buffer_index;
|
||||
ubyte *ptr = (ubyte *) draw->pt.user.vbuffer[buf];
|
||||
ptr += draw->pt.vertex_buffer[buf].pitch * ii;
|
||||
ptr += draw->pt.vertex_element[j].src_offset;
|
||||
|
||||
debug_printf(" Attr %u: ", j);
|
||||
switch (draw->pt.vertex_element[j].src_format) {
|
||||
case PIPE_FORMAT_R32_FLOAT:
|
||||
{
|
||||
float *v = (float *) ptr;
|
||||
debug_printf("%f @ %p\n", v[0], (void *) v);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_R32G32_FLOAT:
|
||||
{
|
||||
float *v = (float *) ptr;
|
||||
debug_printf("%f %f @ %p\n", v[0], v[1], (void *) v);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_R32G32B32_FLOAT:
|
||||
{
|
||||
float *v = (float *) ptr;
|
||||
debug_printf("%f %f %f @ %p\n", v[0], v[1], v[2], (void *) v);
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
{
|
||||
float *v = (float *) ptr;
|
||||
debug_printf("%f %f %f %f @ %p\n", v[0], v[1], v[2], v[3],
|
||||
(void *) v);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
debug_printf("other format (fix me)\n");
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -197,6 +283,9 @@ draw_arrays(struct draw_context *draw, unsigned prim,
|
|||
draw->reduced_prim = reduced_prim;
|
||||
}
|
||||
|
||||
if (0)
|
||||
draw_print_arrays(draw, prim, start, MIN2(count, 20));
|
||||
|
||||
#if 0
|
||||
{
|
||||
int i;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue