asahi: Extend IOGPU header to contain encoder

Let's squash together all the resulting zeroes. Trying to discern some structure out of this.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730>
This commit is contained in:
Alyssa Rosenzweig 2021-07-05 19:50:13 -04:00 committed by Marge Bot
parent c1d8ed1bc2
commit 19bb9d278f
2 changed files with 6 additions and 23 deletions

View File

@ -465,7 +465,7 @@
<value name="Depth" value="0xC"/>
</enum>
<struct name="IOGPU Header" size="48">
<struct name="IOGPU Header" size="64">
<field name="Unk 0" start="0:0" size="32" default="0x10000" type="hex"/>
<field name="Total size" start="1:0" size="32" type="uint"/>
<field name="Unk 2" start="2:0" size="32" default="0x7" type="hex"/>
@ -473,6 +473,9 @@
<field name="Unk 3" start="9:0" size="32" default="0x18" type="hex"/>
<field name="Attachment offset 2" start="10:0" size="32" type="uint"/>
<field name="Unknown offset" start="11:0" size="32" type="uint"/>
<field name="Unk 4" start="12:0" size="32" default="0x30" type="hex"/>
<field name="Unk 5" start="13:0" size="32" default="0x01" type="hex"/>
<field name="Encoder" start="14:0" size="64" type="address"/>
</struct>
<struct name="IOGPU Attachment" size="24">

View File

@ -71,28 +71,7 @@ demo_cmdbuf(uint64_t *buf, size_t size,
struct cmdbuf *cmdbuf = &_cmdbuf;
/* Vertex stuff */
EMIT_ZERO_WORDS(cmdbuf, 12);
EMIT32(cmdbuf, 0x30); /* 0x30 */
EMIT32(cmdbuf, 0x01); /* 0x34. Compute: 0x03 */
EMIT64(cmdbuf, encoder_ptr);
EMIT_ZERO_WORDS(cmdbuf, 20);
EMIT64(cmdbuf, 0); /* 0x90, compute blob - some zero */
EMIT64(cmdbuf, 0); // blob - 0x540 bytes of zero, compute blob - null
EMIT64(cmdbuf, 0); // blob - 0x280 bytes of zero
EMIT64(cmdbuf, 0); // a8, compute blob - zero pointer
EMIT64(cmdbuf, 0); // compute blob - zero pointer
EMIT64(cmdbuf, 0); // compute blob - zero pointer
EMIT64(cmdbuf, 0); // compute blob - zero pointer
// while zero for vertex, used to include the odd unk6 pattern for compute
EMIT64(cmdbuf, 0); // compute blob - 0x1
EMIT64(cmdbuf, 0); // d0, ompute blob - pointer to odd pattern, compare how it's done later for frag
EMIT_ZERO_WORDS(cmdbuf, 54);
// compute 8 bytes of zero, then reconverge at *
@ -247,6 +226,7 @@ demo_cmdbuf(uint64_t *buf, size_t size,
cfg.attachment_offset_1 = offset_attachments;
cfg.attachment_offset_2 = offset_attachments;
cfg.unknown_offset = offset_unk;
cfg.encoder = encoder_ptr;
}
return total_size;