]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/libdrm.git/commitdiff
intel: Move the gen4-6 3DPRIMITIVE handling out of the switch statement.
authorEric Anholt <eric@anholt.net>
Fri, 2 Mar 2012 18:18:51 +0000 (10:18 -0800)
committerEric Anholt <eric@anholt.net>
Sat, 10 Mar 2012 17:23:07 +0000 (09:23 -0800)
intel/intel_decode.c

index 2ea8f67e00d28c582501b3f3cf3ae89c9fc029fd..af621d4fa188dee7bd53775cf7501bb05ebb3d9b 100644 (file)
@@ -3004,6 +3004,22 @@ gen7_3DSTATE_WM(struct drm_intel_decode *ctx)
        return 3;
 }
 
+static int
+gen4_3DPRIMITIVE(struct drm_intel_decode *ctx)
+{
+       instr_out(ctx, 0,
+                 "3DPRIMITIVE: %s %s\n",
+                 get_965_prim_type(ctx->data[0]),
+                 (ctx->data[0] & (1 << 15)) ? "random" : "sequential");
+       instr_out(ctx, 1, "vertex count\n");
+       instr_out(ctx, 2, "start vertex\n");
+       instr_out(ctx, 3, "instance count\n");
+       instr_out(ctx, 4, "start instance\n");
+       instr_out(ctx, 5, "index bias\n");
+
+       return 6;
+}
+
 static int
 decode_3d_965(struct drm_intel_decode *ctx)
 {
@@ -3105,7 +3121,7 @@ decode_3d_965(struct drm_intel_decode *ctx)
                { 0x7918, 0x00ff, 4, 4, "3DSTATE_SO_BUFFER" },
                { 0x7a00, 0x00ff, 4, 6, "PIPE_CONTROL" },
                { 0x7b00, 0x00ff, 7, 7, "3DPRIMITIVE", 7 },
-               { 0x7b00, 0x00ff, 6, 6, "3DPRIMITIVE" },
+               { 0x7b00, 0x00ff, 6, 6, NULL, 0, gen4_3DPRIMITIVE },
        }, *opcode_3d = NULL;
 
        opcode = (data[0] & 0xffff0000) >> 16;
@@ -3593,20 +3609,6 @@ decode_3d_965(struct drm_intel_decode *ctx)
                        instr_out(ctx, 3, "immediate dword high\n");
                        return len;
                }
-       case 0x7b00:
-               if (ctx->gen == 7)
-                       break;
-
-               instr_out(ctx, 0,
-                         "3DPRIMITIVE: %s %s\n",
-                         get_965_prim_type(data[0]),
-                         (data[0] & (1 << 15)) ? "random" : "sequential");
-               instr_out(ctx, 1, "vertex count\n");
-               instr_out(ctx, 2, "start vertex\n");
-               instr_out(ctx, 3, "instance count\n");
-               instr_out(ctx, 4, "start instance\n");
-               instr_out(ctx, 5, "index bias\n");
-               return len;
        }
 
        if (opcode_3d) {