i965: Use brw_dump_compile for clip, SF, and old GS programs.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 15 May 2014 21:12:48 +0000 (14:12 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 19 May 2014 06:35:17 +0000 (23:35 -0700)
Looping over the instructions and calling brw_disasm doesn't handle
compacted instructions.  In most cases, this hasn't been a problem since
we don't compact prior to Sandybridge.

However, Sandybridge's transform feedback GS program should already be
compacted, and so this ought to fix decoding of that.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_clip.c
src/mesa/drivers/dri/i965/brw_gs.c
src/mesa/drivers/dri/i965/brw_sf.c

index 1c54b918d73cf323334a1a732ad3425d37396c63..a164d15998e4b83ca37184e7bfb9782c4dea0810 100644 (file)
@@ -55,7 +55,6 @@ static void compile_clip_prog( struct brw_context *brw,
    const GLuint *program;
    void *mem_ctx;
    GLuint program_size;
-   GLuint i;
 
    memset(&c, 0, sizeof(c));
 
@@ -119,9 +118,7 @@ static void compile_clip_prog( struct brw_context *brw,
 
    if (unlikely(INTEL_DEBUG & DEBUG_CLIP)) {
       fprintf(stderr, "clip:\n");
-      for (i = 0; i < program_size / sizeof(struct brw_instruction); i++)
-        brw_disasm(stderr, &((struct brw_instruction *)program)[i],
-                   brw->gen, false);
+      brw_dump_compile(brw, c.func.store, 0, program_size, stderr);
       fprintf(stderr, "\n");
    }
 
index eaa527f778ffe694c7f735b426c02d5399c28696..72e5f5a14a859ef768e9d4484d1fb1bfeaa15587 100644 (file)
@@ -135,12 +135,8 @@ static void compile_ff_gs_prog(struct brw_context *brw,
    program = brw_get_program(&c.func, &program_size);
 
    if (unlikely(INTEL_DEBUG & DEBUG_GS)) {
-      int i;
-
       fprintf(stderr, "gs:\n");
-      for (i = 0; i < program_size / sizeof(struct brw_instruction); i++)
-        brw_disasm(stderr, &((struct brw_instruction *)program)[i],
-                   brw->gen, false);
+      brw_dump_compile(brw, c.func.store, 0, program_size, stderr);
       fprintf(stderr, "\n");
     }
 
index 401fa7bf45a435d89ff3c7c737a4a7547245ed3d..5556c46d377760e2803e4c430c49d6a8ac3d1007 100644 (file)
@@ -54,7 +54,6 @@ static void compile_sf_prog( struct brw_context *brw,
    const GLuint *program;
    void *mem_ctx;
    GLuint program_size;
-   GLuint i;
 
    memset(&c, 0, sizeof(c));
 
@@ -118,9 +117,7 @@ static void compile_sf_prog( struct brw_context *brw,
 
    if (unlikely(INTEL_DEBUG & DEBUG_SF)) {
       fprintf(stderr, "sf:\n");
-      for (i = 0; i < program_size / sizeof(struct brw_instruction); i++)
-        brw_disasm(stderr, &((struct brw_instruction *)program)[i],
-                   brw->gen, false);
+      brw_dump_compile(brw, c.func.store, 0, program_size, stderr);
       fprintf(stderr, "\n");
    }