}
}
-#define FLAG_INFO(flag) { MALI_##flag, "MALI_" #flag }
-static const struct pandecode_flag_info gl_enable_flag_info[] = {
- FLAG_INFO(OCCLUSION_QUERY),
- FLAG_INFO(OCCLUSION_PRECISE),
- FLAG_INFO(FRONT_CCW_TOP),
- FLAG_INFO(CULL_FACE_FRONT),
- FLAG_INFO(CULL_FACE_BACK),
- {}
-};
-#undef FLAG_INFO
-
#define FLAG_INFO(flag) { MALI_CLEAR_##flag, "MALI_CLEAR_" #flag }
static const struct pandecode_flag_info clear_flag_info[] = {
FLAG_INFO(FAST),
pandecode_samplers(p->sampler_descriptor, sampler_count, job_no, is_bifrost);
}
-static void
-pandecode_gl_enables(uint32_t gl_enables, int job_type)
-{
- pandecode_log(".gl_enables = ");
-
- pandecode_log_decoded_flags(gl_enable_flag_info, gl_enables);
-
- pandecode_log_cont(",\n");
-}
-
-static void
-pandecode_vertex_tiler_postfix(const struct mali_vertex_tiler_postfix *p, int job_no, bool is_bifrost)
-{
- if (p->shader & 0xF)
- pandecode_msg("warn: shader tagged %X\n", (unsigned) (p->shader & 0xF));
-
- pandecode_log(".postfix = {\n");
- pandecode_indent++;
-
- pandecode_gl_enables(p->gl_enables, MALI_JOB_TYPE_TILER);
- pandecode_prop("instance_shift = 0x%x", p->instance_shift);
- pandecode_prop("instance_odd = 0x%x", p->instance_odd);
-
- if (p->zero4) {
- pandecode_msg("XXX: vertex only zero tripped");
- pandecode_prop("zero4 = 0x%" PRIx32, p->zero4);
- }
-
- pandecode_prop("offset_start = 0x%x", p->offset_start);
-
- if (p->zero5) {
- pandecode_msg("XXX: vertex only zero tripped");
- pandecode_prop("zero5 = 0x%" PRIx64, p->zero5);
- }
-
- MEMORY_PROP(p, position_varying);
- MEMORY_PROP(p, occlusion_counter);
-
- pandecode_indent--;
- pandecode_log("},\n");
-}
-
static void
pandecode_tiler_heap_meta(mali_ptr gpu_va, int job_no)
{
pandecode_indent++;
pandecode_vertex_tiler_prefix(&v->prefix, job_no, false);
- pandecode_vertex_tiler_postfix(&v->postfix, job_no, true);
+ struct mali_draw_packed draw;
+ memcpy(&draw, &v->postfix, sizeof(draw));
+ DUMP_CL("Draw", DRAW, &draw, 2);
pandecode_indent--;
pandecode_log("};\n");
pandecode_prop("zero6 = 0x%" PRIx64, t->zero6);
}
- pandecode_vertex_tiler_postfix(&t->postfix, job_no, true);
+ struct mali_draw_packed draw;
+ memcpy(&draw, &t->postfix, sizeof(draw));
+ DUMP_CL("Draw", DRAW, &draw, 2);
pandecode_indent--;
pandecode_log("};\n");
pandecode_indent++;
pandecode_vertex_tiler_prefix(&v->prefix, job_no, is_graphics);
- pandecode_vertex_tiler_postfix(&v->postfix, job_no, false);
+
+ struct mali_draw_packed draw;
+ memcpy(&draw, &v->postfix, sizeof(draw));
+ DUMP_CL("Draw", DRAW, &draw, 2);
struct MALI_PRIMITIVE primitive;
struct mali_primitive_packed prim_packed = v->prefix.primitive;