aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-07-30 11:29:26 -0700
committerEric Anholt <[email protected]>2018-07-30 14:29:01 -0700
commit103f21b13d839ccd011b06b5708e7b9c1b8d228e (patch)
treef0241ecd2d66b47bec6c26d4b55a54de6541219b
parent89ac6fa4036da815b5cf4985f438cec73df67480 (diff)
v3d: Add a separate flag for CLIF ABI output versus human-readable CLs.
A few of the upcoming changes would make the V3D_DEBUG=cl output less readable, so let's make proper CLIF file production be under a separate V3D_DEBUG=clif flag.
-rw-r--r--src/broadcom/clif/clif_dump.c3
-rw-r--r--src/broadcom/clif/clif_dump.h2
-rw-r--r--src/broadcom/clif/clif_private.h6
-rw-r--r--src/broadcom/common/v3d_debug.c1
-rw-r--r--src/broadcom/common/v3d_debug.h1
-rw-r--r--src/gallium/drivers/v3d/v3d_job.c5
-rw-r--r--src/gallium/drivers/vc4/vc4_cl_dump.c2
7 files changed, 15 insertions, 5 deletions
diff --git a/src/broadcom/clif/clif_dump.c b/src/broadcom/clif/clif_dump.c
index 6bee7a481b0..a637ba5999f 100644
--- a/src/broadcom/clif/clif_dump.c
+++ b/src/broadcom/clif/clif_dump.c
@@ -51,13 +51,14 @@ clif_dump_add_address_to_worklist(struct clif_dump *clif,
struct clif_dump *
clif_dump_init(const struct v3d_device_info *devinfo,
- FILE *out)
+ FILE *out, bool pretty)
{
struct clif_dump *clif = rzalloc(NULL, struct clif_dump);
clif->devinfo = devinfo;
clif->out = out;
clif->spec = v3d_spec_load(devinfo);
+ clif->pretty = pretty;
list_inithead(&clif->worklist);
diff --git a/src/broadcom/clif/clif_dump.h b/src/broadcom/clif/clif_dump.h
index f89447b9bd9..f0a8f9a1f14 100644
--- a/src/broadcom/clif/clif_dump.h
+++ b/src/broadcom/clif/clif_dump.h
@@ -31,7 +31,7 @@ struct v3d_device_info;
struct clif_dump;
struct clif_dump *clif_dump_init(const struct v3d_device_info *devinfo,
- FILE *output);
+ FILE *output, bool pretty);
void clif_dump(struct clif_dump *clif);
void clif_dump_destroy(struct clif_dump *clif);
diff --git a/src/broadcom/clif/clif_private.h b/src/broadcom/clif/clif_private.h
index ea96784289a..8753ba229f8 100644
--- a/src/broadcom/clif/clif_private.h
+++ b/src/broadcom/clif/clif_private.h
@@ -47,6 +47,12 @@ struct clif_dump {
struct clif_bo *bo;
int bo_count;
int bo_array_size;
+
+ /**
+ * Flag to switch from CLIF ABI to slightly more human-readable
+ * output.
+ */
+ bool pretty;
};
enum reloc_worklist_type {
diff --git a/src/broadcom/common/v3d_debug.c b/src/broadcom/common/v3d_debug.c
index 4fe86980188..97404448e58 100644
--- a/src/broadcom/common/v3d_debug.c
+++ b/src/broadcom/common/v3d_debug.c
@@ -41,6 +41,7 @@ uint32_t V3D_DEBUG = 0;
static const struct debug_control debug_control[] = {
{ "cl", V3D_DEBUG_CL},
+ { "clif", V3D_DEBUG_CLIF},
{ "qpu", V3D_DEBUG_QPU},
{ "vir", V3D_DEBUG_VIR},
{ "nir", V3D_DEBUG_NIR},
diff --git a/src/broadcom/common/v3d_debug.h b/src/broadcom/common/v3d_debug.h
index 75eb2718f30..d9f5255e216 100644
--- a/src/broadcom/common/v3d_debug.h
+++ b/src/broadcom/common/v3d_debug.h
@@ -54,6 +54,7 @@ extern uint32_t V3D_DEBUG;
#define V3D_DEBUG_PERF (1 << 10)
#define V3D_DEBUG_NORAST (1 << 11)
#define V3D_DEBUG_ALWAYS_FLUSH (1 << 12)
+#define V3D_DEBUG_CLIF (1 << 13)
#ifdef HAVE_ANDROID_PLATFORM
#define LOG_TAG "BROADCOM-MESA"
diff --git a/src/gallium/drivers/v3d/v3d_job.c b/src/gallium/drivers/v3d/v3d_job.c
index 54b2c8dfac7..d7df04c03c9 100644
--- a/src/gallium/drivers/v3d/v3d_job.c
+++ b/src/gallium/drivers/v3d/v3d_job.c
@@ -344,11 +344,12 @@ v3d_get_job_for_fbo(struct v3d_context *v3d)
static void
v3d_clif_dump(struct v3d_context *v3d, struct v3d_job *job)
{
- if (!(V3D_DEBUG & V3D_DEBUG_CL))
+ if (!(V3D_DEBUG & (V3D_DEBUG_CL | V3D_DEBUG_CLIF)))
return;
struct clif_dump *clif = clif_dump_init(&v3d->screen->devinfo,
- stderr);
+ stderr,
+ V3D_DEBUG & V3D_DEBUG_CL);
struct set_entry *entry;
set_foreach(job->bos, entry) {
diff --git a/src/gallium/drivers/vc4/vc4_cl_dump.c b/src/gallium/drivers/vc4/vc4_cl_dump.c
index bb26b057a44..a6ae0cf80d7 100644
--- a/src/gallium/drivers/vc4/vc4_cl_dump.c
+++ b/src/gallium/drivers/vc4/vc4_cl_dump.c
@@ -42,7 +42,7 @@ vc4_dump_cl(void *cl, uint32_t size, bool is_render)
};
struct v3d_spec *spec = v3d_spec_load(&devinfo);
- struct clif_dump *clif = clif_dump_init(&devinfo, stderr);
+ struct clif_dump *clif = clif_dump_init(&devinfo, stderr, true);
uint32_t offset = 0, hw_offset = 0;
uint8_t *p = cl;