asahi: guard darwin stuff

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31908>
This commit is contained in:
Alyssa Rosenzweig 2024-10-07 10:58:56 -04:00
parent a91aecc03f
commit 5f54d8d195
2 changed files with 16 additions and 9 deletions

View file

@ -1127,7 +1127,7 @@
<field name="S Resolve" start="58" size="1" type="bool"/>
</struct>
<struct name="IOGPU Header" size="64">
<struct name="IOGPU Header" size="64" os="darwin">
<field name="Unk 0" start="0:0" size="32" default="0x10000" type="hex"/>
<field name="Total size" start="1:0" size="32" type="uint"/>
<!-- 0x7 in 11.x -->
@ -1140,7 +1140,7 @@
<field name="Encoder" start="14:0" size="64" type="address"/>
</struct>
<struct name="Spill Buffer Histogram" size="60">
<struct name="Spill Buffer Histogram" size="60" os="darwin">
<field name="Bin 0" start="0:0" size="4" type="uint"/>
<field name="Bin 1" start="1:0" size="4" type="uint"/>
<field name="Bin 2" start="2:0" size="4" type="uint"/>
@ -1158,7 +1158,7 @@
<field name="Bin 14" start="14:0" size="4" type="uint"/>
</struct>
<struct name="IOGPU Compute" size="384">
<struct name="IOGPU Compute" size="384" os="darwin">
<field name="Deflake 1" start="20:0" size="64" type="address"/>
<field name="Terminate of encoder" start="22:0" size="64" type="address"/>
<field name="Deflake 2" start="26:0" size="64" type="address"/>
@ -1185,7 +1185,7 @@
<field name="Unk 95" start="95:0" size="32" default="0xffffffff" type="hex"/>
</struct>
<struct name="IOGPU Graphics" size="1920">
<struct name="IOGPU Graphics" size="1920" os="darwin">
<!-- if either deflake address is null, rendering gets flaky for high
geometry counts -->
<field name="Deflake 1" start="22:0" size="64" type="address"/>
@ -1302,7 +1302,7 @@
<field name="Unk 70:0" start="410:0" size="32" default="1" type="uint"/>
</struct>
<struct name="IOGPU Attachment Count" size="16">
<struct name="IOGPU Attachment Count" size="16" os="darwin">
<field name="Count" start="3:0" size="32" type="uint"/>
</struct>

View file

@ -9,6 +9,7 @@ import xml.parsers.expat
import sys
import operator
import math
import platform
from functools import reduce
global_prefix = "agx"
@ -449,6 +450,7 @@ class Parser(object):
self.parser = xml.parsers.expat.ParserCreate()
self.parser.StartElementHandler = self.start_element
self.parser.EndElementHandler = self.end_element
self.os = platform.system().lower()
self.struct = None
self.structs = {}
@ -459,6 +461,9 @@ class Parser(object):
return f'{global_prefix.upper()}_{name}'
def start_element(self, name, attrs):
if "os" in attrs and attrs["os"] != self.os:
return
if name == "genxml":
print(pack_header)
elif name == "struct":
@ -471,7 +476,7 @@ class Parser(object):
self.group.length = int(attrs["size"])
self.group.align = int(attrs["align"]) if "align" in attrs else None
self.structs[attrs["name"]] = self.group
elif name == "field":
elif name == "field" and self.group is not None:
self.group.fields.append(Field(self, attrs))
self.values = []
elif name == "enum":
@ -487,10 +492,12 @@ class Parser(object):
def end_element(self, name):
if name == "struct":
self.emit_struct()
self.struct = None
if self.struct is not None:
self.emit_struct()
self.struct = None
self.group = None
elif name == "field":
elif name == "field" and self.group is not None:
self.group.fields[-1].values = self.values
elif name == "enum":
self.emit_enum()