Mesa (main): asahi: Extend IOGPU header to contain encoder
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 6 13:55:47 UTC 2021
Module: Mesa
Branch: main
Commit: 19bb9d278fbc9d7e218ee12b2e066f4d2576ddb3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=19bb9d278fbc9d7e218ee12b2e066f4d2576ddb3
Author: Alyssa Rosenzweig <alyssa at rosenzweig.io>
Date: Mon Jul 5 19:50:13 2021 -0400
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 at rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11730>
---
src/asahi/lib/cmdbuf.xml | 5 ++++-
src/gallium/drivers/asahi/magic.c | 24 ++----------------------
2 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml
index 8398cf29181..43b94a36967 100644
--- a/src/asahi/lib/cmdbuf.xml
+++ b/src/asahi/lib/cmdbuf.xml
@@ -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">
diff --git a/src/gallium/drivers/asahi/magic.c b/src/gallium/drivers/asahi/magic.c
index fc575144298..9d588013957 100644
--- a/src/gallium/drivers/asahi/magic.c
+++ b/src/gallium/drivers/asahi/magic.c
@@ -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;
More information about the mesa-commit
mailing list