[Intel-gfx] [PATCH 1/3] intel: Add an interface for setting the output file for decode.

Eric Anholt eric at anholt.net
Wed Jan 4 00:05:24 CET 2012


Consumers often want to choose stdout vs stderr, and for testing I
want to output to an open_memstream file.
---
 intel/intel_bufmgr.h |    2 ++
 intel/intel_decode.c |   14 ++++++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h
index 68017a5..85da8b9 100644
--- a/intel/intel_bufmgr.h
+++ b/intel/intel_bufmgr.h
@@ -34,6 +34,7 @@
 #ifndef INTEL_BUFMGR_H
 #define INTEL_BUFMGR_H
 
+#include <stdio.h>
 #include <stdint.h>
 
 struct drm_clip_rect;
@@ -199,6 +200,7 @@ void drm_intel_decode_set_dump_past_end(struct drm_intel_decode *ctx,
 					int dump_past_end);
 void drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx,
 				    uint32_t head, uint32_t tail);
+void drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, FILE *out);
 void drm_intel_decode(struct drm_intel_decode *ctx);
 
 
diff --git a/intel/intel_decode.c b/intel/intel_decode.c
index e80e840..81ef712 100644
--- a/intel/intel_decode.c
+++ b/intel/intel_decode.c
@@ -33,6 +33,9 @@
 
 /* Struct for tracking drm_intel_decode state. */
 struct drm_intel_decode {
+	/** stdio file where the output should land.  Defaults to stdout. */
+	FILE *out;
+
 	/** PCI device ID. */
 	uint32_t devid;
 
@@ -3558,6 +3561,7 @@ drm_intel_decode_context_alloc(uint32_t devid)
 		return NULL;
 
 	ctx->devid = devid;
+	ctx->out = stdout;
 
 	return ctx;
 }
@@ -3592,6 +3596,13 @@ drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx,
 	ctx->tail = tail;
 }
 
+void
+drm_intel_decode_set_output_file(struct drm_intel_decode *ctx,
+				 FILE *out)
+{
+	ctx->out = out;
+}
+
 /**
  * Decodes an i830-i915 batch buffer, writing the output to stdout.
  *
@@ -3618,12 +3629,11 @@ drm_intel_decode(struct drm_intel_decode *ctx)
 	devid = ctx->devid;
 	head_offset = ctx->head;
 	tail_offset = ctx->tail;
+	out = ctx->out;
 
 	saved_s2_set = 0;
 	saved_s4_set = 1;
 
-	out = stdout;
-
 	while (index < count) {
 		switch ((data[index] & 0xe0000000) >> 29) {
 		case 0x0:
-- 
1.7.7.3




More information about the Intel-gfx mailing list