i965/gen8: Print number of instructions directly.
authorMatt Turner <mattst88@gmail.com>
Sun, 25 May 2014 21:59:06 +0000 (14:59 -0700)
committerMatt Turner <mattst88@gmail.com>
Mon, 2 Jun 2014 22:17:30 +0000 (15:17 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen8_fs_generator.cpp
src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp

index 3703368..6d455a3 100644 (file)
@@ -886,6 +886,8 @@ gen8_fs_generator::generate_untyped_surface_read(fs_inst *ir,
 void
 gen8_fs_generator::generate_code(exec_list *instructions)
 {
+   int start_offset = next_inst_offset;
+
    struct annotation_info annotation;
    memset(&annotation, 0, sizeof(annotation));
 
@@ -1250,6 +1252,8 @@ gen8_fs_generator::generate_code(exec_list *instructions)
    patch_jump_targets();
    annotation_finalize(&annotation, next_inst_offset);
 
+   int before_size = next_inst_offset - start_offset;
+
    if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
       if (prog) {
          fprintf(stderr,
@@ -1264,6 +1268,8 @@ gen8_fs_generator::generate_code(exec_list *instructions)
          fprintf(stderr, "Native code for blorp program (SIMD%d dispatch):\n",
                  dispatch_width);
       }
+      fprintf(stderr, "SIMD%d shader: %d instructions.\n",
+              dispatch_width, before_size / 16);
 
       dump_assembly(store, annotation.ann_count, annotation.ann, brw, prog,
                     gen8_disassemble);
index c319ed5..14070cd 100644 (file)
@@ -886,6 +886,8 @@ gen8_vec4_generator::generate_code(exec_list *instructions)
    patch_jump_targets();
    annotation_finalize(&annotation, next_inst_offset);
 
+   int before_size = next_inst_offset;
+
    if (unlikely(debug_flag)) {
       if (shader_prog) {
          fprintf(stderr, "Native code for %s vertex shader %d:\n",
@@ -894,6 +896,7 @@ gen8_vec4_generator::generate_code(exec_list *instructions)
       } else {
          fprintf(stderr, "Native code for vertex program %d:\n", prog->Id);
       }
+      fprintf(stderr, "vec4 shader: %d instructions.\n", before_size / 16);
 
       dump_assembly(store, annotation.ann_count, annotation.ann,
                     brw, prog, gen8_disassemble);