All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t v11 13/17] lib/intel_batchbuffer: dump bb to base64
Date: Tue, 28 Jul 2020 14:13:16 +0200	[thread overview]
Message-ID: <20200728121320.6358-14-zbigniew.kempczynski@intel.com> (raw)
In-Reply-To: <20200728121320.6358-1-zbigniew.kempczynski@intel.com>

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
 lib/intel_batchbuffer.c | 41 +++++++++++++++++++++++++++++++++++++++++
 lib/intel_batchbuffer.h |  2 ++
 2 files changed, 43 insertions(+)

diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 33e5f123..3ae369b7 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -52,6 +52,7 @@
 #include "igt_rand.h"
 #include "i830_reg.h"
 #include "huc_copy.h"
+#include <glib.h>
 
 #include <i915_drm.h>
 
@@ -1495,6 +1496,18 @@ void intel_bb_set_debug(struct intel_bb *ibb, bool debug)
 	ibb->debug = debug;
 }
 
+/**
+ * intel_bb_set_dump_base64:
+ * @ibb: pointer to intel_bb
+ * @dump: true / false
+ *
+ * Do bb dump as base64 string before execbuf call.
+ */
+void intel_bb_set_dump_base64(struct intel_bb *ibb, bool dump)
+{
+	ibb->dump_base64 = dump;
+}
+
 static int __compare_objects(const void *p1, const void *p2)
 {
 	const struct drm_i915_gem_exec_object2 *o1 = p1, *o2 = p2;
@@ -1869,6 +1882,31 @@ static void intel_bb_dump_execbuf(struct intel_bb *ibb,
 	}
 }
 
+#define LINELEN 76
+static void intel_bb_dump_base64(struct intel_bb *ibb)
+{
+	int outsize;
+	gchar *str, *pos;
+
+	igt_info("--- bb ---\n");
+	pos = str = g_base64_encode((const guchar *) ibb->batch, ibb->size);
+	outsize = strlen(str);
+
+	while (pos) {
+		char line[LINELEN + 1];
+		int to_copy = min(LINELEN, outsize);
+
+		memcpy(line, pos, to_copy);
+		line[to_copy] = 0;
+		igt_info("%s\n", line);
+		pos += LINELEN;
+		outsize -= to_copy;
+		if (outsize == 0)
+			break;
+	}
+	free(str);
+}
+
 static void print_node(const void *node, VISIT which, int depth)
 {
 	const struct drm_i915_gem_exec_object2 *object =
@@ -1924,6 +1962,9 @@ int __intel_bb_exec(struct intel_bb *ibb, uint32_t end_offset,
 		execbuf.flags &= ~I915_EXEC_NO_RELOC;
 	execbuf.rsvd2 = 0;
 
+	if (ibb->dump_base64)
+		intel_bb_dump_base64(ibb);
+
 	ret = __gem_execbuf_wr(ibb->i915, &execbuf);
 	if (ret) {
 		intel_bb_dump_execbuf(ibb, &execbuf);
diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
index 477ea423..b8386865 100644
--- a/lib/intel_batchbuffer.h
+++ b/lib/intel_batchbuffer.h
@@ -437,6 +437,7 @@ struct intel_bb {
 	int i915;
 	int gen;
 	bool debug;
+	bool dump_base64;
 	bool enforce_relocs;
 	uint32_t devid;
 	uint32_t handle;
@@ -490,6 +491,7 @@ int intel_bb_sync(struct intel_bb *ibb);
 void intel_bb_print(struct intel_bb *ibb);
 void intel_bb_dump(struct intel_bb *ibb, const char *filename);
 void intel_bb_set_debug(struct intel_bb *ibb, bool debug);
+void intel_bb_set_dump_base64(struct intel_bb *ibb, bool dump);
 
 static inline uint64_t
 intel_bb_set_default_object_alignment(struct intel_bb *ibb, uint64_t alignment)
-- 
2.26.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2020-07-28 12:13 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28 12:13 [igt-dev] [PATCH i-g-t v11 00/17] Remove libdrm in rendercopy Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 01/17] lib/intel_bufops: add mapping on cpu / device Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 02/17] lib/intel_batchbuffer: add new functions to support rendercopy Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 03/17] tests/gem_caching|partial: adopt to batch flush function cleanup Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 04/17] lib/rendercopy: remove libdrm dependency Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 05/17] tests/api_intel_bb: add render tests Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 06/17] lib/intel_batchbuffer: use canonical addresses for 48bit ppgtt Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 07/17] lib/igt_draw: remove libdrm dependency Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 08/17] lib/igt_fb: Removal of " Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 09/17] tests/gem|kms: remove libdrm dependency (batch 1) Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 10/17] tests/gem|kms: remove libdrm dependency (batch 2) Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 11/17] tools/intel_residency: adopt intel_residency to use bufops Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 12/17] tests/perf: remove libdrm dependency for rendercopy Zbigniew Kempczyński
2020-07-28 12:13 ` Zbigniew Kempczyński [this message]
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 14/17] lib/intel_batchbuffer: change alignment constraints on gen3 Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 15/17] tests/api_intel_bb: base64 dumping code Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 16/17] api_intel_bb: temporary tests to check stride on gen3 Zbigniew Kempczyński
2020-07-28 12:13 ` [igt-dev] [PATCH i-g-t v11 17/17] HAX: run rendercopy tests Zbigniew Kempczyński
2020-07-28 13:40 ` [igt-dev] ✗ Fi.CI.BAT: failure for Remove libdrm in rendercopy (rev11) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200728121320.6358-14-zbigniew.kempczynski@intel.com \
    --to=zbigniew.kempczynski@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.