diff options
Diffstat (limited to 'src/intel/common/gen_batch_decoder.c')
-rw-r--r-- | src/intel/common/gen_batch_decoder.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/intel/common/gen_batch_decoder.c b/src/intel/common/gen_batch_decoder.c index fc0ff95a476..fe7536da9ec 100644 --- a/src/intel/common/gen_batch_decoder.c +++ b/src/intel/common/gen_batch_decoder.c @@ -856,33 +856,24 @@ gen_print_batch(struct gen_batch_decode_ctx *ctx, if (next_batch.map == NULL) { fprintf(ctx->fp, "Secondary batch at 0x%08"PRIx64" unavailable\n", next_batch.addr); + } else { + gen_print_batch(ctx, next_batch.map, next_batch.size, + next_batch.addr); } - if (second_level) { /* MI_BATCH_BUFFER_START with "2nd Level Batch Buffer" set acts * like a subroutine call. Commands that come afterwards get * processed once the 2nd level batch buffer returns with * MI_BATCH_BUFFER_END. */ - if (next_batch.map) { - gen_print_batch(ctx, next_batch.map, next_batch.size, - next_batch.addr); - } + continue; } else { /* MI_BATCH_BUFFER_START with "2nd Level Batch Buffer" unset acts * like a goto. Nothing after it will ever get processed. In * order to prevent the recursion from growing, we just reset the * loop and continue; */ - if (next_batch.map) { - p = next_batch.map; - end = next_batch.map + next_batch.size; - length = 0; - continue; - } else { - /* Nothing we can do */ - break; - } + break; } } else if (strcmp(inst_name, "MI_BATCH_BUFFER_END") == 0) { break; |