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

Identify type field

parent 0a6a8901
...@@ -265,16 +265,26 @@ struct mali_attr { ...@@ -265,16 +265,26 @@ struct mali_attr {
struct mali_attr_meta { struct mali_attr_meta {
u8 index; 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 */ /* After MALI_POSITIVE, 4 for vec4, 1 for scalar, etc */
unsigned nr_components : 2; 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; unsigned unknown2 : 1;
/* If the type is a signed integer, this is set. Otherwise, it is /* If the type is a signed integer, is_int_signed is set. If the type
* clear. */ * is a half-float, it's also set. Otherwise, it is clear. */
unsigned is_int_signed : 1; unsigned is_int_signed : 1;
......
...@@ -639,8 +639,12 @@ panwrap_replay_vertex_or_tiler_job(const struct mali_job_descriptor_header *h, ...@@ -639,8 +639,12 @@ panwrap_replay_vertex_or_tiler_job(const struct mali_job_descriptor_header *h,
panwrap_log("{\n"); panwrap_log("{\n");
panwrap_indent++; panwrap_indent++;
panwrap_prop("index = %d", attr_meta->index); 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)); 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("is_int_signed = %d", attr_meta->is_int_signed);
panwrap_prop("not_normalised = %d", attr_meta->not_normalised); panwrap_prop("not_normalised = %d", attr_meta->not_normalised);
panwrap_prop("unknown1 = 0x%" PRIx64, (u64) attr_meta->unknown1); panwrap_prop("unknown1 = 0x%" PRIx64, (u64) attr_meta->unknown1);
panwrap_prop("unknown2 = 0x%" PRIx64, (u64) attr_meta->unknown2); 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