Commit ae16a770 authored by Alyssa Rosenzweig's avatar Alyssa Rosenzweig 💜

Identify type field

parent 0a6a8901
......@@ -265,16 +265,26 @@ struct mali_attr {
struct mali_attr_meta {
u8 index;
u64 unknown1 :17;
u64 unknown1 :14;
/* Part of the type specifier, anyway:
* 1: packed (with other encoding weirdness)
* 3: byte
* 4: short
* 5: int
* 7: half, float, packed
*/
unsigned type : 3;
/* After MALI_POSITIVE, 4 for vec4, 1 for scalar, etc */
unsigned nr_components : 2;
/* Somewhat correlated to the opposite of not_normalised? */
/* Somewhat correlated to the opposite of not_normalised, or the opposite of is_half_float? */
unsigned unknown2 : 1;
/* If the type is a signed integer, this is set. Otherwise, it is
* clear. */
/* If the type is a signed integer, is_int_signed is set. If the type
* is a half-float, it's also set. Otherwise, it is clear. */
unsigned is_int_signed : 1;
......
......@@ -639,8 +639,12 @@ panwrap_replay_vertex_or_tiler_job(const struct mali_job_descriptor_header *h,
panwrap_log("{\n");
panwrap_indent++;
panwrap_prop("index = %d", attr_meta->index);
panwrap_prop("type = %d", attr_meta->type);
panwrap_prop("nr_components = MALI_POSITIVE(%d)", MALI_NEGATIVE(attr_meta->nr_components));
/* TODO: Dissect correctly */
panwrap_prop("is_int_signed = %d", attr_meta->is_int_signed);
panwrap_prop("not_normalised = %d", attr_meta->not_normalised);
panwrap_prop("unknown1 = 0x%" PRIx64, (u64) attr_meta->unknown1);
panwrap_prop("unknown2 = 0x%" PRIx64, (u64) attr_meta->unknown2);
......
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