draw: asst. clean-up in draw_pt.c

Signed-off-by: Brian Paul <brianp@vmware.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17064>
This commit is contained in:
Brian Paul
2022-06-10 11:39:19 -06:00
committed by Marge Bot
parent a8cb20339c
commit 2eabffdd86

View File

@@ -47,6 +47,7 @@
DEBUG_GET_ONCE_BOOL_OPTION(draw_fse, "DRAW_FSE", FALSE) DEBUG_GET_ONCE_BOOL_OPTION(draw_fse, "DRAW_FSE", FALSE)
DEBUG_GET_ONCE_BOOL_OPTION(draw_no_fse, "DRAW_NO_FSE", FALSE) DEBUG_GET_ONCE_BOOL_OPTION(draw_no_fse, "DRAW_NO_FSE", FALSE)
/* Overall we split things into: /* Overall we split things into:
* - frontend -- prepare fetch_elts, draw_elts - eg vsplit * - frontend -- prepare fetch_elts, draw_elts - eg vsplit
* - middle -- fetch, shade, cliptest, viewport * - middle -- fetch, shade, cliptest, viewport
@@ -134,7 +135,6 @@ draw_pt_arrays(struct draw_context *draw,
draw->pt.rebind_parameters = FALSE; draw->pt.rebind_parameters = FALSE;
} }
for (unsigned i = 0; i < num_draws; i++) { for (unsigned i = 0; i < num_draws; i++) {
unsigned count = draw_info[i].count; unsigned count = draw_info[i].count;
/* Sanitize primitive length: /* Sanitize primitive length:
@@ -160,7 +160,9 @@ draw_pt_arrays(struct draw_context *draw,
return TRUE; return TRUE;
} }
void draw_pt_flush( struct draw_context *draw, unsigned flags )
void
draw_pt_flush(struct draw_context *draw, unsigned flags)
{ {
assert(flags); assert(flags);
@@ -178,8 +180,8 @@ void draw_pt_flush( struct draw_context *draw, unsigned flags )
} }
boolean
boolean draw_pt_init( struct draw_context *draw ) draw_pt_init(struct draw_context *draw)
{ {
draw->pt.test_fse = debug_get_option_draw_fse(); draw->pt.test_fse = debug_get_option_draw_fse();
draw->pt.no_fse = debug_get_option_draw_no_fse(); draw->pt.no_fse = debug_get_option_draw_no_fse();
@@ -205,7 +207,8 @@ boolean draw_pt_init( struct draw_context *draw )
} }
void draw_pt_destroy( struct draw_context *draw ) void
draw_pt_destroy(struct draw_context *draw)
{ {
if (draw->pt.middle.llvm) { if (draw->pt.middle.llvm) {
draw->pt.middle.llvm->destroy(draw->pt.middle.llvm); draw->pt.middle.llvm->destroy(draw->pt.middle.llvm);
@@ -236,14 +239,11 @@ static void
draw_print_arrays(struct draw_context *draw, enum pipe_prim_type prim, draw_print_arrays(struct draw_context *draw, enum pipe_prim_type prim,
int start, uint count, int index_bias) int start, uint count, int index_bias)
{ {
uint i;
debug_printf("Draw arrays(prim = %u, start = %u, count = %u)\n", debug_printf("Draw arrays(prim = %u, start = %u, count = %u)\n",
prim, start, count); prim, start, count);
for (i = 0; i < count; i++) { for (unsigned i = 0; i < count; i++) {
uint ii = 0; uint ii = 0;
uint j;
if (draw->pt.user.eltSize) { if (draw->pt.user.eltSize) {
/* indexed arrays */ /* indexed arrays */
@@ -281,7 +281,7 @@ draw_print_arrays(struct draw_context *draw, enum pipe_prim_type prim,
debug_printf("Vertex %u:\n", ii); debug_printf("Vertex %u:\n", ii);
} }
for (j = 0; j < draw->pt.nr_vertex_elements; j++) { for (unsigned j = 0; j < draw->pt.nr_vertex_elements; j++) {
uint buf = draw->pt.vertex_element[j].vertex_buffer_index; uint buf = draw->pt.vertex_element[j].vertex_buffer_index;
ubyte *ptr = (ubyte *) draw->pt.user.vbuffer[buf].map; ubyte *ptr = (ubyte *) draw->pt.user.vbuffer[buf].map;
@@ -450,6 +450,7 @@ resolve_draw_info(const struct pipe_draw_info *raw_info,
info->max_index = draw->count - 1; info->max_index = draw->count - 1;
} }
/* /*
* Loop over all instances and execute draws for them. * Loop over all instances and execute draws for them.
*/ */
@@ -460,11 +461,9 @@ draw_instances(struct draw_context *draw,
const struct pipe_draw_start_count_bias *draws, const struct pipe_draw_start_count_bias *draws,
unsigned num_draws) unsigned num_draws)
{ {
unsigned instance;
draw->start_instance = info->start_instance; draw->start_instance = info->start_instance;
for (instance = 0; instance < info->instance_count; instance++) { for (unsigned instance = 0; instance < info->instance_count; instance++) {
unsigned instance_idx = instance + info->start_instance; unsigned instance_idx = instance + info->start_instance;
draw->instance_id = instance; draw->instance_id = instance;
/* check for overflow */ /* check for overflow */
@@ -481,11 +480,13 @@ draw_instances(struct draw_context *draw,
draw_pt_arrays_restart(draw, info, draws, num_draws); draw_pt_arrays_restart(draw, info, draws, num_draws);
} }
else { else {
draw_pt_arrays(draw, info->mode, info->index_bias_varies, draws, num_draws); draw_pt_arrays(draw, info->mode, info->index_bias_varies,
draws, num_draws);
} }
} }
} }
/** /**
* Draw vertex arrays. * Draw vertex arrays.
* This is the main entrypoint into the drawing module. If drawing an indexed * This is the main entrypoint into the drawing module. If drawing an indexed
@@ -545,9 +546,8 @@ draw_vbo(struct draw_context *draw,
tgsi_dump(draw->vs.vertex_shader->state.tokens, 0); tgsi_dump(draw->vs.vertex_shader->state.tokens, 0);
if (0) { if (0) {
unsigned int i;
debug_printf("Elements:\n"); debug_printf("Elements:\n");
for (i = 0; i < draw->pt.nr_vertex_elements; i++) { for (unsigned i = 0; i < draw->pt.nr_vertex_elements; i++) {
debug_printf(" %u: src_offset=%u inst_div=%u vbuf=%u format=%s\n", debug_printf(" %u: src_offset=%u inst_div=%u vbuf=%u format=%s\n",
i, i,
draw->pt.vertex_element[i].src_offset, draw->pt.vertex_element[i].src_offset,
@@ -556,7 +556,7 @@ draw_vbo(struct draw_context *draw,
util_format_name(draw->pt.vertex_element[i].src_format)); util_format_name(draw->pt.vertex_element[i].src_format));
} }
debug_printf("Buffers:\n"); debug_printf("Buffers:\n");
for (i = 0; i < draw->pt.nr_vertex_buffers; i++) { for (unsigned i = 0; i < draw->pt.nr_vertex_buffers; i++) {
debug_printf(" %u: stride=%u offset=%u size=%d ptr=%p\n", debug_printf(" %u: stride=%u offset=%u size=%d ptr=%p\n",
i, i,
draw->pt.vertex_buffer[i].stride, draw->pt.vertex_buffer[i].stride,
@@ -568,8 +568,11 @@ draw_vbo(struct draw_context *draw,
if (0) { if (0) {
for (unsigned i = 0; i < num_draws; i++) for (unsigned i = 0; i < num_draws; i++)
draw_print_arrays(draw, use_info->mode, use_draws[i].start, MIN2(use_draws[i].count, 20), draw_print_arrays(draw, use_info->mode, use_draws[i].start,
use_info->index_bias_varies ? use_draws[i].index_bias : use_draws[0].index_bias); MIN2(use_draws[i].count, 20),
use_info->index_bias_varies
? use_draws[i].index_bias
: use_draws[0].index_bias);
} }
index_limit = util_draw_max_index(draw->pt.vertex_buffer, index_limit = util_draw_max_index(draw->pt.vertex_buffer,
@@ -606,8 +609,9 @@ draw_vbo(struct draw_context *draw,
draw->pt.user.viewid = i; draw->pt.user.viewid = i;
draw_instances(draw, drawid_offset, use_info, use_draws, num_draws); draw_instances(draw, drawid_offset, use_info, use_draws, num_draws);
} }
} else } else {
draw_instances(draw, drawid_offset, use_info, use_draws, num_draws); draw_instances(draw, drawid_offset, use_info, use_draws, num_draws);
}
/* If requested emit the pipeline statistics for this run */ /* If requested emit the pipeline statistics for this run */
if (draw->collect_statistics) { if (draw->collect_statistics) {