+ switch (contents) {
+ case QUNIFORM_CONSTANT:
+ fprintf(stderr, "0x%08x / %f", data, uif(data));
+ break;
+
+ case QUNIFORM_UNIFORM:
+ fprintf(stderr, "push[%d]", data);
+ break;
+
+ case QUNIFORM_TEXTURE_CONFIG_P1:
+ fprintf(stderr, "tex[%d].p1", data);
+ break;
+
+ case QUNIFORM_TMU_CONFIG_P0:
+ fprintf(stderr, "tex[%d].p0 | 0x%x",
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
+ break;
+
+ case QUNIFORM_TMU_CONFIG_P1:
+ fprintf(stderr, "tex[%d].p1 | 0x%x",
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
+ break;
+
+ case QUNIFORM_IMAGE_TMU_CONFIG_P0:
+ fprintf(stderr, "img[%d].p0 | 0x%x",
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
+ break;
+
+ case QUNIFORM_TEXTURE_WIDTH:
+ fprintf(stderr, "tex[%d].width", data);
+ break;
+ case QUNIFORM_TEXTURE_HEIGHT:
+ fprintf(stderr, "tex[%d].height", data);
+ break;
+ case QUNIFORM_TEXTURE_DEPTH:
+ fprintf(stderr, "tex[%d].depth", data);
+ break;
+ case QUNIFORM_TEXTURE_ARRAY_SIZE:
+ fprintf(stderr, "tex[%d].array_size", data);
+ break;
+ case QUNIFORM_TEXTURE_LEVELS:
+ fprintf(stderr, "tex[%d].levels", data);
+ break;
+
+ case QUNIFORM_IMAGE_WIDTH:
+ fprintf(stderr, "img[%d].width", data);
+ break;
+ case QUNIFORM_IMAGE_HEIGHT:
+ fprintf(stderr, "img[%d].height", data);
+ break;
+ case QUNIFORM_IMAGE_DEPTH:
+ fprintf(stderr, "img[%d].depth", data);
+ break;
+ case QUNIFORM_IMAGE_ARRAY_SIZE:
+ fprintf(stderr, "img[%d].array_size", data);
+ break;
+
+ case QUNIFORM_SPILL_OFFSET:
+ fprintf(stderr, "spill_offset");
+ break;
+
+ case QUNIFORM_SPILL_SIZE_PER_THREAD:
+ fprintf(stderr, "spill_size_per_thread");
+ break;
+
+ case QUNIFORM_UBO_ADDR:
+ fprintf(stderr, "ubo[%d]+0x%x",
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
+ break;
+
+ case QUNIFORM_SSBO_OFFSET:
+ fprintf(stderr, "ssbo[%d]", data);
+ break;
+
+ case QUNIFORM_GET_BUFFER_SIZE:
+ fprintf(stderr, "ssbo_size[%d]", data);
+ break;
+
+ case QUNIFORM_NUM_WORK_GROUPS:
+ fprintf(stderr, "num_wg.%c", data < 3 ? "xyz"[data] : '?');
+ break;
+
+ default:
+ if (quniform_contents_is_texture_p0(contents)) {
+ fprintf(stderr, "tex[%d].p0: 0x%08x",
+ contents - QUNIFORM_TEXTURE_CONFIG_P0_0,
+ data);
+ } else if (contents < ARRAY_SIZE(quniform_names) &&
+ quniform_names[contents]) {
+ fprintf(stderr, "%s",
+ quniform_names[contents]);
+ } else {
+ fprintf(stderr, "%d / 0x%08x", contents, data);
+ }
+ }
+}
+
+static void
+vir_print_reg(struct v3d_compile *c, const struct qinst *inst,
+ struct qreg reg)
+{