[Mesa-dev] [PATCH 08/10] i965: Pass brw_context and assembly separately to brw_dump_compile.

Matt Turner mattst88 at gmail.com
Tue May 13 14:52:12 PDT 2014


brw_dump_compile will be called indirectly by code common used by
generations before and after the gen8 instruction format change.
---
 src/mesa/drivers/dri/i965/brw_blorp_clear.cpp    | 2 +-
 src/mesa/drivers/dri/i965/brw_eu.c               | 8 +++-----
 src/mesa/drivers/dri/i965/brw_eu.h               | 3 ++-
 src/mesa/drivers/dri/i965/brw_eu_compact.c       | 2 +-
 src/mesa/drivers/dri/i965/brw_fs_generator.cpp   | 5 ++---
 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 6 +++---
 6 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
index 9f0f514..2bb08de 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
@@ -486,7 +486,7 @@ brw_blorp_const_color_program::compile(struct brw_context *brw,
 
    if (unlikely(INTEL_DEBUG & DEBUG_BLORP)) {
       fprintf(stderr, "Native code for BLORP clear:\n");
-      brw_dump_compile(&func, stderr, 0, func.next_insn_offset);
+      brw_dump_compile(brw, &func.store, 0, func.next_insn_offset, stderr);
       fprintf(stderr, "\n");
    }
 
diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c
index d8a3543..90e84f8 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.c
+++ b/src/mesa/drivers/dri/i965/brw_eu.c
@@ -254,14 +254,12 @@ const unsigned *brw_get_program( struct brw_compile *p,
 }
 
 void
-brw_dump_compile(struct brw_compile *p, FILE *out, int start, int end)
+brw_dump_compile(struct brw_context *brw, void *assembly, int start, int end, FILE *out)
 {
-   struct brw_context *brw = p->brw;
-   void *store = p->store;
    bool dump_hex = false;
 
    for (int offset = start; offset < end;) {
-      struct brw_instruction *insn = store + offset;
+      struct brw_instruction *insn = assembly + offset;
       struct brw_instruction uncompacted;
       bool compacted = insn->header.cmpt_control;
       fprintf(out, "0x%08x: ", offset);
@@ -288,6 +286,6 @@ brw_dump_compile(struct brw_compile *p, FILE *out, int start, int end)
 	 offset += 16;
       }
 
-      brw_disasm(out, insn, p->brw->gen, compacted);
+      brw_disasm(out, insn, brw->gen, compacted);
    }
 }
diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h
index f10ad50..933477d 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.h
+++ b/src/mesa/drivers/dri/i965/brw_eu.h
@@ -110,7 +110,8 @@ void brw_set_acc_write_control(struct brw_compile *p, unsigned value);
 
 void brw_init_compile(struct brw_context *, struct brw_compile *p,
 		      void *mem_ctx);
-void brw_dump_compile(struct brw_compile *p, FILE *out, int start, int end);
+void brw_dump_compile(struct brw_context *brw, void *assembly,
+                      int start,int end, FILE *out);
 const unsigned *brw_get_program( struct brw_compile *p, unsigned *sz );
 
 struct brw_instruction *brw_next_insn(struct brw_compile *p, unsigned opcode);
diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c
index fd05ce2..d8869c0 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_compact.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c
@@ -786,7 +786,7 @@ brw_compact_instructions(struct brw_compile *p)
 
    if (0) {
       fprintf(stderr, "dumping compacted program\n");
-      brw_dump_compile(p, stderr, 0, p->next_insn_offset);
+      brw_dump_compile(brw, p->store, 0, p->next_insn_offset, stderr);
 
       int cmp = 0;
       for (offset = 0; offset < p->next_insn_offset;) {
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index a9a16ee..f8819da 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -1802,8 +1802,7 @@ fs_generator::generate_code(exec_list *instructions, FILE *dump_file)
       }
 
       if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
-	 brw_dump_compile(p, stderr,
-			  last_native_insn_offset, p->next_insn_offset);
+	 brw_dump_compile(brw, p->store, last_native_insn_offset, p->next_insn_offset, stderr);
 
 	 foreach_list(node, &cfg->block_list) {
 	    bblock_link *link = (bblock_link *)node;
@@ -1837,7 +1836,7 @@ fs_generator::generate_code(exec_list *instructions, FILE *dump_file)
     * case you're doing that.
     */
    if (dump_file) {
-      brw_dump_compile(p, dump_file, 0, p->next_insn_offset);
+      brw_dump_compile(brw, p->store, 0, p->next_insn_offset, dump_file);
    }
 }
 
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
index 305a94c..cd9c562 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
@@ -1334,8 +1334,8 @@ vec4_generator::generate_code(exec_list *instructions)
       }
 
       if (unlikely(debug_flag)) {
-	 brw_dump_compile(p, stderr,
-			  last_native_insn_offset, p->next_insn_offset);
+	 brw_dump_compile(brw, p->store,
+			  last_native_insn_offset, p->next_insn_offset, stderr);
       }
 
       last_native_insn_offset = p->next_insn_offset;
@@ -1353,7 +1353,7 @@ vec4_generator::generate_code(exec_list *instructions)
     * case you're doing that.
     */
    if (0 && unlikely(debug_flag)) {
-      brw_dump_compile(p, stderr, 0, p->next_insn_offset);
+      brw_dump_compile(brw, p->store, 0, p->next_insn_offset, stderr);
    }
 }
 
-- 
1.8.3.2



More information about the mesa-dev mailing list