pan/genxml/v9+: Add support for NullDescriptor decode
It's now valuable to know whether a decoded descriptor is completely zeroed (NullDescriptor) or invalid. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35609>
This commit is contained in:
committed by
Marge Bot
parent
01d20680e2
commit
bbe3c7e1a3
@@ -455,9 +455,14 @@ pandecode_resources(struct pandecode_context *ctx, uint64_t addr, unsigned size)
|
||||
assert((size % 0x20) == 0);
|
||||
|
||||
for (unsigned i = 0; i < size; i += 0x20) {
|
||||
unsigned type = (cl[i] & 0xF);
|
||||
|
||||
switch (type) {
|
||||
pan_unpack((const struct mali_descriptor_header_packed *)&cl[i],
|
||||
DESCRIPTOR_HEADER, header)
|
||||
;
|
||||
switch (header.type) {
|
||||
case MALI_DESCRIPTOR_TYPE_NULL:
|
||||
DUMP_CL(ctx, NULL_DESCRIPTOR, cl + i, "NullDescriptor @%" PRIx64 "\n",
|
||||
addr + i);
|
||||
break;
|
||||
case MALI_DESCRIPTOR_TYPE_SAMPLER:
|
||||
DUMP_CL(ctx, SAMPLER, cl + i, "Sampler @%" PRIx64 ":\n", addr + i);
|
||||
break;
|
||||
@@ -472,7 +477,7 @@ pandecode_resources(struct pandecode_context *ctx, uint64_t addr, unsigned size)
|
||||
DUMP_CL(ctx, BUFFER, cl + i, "Buffer @%" PRIx64 ":\n", addr + i);
|
||||
break;
|
||||
default:
|
||||
fprintf(ctx->dump_stream, "Unknown descriptor type %X\n", type);
|
||||
fprintf(ctx->dump_stream, "Unknown descriptor type %X\n", header.type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
</enum>
|
||||
|
||||
<enum name="Descriptor Type">
|
||||
<value name="Null" value="0"/>
|
||||
<value name="Sampler" value="1"/>
|
||||
<value name="Texture" value="2"/>
|
||||
<value name="Attribute" value="5"/>
|
||||
@@ -920,6 +921,15 @@
|
||||
<value name="TEM_ROW_STRIDE" value="46"/>
|
||||
</enum>
|
||||
|
||||
<struct name="Descriptor Header" size="1" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
<field name="Ignore" size="28" start="0:4" type="uint"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Null Descriptor" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Attribute" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Attribute"/>
|
||||
<field name="Attribute type" size="4" start="0:4" type="Attribute Type"/>
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
</enum>
|
||||
|
||||
<enum name="Descriptor Type">
|
||||
<value name="Null" value="0"/>
|
||||
<value name="Sampler" value="1"/>
|
||||
<value name="Texture" value="2"/>
|
||||
<value name="Attribute" value="5"/>
|
||||
@@ -1156,6 +1157,15 @@
|
||||
<value name="ITER_TRACE_ID1" value="63"/>
|
||||
</enum>
|
||||
|
||||
<struct name="Descriptor Header" size="1" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
<field name="Ignore" size="28" start="0:4" type="uint"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Null Descriptor" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Attribute" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Attribute"/>
|
||||
<field name="Attribute type" size="4" start="0:4" type="Attribute Type"/>
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
</enum>
|
||||
|
||||
<enum name="Descriptor Type">
|
||||
<value name="Null" value="0"/>
|
||||
<value name="Sampler" value="1"/>
|
||||
<value name="Texture" value="2"/>
|
||||
<value name="Attribute" value="5"/>
|
||||
@@ -1465,6 +1466,15 @@
|
||||
<value name="ITER_TRACE_ID1" value="63"/>
|
||||
</enum>
|
||||
|
||||
<struct name="Descriptor Header" size="1" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
<field name="Ignore" size="28" start="0:4" type="uint"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Null Descriptor" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Attribute" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Attribute"/>
|
||||
<field name="Attribute type" size="4" start="0:4" type="Attribute Type"/>
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
</enum>
|
||||
|
||||
<enum name="Descriptor Type">
|
||||
<value name="Null" value="0"/>
|
||||
<value name="Sampler" value="1"/>
|
||||
<value name="Texture" value="2"/>
|
||||
<value name="Attribute" value="5"/>
|
||||
@@ -467,6 +468,15 @@
|
||||
<value name="Instance" value="1"/>
|
||||
</enum>
|
||||
|
||||
<struct name="Descriptor Header" size="1" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
<field name="Ignore" size="28" start="0:4" type="uint"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Null Descriptor" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Null"/>
|
||||
</struct>
|
||||
|
||||
<struct name="Attribute" size="8" align="32">
|
||||
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Attribute"/>
|
||||
<field name="Attribute type" size="4" start="0:4" type="Attribute Type"/>
|
||||
|
||||
Reference in New Issue
Block a user