gallium/draw: add ability to print out active pipeline stages
This commit is contained in:
@@ -57,6 +57,7 @@ struct draw_stage
|
||||
struct draw_context *draw; /**< parent context */
|
||||
|
||||
struct draw_stage *next; /**< next stage in pipeline */
|
||||
const char *name; /**< for debugging */
|
||||
|
||||
struct vertex_header **tmp; /**< temp vert storage, such as for clipping */
|
||||
unsigned nr_tmps;
|
||||
|
||||
@@ -746,6 +746,7 @@ draw_aaline_stage(struct draw_context *draw)
|
||||
goto fail;
|
||||
|
||||
aaline->stage.draw = draw;
|
||||
aaline->stage.name = "aaline";
|
||||
aaline->stage.next = NULL;
|
||||
aaline->stage.point = draw_pipe_passthrough_point;
|
||||
aaline->stage.line = aaline_first_line;
|
||||
|
||||
@@ -757,6 +757,7 @@ draw_aapoint_stage(struct draw_context *draw)
|
||||
goto fail;
|
||||
|
||||
aapoint->stage.draw = draw;
|
||||
aapoint->stage.name = "aapoint";
|
||||
aapoint->stage.next = NULL;
|
||||
aapoint->stage.point = aapoint_first_point;
|
||||
aapoint->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
@@ -496,6 +496,7 @@ struct draw_stage *draw_clip_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
clipper->stage.draw = draw;
|
||||
clipper->stage.name = "clipper";
|
||||
clipper->stage.point = clip_point;
|
||||
clipper->stage.line = clip_first_line;
|
||||
clipper->stage.tri = clip_first_tri;
|
||||
|
||||
@@ -129,6 +129,7 @@ struct draw_stage *draw_cull_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
cull->stage.draw = draw;
|
||||
cull->stage.name = "cull";
|
||||
cull->stage.next = NULL;
|
||||
cull->stage.point = draw_pipe_passthrough_point;
|
||||
cull->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
@@ -261,6 +261,7 @@ struct draw_stage *draw_flatshade_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
flatshade->stage.draw = draw;
|
||||
flatshade->stage.name = "flatshade";
|
||||
flatshade->stage.next = NULL;
|
||||
flatshade->stage.point = draw_pipe_passthrough_point;
|
||||
flatshade->stage.line = flatshade_first_line;
|
||||
|
||||
@@ -166,6 +166,7 @@ struct draw_stage *draw_offset_stage( struct draw_context *draw )
|
||||
draw_alloc_temp_verts( &offset->stage, 3 );
|
||||
|
||||
offset->stage.draw = draw;
|
||||
offset->stage.name = "offset";
|
||||
offset->stage.next = NULL;
|
||||
offset->stage.point = draw_pipe_passthrough_point;
|
||||
offset->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
@@ -586,6 +586,7 @@ draw_pstip_stage(struct draw_context *draw)
|
||||
draw_alloc_temp_verts( &pstip->stage, 8 );
|
||||
|
||||
pstip->stage.draw = draw;
|
||||
pstip->stage.name = "pstip";
|
||||
pstip->stage.next = NULL;
|
||||
pstip->stage.point = draw_pipe_passthrough_point;
|
||||
pstip->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
@@ -238,6 +238,7 @@ struct draw_stage *draw_stipple_stage( struct draw_context *draw )
|
||||
draw_alloc_temp_verts( &stipple->stage, 2 );
|
||||
|
||||
stipple->stage.draw = draw;
|
||||
stipple->stage.name = "stipple";
|
||||
stipple->stage.next = NULL;
|
||||
stipple->stage.point = stipple_reset_point;
|
||||
stipple->stage.line = stipple_first_line;
|
||||
|
||||
@@ -181,6 +181,7 @@ struct draw_stage *draw_twoside_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
twoside->stage.draw = draw;
|
||||
twoside->stage.name = "twoside";
|
||||
twoside->stage.next = NULL;
|
||||
twoside->stage.point = draw_pipe_passthrough_point;
|
||||
twoside->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
@@ -184,6 +184,7 @@ struct draw_stage *draw_unfilled_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
unfilled->stage.draw = draw;
|
||||
unfilled->stage.name = "unfilled";
|
||||
unfilled->stage.next = NULL;
|
||||
unfilled->stage.tmp = NULL;
|
||||
unfilled->stage.point = draw_pipe_passthrough_point;
|
||||
|
||||
@@ -262,7 +262,15 @@ static struct draw_stage *validate_pipeline( struct draw_stage *stage )
|
||||
|
||||
|
||||
draw->pipeline.first = next;
|
||||
return next;
|
||||
|
||||
if (0) {
|
||||
debug_printf("draw pipeline:\n");
|
||||
for (next = draw->pipeline.first; next ; next = next->next )
|
||||
debug_printf(" %s\n", next->name);
|
||||
debug_printf("\n");
|
||||
}
|
||||
|
||||
return draw->pipeline.first;
|
||||
}
|
||||
|
||||
static void validate_tri( struct draw_stage *stage,
|
||||
@@ -318,6 +326,7 @@ struct draw_stage *draw_validate_stage( struct draw_context *draw )
|
||||
return NULL;
|
||||
|
||||
stage->draw = draw;
|
||||
stage->name = "validate";
|
||||
stage->next = NULL;
|
||||
stage->point = validate_point;
|
||||
stage->line = validate_line;
|
||||
|
||||
@@ -446,6 +446,7 @@ struct draw_stage *draw_vbuf_stage( struct draw_context *draw,
|
||||
goto fail;
|
||||
|
||||
vbuf->stage.draw = draw;
|
||||
vbuf->stage.name = "vbuf";
|
||||
vbuf->stage.point = vbuf_first_point;
|
||||
vbuf->stage.line = vbuf_first_line;
|
||||
vbuf->stage.tri = vbuf_first_tri;
|
||||
|
||||
@@ -168,6 +168,7 @@ struct draw_stage *draw_wide_line_stage( struct draw_context *draw )
|
||||
draw_alloc_temp_verts( &wide->stage, 4 );
|
||||
|
||||
wide->stage.draw = draw;
|
||||
wide->stage.name = "wide-line";
|
||||
wide->stage.next = NULL;
|
||||
wide->stage.point = draw_pipe_passthrough_point;
|
||||
wide->stage.line = wideline_line;
|
||||
|
||||
@@ -279,6 +279,7 @@ struct draw_stage *draw_wide_point_stage( struct draw_context *draw )
|
||||
goto fail;
|
||||
|
||||
wide->stage.draw = draw;
|
||||
wide->stage.name = "wide-point";
|
||||
wide->stage.next = NULL;
|
||||
wide->stage.point = widepoint_first_point;
|
||||
wide->stage.line = draw_pipe_passthrough_line;
|
||||
|
||||
Reference in New Issue
Block a user