summaryrefslogtreecommitdiff
path: root/intel
diff options
context:
space:
mode:
Diffstat (limited to 'intel')
-rw-r--r--intel/intel_decode.c74
1 files changed, 24 insertions, 50 deletions
diff --git a/intel/intel_decode.c b/intel/intel_decode.c
index 61797e1c..6345e877 100644
--- a/intel/intel_decode.c
+++ b/intel/intel_decode.c
@@ -81,7 +81,6 @@ static uint32_t tail_offset = 0xffffffff; /* undefined */
#define BUFFER_FAIL(_count, _len, _name) do { \
fprintf(out, "Buffer size too small in %s (%d < %d)\n", \
(_name), (_count), (_len)); \
- (*failures)++; \
return count; \
} while (0)
@@ -123,7 +122,7 @@ instr_out(uint32_t *data, uint32_t hw_offset, unsigned int index,
}
static int
-decode_mi(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
+decode_mi(uint32_t *data, uint32_t count, uint32_t hw_offset)
{
unsigned int opcode, len = -1;
const char *post_sync_op = "";
@@ -264,7 +263,6 @@ decode_mi(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
}
instr_out(data, hw_offset, 0, "MI UNKNOWN\n");
- (*failures)++;
return 1;
}
@@ -311,7 +309,7 @@ static void decode_2d_br01(uint32_t *data, uint32_t count, uint32_t hw_offset)
}
static int
-decode_2d(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
+decode_2d(uint32_t *data, uint32_t count, uint32_t hw_offset)
{
unsigned int opcode, len;
@@ -492,12 +490,11 @@ decode_2d(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
}
instr_out(data, hw_offset, 0, "2D UNKNOWN\n");
- (*failures)++;
return 1;
}
static int
-decode_3d_1c(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
+decode_3d_1c(uint32_t *data, uint32_t count, uint32_t hw_offset)
{
uint32_t opcode;
@@ -525,7 +522,6 @@ decode_3d_1c(uint32_t *data, uint32_t count, uint32_t hw_offset, int *failures)
instr_out(data, hw_offset, 0, "3D UNKNOWN: 3d_1c opcode = 0x%x\n",
opcode);
- (*failures)++;
return 1;
}
@@ -1175,8 +1171,7 @@ decode_sample_filter(uint32_t mode)
}
static int
-decode_3d_1d(uint32_t *data, uint32_t count,
- uint32_t hw_offset, uint32_t devid, int *failures)
+decode_3d_1d(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid)
{
unsigned int len, i, c, idx, word, map, sampler, instr;
const char *format, *zformat, *type;
@@ -1263,7 +1258,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
}
if (len != i) {
fprintf(out, "Bad count in 3DSTATE_LOAD_INDIRECT\n");
- (*failures)++;
return len;
}
return len;
@@ -1658,7 +1652,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
if (len != i) {
fprintf(out,
"Bad count in 3DSTATE_LOAD_STATE_IMMEDIATE_1\n");
- (*failures)++;
}
return len;
case 0x03:
@@ -1713,7 +1706,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
if (len != i) {
fprintf(out,
"Bad count in 3DSTATE_LOAD_STATE_IMMEDIATE_2\n");
- (*failures)++;
}
return len;
case 0x00:
@@ -1919,7 +1911,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
}
if (len != i) {
fprintf(out, "Bad count in 3DSTATE_MAP_STATE\n");
- (*failures)++;
return len;
}
return len;
@@ -1951,7 +1942,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
if (len != i) {
fprintf(out,
"Bad count in 3DSTATE_PIXEL_SHADER_CONSTANTS\n");
- (*failures)++;
}
return len;
case 0x05:
@@ -1960,7 +1950,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
if ((len - 1) % 3 != 0 || len > 370) {
fprintf(out,
"Bad count in 3DSTATE_PIXEL_SHADER_PROGRAM\n");
- (*failures)++;
}
i = 1;
for (instr = 0; instr < (len - 1) / 3; instr++) {
@@ -2043,7 +2032,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
}
if (len != i) {
fprintf(out, "Bad count in 3DSTATE_SAMPLER_STATE\n");
- (*failures)++;
}
return len;
case 0x85:
@@ -2229,7 +2217,6 @@ decode_3d_1d(uint32_t *data, uint32_t count,
len > opcode_3d_1d->max_len) {
fprintf(out, "Bad count in %s\n",
opcode_3d_1d->name);
- (*failures)++;
}
}
@@ -2246,13 +2233,11 @@ decode_3d_1d(uint32_t *data, uint32_t count,
instr_out(data, hw_offset, 0, "3D UNKNOWN: 3d_1d opcode = 0x%x\n",
opcode);
- (*failures)++;
return 1;
}
static int
-decode_3d_primitive(uint32_t *data, uint32_t count, uint32_t hw_offset,
- int *failures)
+decode_3d_primitive(uint32_t *data, uint32_t count, uint32_t hw_offset)
{
char immediate = (data[0] & (1 << 23)) == 0;
unsigned int len, i, j, ret;
@@ -2473,7 +2458,6 @@ decode_3d_primitive(uint32_t *data, uint32_t count, uint32_t hw_offset,
}
fprintf(out,
"3DPRIMITIVE: no terminator found in index buffer\n");
- (*failures)++;
ret = count;
goto out;
} else {
@@ -2514,8 +2498,7 @@ out:
}
static int
-decode_3d(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid,
- int *failures)
+decode_3d(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid)
{
uint32_t opcode;
unsigned int idx;
@@ -2541,11 +2524,11 @@ decode_3d(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid,
switch (opcode) {
case 0x1f:
- return decode_3d_primitive(data, count, hw_offset, failures);
+ return decode_3d_primitive(data, count, hw_offset);
case 0x1d:
- return decode_3d_1d(data, count, hw_offset, devid, failures);
+ return decode_3d_1d(data, count, hw_offset, devid);
case 0x1c:
- return decode_3d_1c(data, count, hw_offset, failures);
+ return decode_3d_1c(data, count, hw_offset);
}
for (idx = 0; idx < ARRAY_SIZE(opcodes_3d); idx++) {
@@ -2574,7 +2557,6 @@ decode_3d(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid,
}
instr_out(data, hw_offset, 0, "3D UNKNOWN: 3d opcode = 0x%x\n", opcode);
- (*failures)++;
return 1;
}
@@ -2700,8 +2682,8 @@ static const char *get_965_prim_type(uint32_t data)
}
static int
-i965_decode_urb_fence(uint32_t *data, uint32_t hw_offset, int len, uint32_t count,
- int *failures)
+i965_decode_urb_fence(uint32_t *data, uint32_t hw_offset, int len,
+ uint32_t count)
{
uint32_t vs_fence, clip_fence, gs_fence, sf_fence, vfe_fence, cs_fence;
@@ -2776,8 +2758,8 @@ state_max_out(uint32_t *data, uint32_t hw_offset, unsigned int index,
}
static int
-decode_3d_965(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid,
- int *failures)
+decode_3d_965(uint32_t *data, uint32_t count, uint32_t hw_offset,
+ uint32_t devid)
{
uint32_t opcode;
unsigned int idx, len;
@@ -2839,8 +2821,7 @@ decode_3d_965(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid
switch (opcode) {
case 0x6000:
len = (data[0] & 0x000000ff) + 2;
- return i965_decode_urb_fence(data, hw_offset, len, count,
- failures);
+ return i965_decode_urb_fence(data, hw_offset, len, count);
case 0x6001:
instr_out(data, hw_offset, 0, "CS_URB_STATE\n");
instr_out(data, hw_offset, 1,
@@ -3481,13 +3462,12 @@ decode_3d_965(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid
instr_out(data, hw_offset, 0, "3D UNKNOWN: 3d_965 opcode = 0x%x\n",
opcode);
- (*failures)++;
return 1;
}
static int
-decode_3d_i830(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devid,
- int *failures)
+decode_3d_i830(uint32_t *data, uint32_t count, uint32_t hw_offset,
+ uint32_t devid)
{
unsigned int idx;
uint32_t opcode;
@@ -3520,11 +3500,11 @@ decode_3d_i830(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devi
switch (opcode) {
case 0x1f:
- return decode_3d_primitive(data, count, hw_offset, failures);
+ return decode_3d_primitive(data, count, hw_offset);
case 0x1d:
- return decode_3d_1d(data, count, hw_offset, devid, failures);
+ return decode_3d_1d(data, count, hw_offset, devid);
case 0x1c:
- return decode_3d_1c(data, count, hw_offset, failures);
+ return decode_3d_1c(data, count, hw_offset);
}
for (idx = 0; idx < ARRAY_SIZE(opcodes_3d); idx++) {
@@ -3554,7 +3534,6 @@ decode_3d_i830(uint32_t *data, uint32_t count, uint32_t hw_offset, uint32_t devi
instr_out(data, hw_offset, 0, "3D UNKNOWN: 3d_i830 opcode = 0x%x\n",
opcode);
- (*failures)++;
return 1;
}
@@ -3622,7 +3601,6 @@ drm_intel_decode(struct drm_intel_decode *ctx)
{
int ret;
unsigned int index = 0;
- int failures = 0;
uint32_t devid;
if (!ctx)
@@ -3646,7 +3624,7 @@ drm_intel_decode(struct drm_intel_decode *ctx)
switch ((ctx->data[index] & 0xe0000000) >> 29) {
case 0x0:
ret = decode_mi(ctx->data, ctx->count,
- ctx->hw_offset, &failures);
+ ctx->hw_offset);
/* If MI_BATCHBUFFER_END happened, then dump
* the rest of the output in case we some day
@@ -3670,29 +3648,25 @@ drm_intel_decode(struct drm_intel_decode *ctx)
break;
case 0x2:
index += decode_2d(ctx->data, ctx->count,
- ctx->hw_offset, &failures);
+ ctx->hw_offset);
break;
case 0x3:
if (IS_9XX(devid) && !IS_GEN3(devid)) {
index +=
decode_3d_965(ctx->data, ctx->count,
- ctx->hw_offset, devid,
- &failures);
+ ctx->hw_offset, devid);
} else if (IS_GEN3(devid)) {
index += decode_3d(ctx->data, ctx->count,
- ctx->hw_offset,
- devid, &failures);
+ ctx->hw_offset, devid);
} else {
index +=
decode_3d_i830(ctx->data, ctx->count,
- ctx->hw_offset, devid,
- &failures);
+ ctx->hw_offset, devid);
}
break;
default:
instr_out(ctx->data, ctx->hw_offset, index,
"UNKNOWN\n");
- failures++;
index++;
break;
}