Commit 5ba2d9df authored by Alyssa Rosenzweig's avatar Alyssa Rosenzweig 💜

Decode texture meta trampoline

parent cc12aedd
......@@ -135,8 +135,14 @@ struct mali_payload_vertex_tiler {
u32 zero5;
uintptr_t unknown0;
uintptr_t unknown1; /* pointer */
uintptr_t texture_meta_address;
/* For reasons I don't quite understand this is a pointer to a pointer.
* That second pointer points to the actual texture descriptor. */
uintptr_t texture_meta_trampoline;
/* Speculation: points to sampler descriptor? */
uintptr_t texture_unknown;
uintptr_t uniforms;
u8 flags : 4;
uintptr_t _shader_upper : MALI_SHORT_PTR_BITS - 4; /* struct shader_meta */
......
......@@ -262,7 +262,7 @@ void panwrap_replay_vertex_or_tiler_job(const struct mali_job_descriptor_header
MEMORY_PROP(v, unknown0);
MEMORY_PROP(v, unknown1); /* pointer */
MEMORY_PROP(v, texture_meta_address);
MEMORY_PROP(v, texture_meta_trampoline);
MEMORY_PROP(v, texture_unknown);
MEMORY_PROP(v, uniforms);
MEMORY_PROP(v, attributes); /* struct attribute_buffer[] */
......@@ -464,6 +464,21 @@ void panwrap_replay_vertex_or_tiler_job(const struct mali_job_descriptor_header
TOUCH(umem, v->unknown6, *u, "unknown6", job_no);
}
}
if (v->texture_meta_trampoline) {
struct panwrap_mapped_memory *mmem = panwrap_find_mapped_gpu_mem_containing(v->texture_meta_trampoline);
if (mmem) {
mali_ptr *PANWRAP_PTR_VAR(u, mmem, v->texture_meta_trampoline);
char *a = pointer_as_memory_reference(*u);
panwrap_log("uint64_t texture_meta_trampoline_%d = %s;", job_no, a);
free(a);
TOUCH(mmem, v->texture_meta_trampoline, *u, "texture_meta_trampoline", job_no);
}
}
}
static void panwrap_replay_fragment_job(const struct panwrap_mapped_memory *mem,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment