summaryrefslogtreecommitdiff
path: root/tools/intel_dump_decode.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-09 23:19:32 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-09 23:38:29 +0100
commit2ca6c6b4fdd09b99b2456923926cc8d85316f301 (patch)
tree211d8970e31cbefd91c54ead22da65f3658ca486 /tools/intel_dump_decode.c
parent24a33db7f0177e3c0d7cc4686a69ae6e30e09c3b (diff)
tools/intel_dump_decode: use libdrm decoder
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tools/intel_dump_decode.c')
-rw-r--r--tools/intel_dump_decode.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/tools/intel_dump_decode.c b/tools/intel_dump_decode.c
index 26d57f56..a3cd2e59 100644
--- a/tools/intel_dump_decode.c
+++ b/tools/intel_dump_decode.c
@@ -35,10 +35,12 @@
#include <fcntl.h>
#include <getopt.h>
-#include "intel_decode.h"
+#include <intel_bufmgr.h>
+
+struct drm_intel_decode *ctx;
static void
-read_bin_file(uint32_t devid, const char * filename)
+read_bin_file(const char * filename)
{
uint32_t buf[16384];
int fd, offset, ret;
@@ -53,16 +55,19 @@ read_bin_file(uint32_t devid, const char * filename)
exit (1);
}
+ drm_intel_decode_set_dump_past_end(ctx, 1);
+
offset = 0;
while ((ret = read (fd, buf, sizeof(buf))) > 0) {
- intel_decode (buf, ret/4, offset, devid, 1);
+ drm_intel_decode_set_batch_pointer(ctx, buf, offset, ret/4);
+ drm_intel_decode(ctx);
offset += ret;
}
close (fd);
}
static void
-read_data_file(uint32_t devid, const char * filename)
+read_data_file(const char * filename)
{
FILE *file;
uint32_t *data = NULL;
@@ -108,7 +113,8 @@ read_data_file(uint32_t devid, const char * filename)
}
if (count) {
- intel_decode (data, count, gtt_offset, devid, 0);
+ drm_intel_decode_set_batch_pointer(ctx, data, gtt_offset, count);
+ drm_intel_decode(ctx);
}
free (data);
@@ -118,7 +124,7 @@ read_data_file(uint32_t devid, const char * filename)
}
static void
-read_autodetect_file(uint32_t devid, const char * filename)
+read_autodetect_file(const char * filename)
{
int binary = 0, c;
FILE *file;
@@ -141,9 +147,9 @@ read_autodetect_file(uint32_t devid, const char * filename)
fclose(file);
if (binary == 1)
- read_bin_file(devid, filename);
+ read_bin_file(filename);
else
- read_data_file(devid, filename);
+ read_data_file(filename);
}
@@ -180,6 +186,8 @@ main (int argc, char *argv[])
}
}
+ ctx = drm_intel_decode_context_alloc(devid);
+
if (optind == argc) {
fprintf(stderr, "no input file given\n");
exit(-1);
@@ -188,15 +196,15 @@ main (int argc, char *argv[])
for (i = optind; i < argc; i++) {
/* For stdin input, let's read as data file */
if (!strcmp(argv[i], "-")) {
- read_data_file(devid, argv[i]);
+ read_data_file(argv[i]);
continue;
}
if (binary == 1)
- read_bin_file(devid, argv[i]);
+ read_bin_file(argv[i]);
else if (binary == 0)
- read_data_file(devid, argv[i]);
+ read_data_file(argv[i]);
else
- read_autodetect_file(devid, argv[i]);
+ read_autodetect_file(argv[i]);
}
return 0;