[intel] all flushing in intelEmitCopyBlit
[mesa.git] / src / mesa / drivers / dri / intel / intel_decode.c
index a1a7ac9ffb0575cdf38446f72c688ab48d8b9584..a1240639f4ee8db2d310c3e011f7c0a3deddbce2 100644 (file)
@@ -112,7 +112,7 @@ decode_mi(uint32_t *data, int count, uint32_t hw_offset, int *failures)
 
     for (opcode = 0; opcode < sizeof(opcodes_mi) / sizeof(opcodes_mi[0]);
         opcode++) {
-       if ((data[0] & 0x1e000000) >> 23 == opcodes_mi[opcode].opcode) {
+       if ((data[0] & 0x1f800000) >> 23 == opcodes_mi[opcode].opcode) {
            unsigned int len = 1, i;
 
            instr_out(data, hw_offset, 0, "%s\n", opcodes_mi[opcode].name);
@@ -214,7 +214,7 @@ decode_2d(uint32_t *data, int count, uint32_t hw_offset, int *failures)
        instr_out(data, hw_offset, 2, "(%d,%d)\n",
                  data[2] & 0xffff, data[2] >> 16);
        instr_out(data, hw_offset, 3, "(%d,%d)\n",
-                 data[2] & 0xffff, data[2] >> 16);
+                 data[3] & 0xffff, data[3] >> 16);
        instr_out(data, hw_offset, 4, "offset 0x%08x\n", data[4]);
        instr_out(data, hw_offset, 5, "color\n");
        return len;
@@ -827,6 +827,8 @@ decode_3d_965(uint32_t *data, int count, uint32_t hw_offset, int *failures)
        { 0x6101, 6, 6, "STATE_BASE_ADDRESS" },
        { 0x6102, 2, 2 , "STATE_SIP" },
        { 0x6104, 1, 1, "3DSTATE_PIPELINE_SELECT" },
+       { 0x680b, 1, 1, "3DSTATE_VF_STATISTICS" },
+       { 0x6904, 1, 1, "3DSTATE_PIPELINE_SELECT" },
        { 0x7800, 7, 7, "3DSTATE_PIPELINED_POINTERS" },
        { 0x7801, 6, 6, "3DSTATE_BINDING_TABLE_POINTERS" },
        { 0x780b, 1, 1, "3DSTATE_VF_STATISTICS" },
@@ -836,11 +838,12 @@ decode_3d_965(uint32_t *data, int count, uint32_t hw_offset, int *failures)
        /* 0x7809: 3DSTATE_VERTEX_ELEMENTS */
        { 0x7900, 4, 4, "3DSTATE_DRAWING_RECTANGLE" },
        { 0x7901, 5, 5, "3DSTATE_CONSTANT_COLOR" },
-       { 0x7905, 5, 5, "3DSTATE_DEPTH_BUFFER" },
+       { 0x7905, 5, 7, "3DSTATE_DEPTH_BUFFER" },
        { 0x7906, 2, 2, "3DSTATE_POLY_STIPPLE_OFFSET" },
        { 0x7907, 33, 33, "3DSTATE_POLY_STIPPLE_PATTERN" },
-       { 0x7909, 2, 2, "3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP" },
        { 0x7908, 3, 3, "3DSTATE_LINE_STIPPLE" },
+       { 0x7909, 2, 2, "3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP" },
+       { 0x790a, 3, 3, "3DSTATE_AA_LINE_PARAMETERS" },
        { 0x7b00, 6, 6, "3DPRIMITIVE" },
     };
 
@@ -918,6 +921,26 @@ decode_3d_965(uint32_t *data, int count, uint32_t hw_offset, int *failures)
 
        return len;
 
+    case 0x7900:
+       if (len != 4)
+           fprintf(out, "Bad count in 3DSTATE_DRAWING_RECTANGLE\n");
+       if (count < 4)
+           BUFFER_FAIL(count, len, "3DSTATE_DRAWING_RECTANGLE");
+
+       instr_out(data, hw_offset, 0,
+                 "3DSTATE_DRAWING_RECTANGLE\n");
+       instr_out(data, hw_offset, 1, "top left: %d,%d\n",
+                 data[1] & 0xffff,
+                 (data[1] >> 16) & 0xffff);
+       instr_out(data, hw_offset, 2, "bottom right: %d,%d\n",
+                 data[2] & 0xffff,
+                 (data[2] >> 16) & 0xffff);
+       instr_out(data, hw_offset, 3, "origin: %d,%d\n",
+                 (int)data[3] & 0xffff,
+                 ((int)data[3] >> 16) & 0xffff);
+
+       return len;
+
     case 0x7905:
        if (len != 5)
            fprintf(out, "Bad count in 3DSTATE_DEPTH_BUFFER\n");