mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
genxml: forbid usage of L1CC_WBP/L1CC_UC for stateless messages
We want to avoid those settings so that we do not have to emit a tile fence to implement Wa_22013689345. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19322>
This commit is contained in:
parent
945637514e
commit
1d9608be1a
3 changed files with 13 additions and 9 deletions
|
|
@ -6892,8 +6892,8 @@
|
|||
<field name="General State Base Address" start="44" end="95" type="address" />
|
||||
<field name="Stateless Data Port Access MOCS" start="112" end="118" type="uint" nonzero="true" />
|
||||
<field name="L1 Cache Control" start="119" end="121" type="uint" prefix="L1CC">
|
||||
<value name="WBP" value="0" />
|
||||
<value name="UC" value="1" />
|
||||
<value name="WBP" value="0" dont_use="1" />
|
||||
<value name="UC" value="1" dont_use="1" />
|
||||
<value name="WB" value="2" />
|
||||
<value name="WT" value="3" />
|
||||
<value name="WS" value="4" />
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ class Field(object):
|
|||
self.end = int(attrs["end"])
|
||||
self.type = attrs["type"]
|
||||
self.nonzero = bool_from_str(attrs.get("nonzero", "false"))
|
||||
self.prefix = attrs["prefix"] if "prefix" in attrs else None
|
||||
|
||||
assert self.start <= self.end, \
|
||||
'field {} has end ({}) < start ({})'.format(self.name, self.end,
|
||||
|
|
@ -141,11 +142,6 @@ class Field(object):
|
|||
assert self.end == self.start, \
|
||||
'bool field ({}) is too wide'.format(self.name)
|
||||
|
||||
if "prefix" in attrs:
|
||||
self.prefix = attrs["prefix"]
|
||||
else:
|
||||
self.prefix = None
|
||||
|
||||
if "default" in attrs:
|
||||
# Base 0 recognizes 0x, 0o, 0b prefixes in addition to decimal ints.
|
||||
self.default = int(attrs["default"], base=0)
|
||||
|
|
@ -340,6 +336,13 @@ class Group(object):
|
|||
else:
|
||||
address_count = 1
|
||||
|
||||
# Assert in dont_use values
|
||||
for field in dw.fields:
|
||||
for value in field.values:
|
||||
if value.dont_use:
|
||||
print(" assert(values->%s != %s);" %
|
||||
(field.name, field.prefix + "_" + value.name))
|
||||
|
||||
if dw.size == 32 and dw.address == None:
|
||||
v = None
|
||||
print(" dw[%d] =" % index)
|
||||
|
|
@ -423,6 +426,7 @@ class Value(object):
|
|||
def __init__(self, attrs):
|
||||
self.name = safe_name(attrs["name"])
|
||||
self.value = ast.literal_eval(attrs["value"])
|
||||
self.dont_use = int(attrs["dont_use"]) != 0 if "dont_use" in attrs else False
|
||||
|
||||
class Parser(object):
|
||||
def __init__(self):
|
||||
|
|
@ -490,7 +494,7 @@ class Parser(object):
|
|||
if "prefix" in attrs:
|
||||
self.prefix = safe_name(attrs["prefix"])
|
||||
else:
|
||||
self.prefix= None
|
||||
self.prefix = None
|
||||
elif name == "value":
|
||||
self.values.append(Value(attrs))
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ GENXML_DESC = {
|
|||
'struct' : [ 'name', 'length', ],
|
||||
'field' : [ 'name', 'start', 'end', 'type', 'default', 'prefix', 'nonzero' ],
|
||||
'instruction' : [ 'name', 'bias', 'length', 'engine', ],
|
||||
'value' : [ 'name', 'value', ],
|
||||
'value' : [ 'name', 'value', 'dont_use', ],
|
||||
'group' : [ 'count', 'start', 'size', ],
|
||||
'register' : [ 'name', 'length', 'num', ],
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue