pan/genxml: Introduce per-type plane descriptors

It makes it easier to decipher when reading a dump, and it will also
make overlapping fields impossible to set twice once we've converted the
texture logic to use those.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Tested-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35555>
This commit is contained in:
Boris Brezillon
2025-06-16 09:58:44 +02:00
parent 5b654a07b1
commit 442be34441
5 changed files with 497 additions and 2 deletions
+43 -2
View File
@@ -313,6 +313,48 @@ pandecode_texture_payload(struct pandecode_context *ctx, uint64_t payload,
}
#endif
#if PAN_ARCH >= 9
static void
pandecode_tex_plane(struct pandecode_context *ctx, uint64_t u, unsigned idx)
{
const struct mali_plane_header_packed *cl =
pandecode_fetch_gpu_mem(ctx, u, pan_size(PLANE_HEADER));
pan_unpack(cl, PLANE_HEADER, temp);
switch (temp.plane_type) {
case MALI_PLANE_TYPE_NULL:
DUMP_ADDR(ctx, NULL_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_GENERIC:
DUMP_ADDR(ctx, GENERIC_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_CHROMA_2P:
DUMP_ADDR(ctx, CHROMA_2P_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_ASTC_2D:
DUMP_ADDR(ctx, ASTC_2D_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_ASTC_3D:
DUMP_ADDR(ctx, ASTC_3D_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_AFBC:
DUMP_ADDR(ctx, AFBC_PLANE, u, "Plane %u:\n", idx);
break;
#if PAN_ARCH >= 10
case MALI_PLANE_TYPE_AFRC:
DUMP_ADDR(ctx, AFRC_PLANE, u, "Plane %u:\n", idx);
break;
case MALI_PLANE_TYPE_AFRC_CHROMA_2P:
DUMP_ADDR(ctx, AFRC_CHROMA_2P_PLANE, u, "Plane %u:\n", idx);
break;
#endif
default:
unreachable("Unknown plane type");
}
}
#endif
#if PAN_ARCH <= 5
void
GENX(pandecode_texture)(struct pandecode_context *ctx, uint64_t u, unsigned tex)
@@ -345,8 +387,7 @@ GENX(pandecode_texture)(struct pandecode_context *ctx,
plane_count *= 6;
for (unsigned i = 0; i < plane_count; ++i)
DUMP_ADDR(ctx, PLANE, temp.surfaces + i * pan_size(PLANE), "Plane %u:\n",
i);
pandecode_tex_plane(ctx, temp.surfaces + i * pan_size(NULL_PLANE), i);
#else
pandecode_texture_payload(ctx, temp.surfaces, &temp);
#endif
+117
View File
@@ -1373,6 +1373,123 @@
<field name="Depth" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Plane Header" size="1" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
<field name="Ignore" size="24" start="0:8" type="uint"/>
</struct>
<struct name="Null Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
</struct>
<struct name="Generic Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Generic"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 2D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 2D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="3" start="26" type="ASTC 2D Dimension"/>
<field name="Block height" size="3" start="29" type="ASTC 2D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 3D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 3D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="2" start="26" type="ASTC 3D Dimension"/>
<field name="Block height" size="2" start="28" type="ASTC 3D Dimension"/>
<field name="Block depth" size="2" start="30" type="ASTC 3D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFBC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFBC"/>
<field name="Superblock size" size="3" start="0:8" type="AFBC Superblock Size"/>
<field name="YTR" size="1" start="0:16" type="bool"/>
<field name="Split block" size="1" start="0:17" type="bool"/>
<field name="Alpha hint" size="1" start="0:18" type="bool"/>
<field name="Tiled header" size="1" start="0:19" type="bool"/>
<field name="Prefetch" size="1" start="0:20" type="bool"/>
<field name="Compression mode" size="6" start="0:26" type="AFBC Compression Mode"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Header row stride" size="32" start="4:0" type="uint"/>
<field name="Header slice size" size="32" start="5:0" type="uint"/>
<field name="Header slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Chroma 2p"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<struct name="AFRC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFRC Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC Chroma 2p"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<enum name="Shader Register Allocation">
<value name="64 Per Thread" value="0"/>
<value name="32 Per Thread" value="2"/>
+129
View File
@@ -1634,6 +1634,135 @@
<field name="Depth" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Plane Header" size="1" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
<field name="Ignore" size="24" start="0:8" type="uint"/>
</struct>
<struct name="Null Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
</struct>
<struct name="Generic Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Generic"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 2D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 2D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="3" start="26" type="ASTC 2D Dimension"/>
<field name="Block height" size="3" start="29" type="ASTC 2D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 3D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 3D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="2" start="26" type="ASTC 3D Dimension"/>
<field name="Block height" size="2" start="28" type="ASTC 3D Dimension"/>
<field name="Block depth" size="2" start="30" type="ASTC 3D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFBC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFBC"/>
<field name="Superblock size" size="3" start="0:8" type="AFBC Superblock Size"/>
<field name="YTR" size="1" start="0:16" type="bool"/>
<field name="Split block" size="1" start="0:17" type="bool"/>
<field name="Alpha hint" size="1" start="0:18" type="bool"/>
<field name="Tiled header" size="1" start="0:19" type="bool"/>
<field name="Prefetch" size="1" start="0:20" type="bool"/>
<field name="Compression mode" size="6" start="0:26" type="AFBC Compression Mode"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Header row stride" size="27" start="4:0" type="uint"/>
<field name="Header slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Header slice size" size="32" start="5:0" type="uint"/>
<field name="Header slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Chroma 2p"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<struct name="AFRC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFRC Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC Chroma 2p"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<enum name="Shader Register Allocation">
<value name="64 Per Thread" value="0"/>
<value name="32 Per Thread" value="2"/>
+129
View File
@@ -1936,6 +1936,135 @@
<field name="Depth" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Plane Header" size="1" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type"/>
<field name="Ignore" size="24" start="0:8" type="uint"/>
</struct>
<struct name="Null Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
</struct>
<struct name="Generic Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Generic"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 2D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 2D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="3" start="26" type="ASTC 2D Dimension"/>
<field name="Block height" size="3" start="29" type="ASTC 2D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="ASTC 3D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 3D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="2" start="26" type="ASTC 3D Dimension"/>
<field name="Block height" size="2" start="28" type="ASTC 3D Dimension"/>
<field name="Block depth" size="2" start="30" type="ASTC 3D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFBC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFBC"/>
<field name="Superblock size" size="3" start="0:8" type="AFBC Superblock Size"/>
<field name="YTR" size="1" start="0:16" type="bool"/>
<field name="Split block" size="1" start="0:17" type="bool"/>
<field name="Alpha hint" size="1" start="0:18" type="bool"/>
<field name="Tiled header" size="1" start="0:19" type="bool"/>
<field name="Prefetch" size="1" start="0:20" type="bool"/>
<field name="Compression mode" size="6" start="0:26" type="AFBC Compression Mode"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Header row stride" size="27" start="4:0" type="uint"/>
<field name="Header slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Header slice size" size="32" start="5:0" type="uint"/>
<field name="Header slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Chroma 2p"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<struct name="AFRC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Slice stride hi" size="5" start="4:27" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
<field name="Width" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="7:16" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="AFRC Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFRC Chroma 2p"/>
<field name="Codec arguments" size="8" start="0:8" type="uint"/>
<field name="Block size" size="4" start="0:20" type="AFRC Block Size"/>
<field name="Format" size="8" start="0:24" type="AFRC Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="48" start="2:0" type="address"/>
<field name="Size hi" size="16" start="3:16" type="uint"/>
<field name="Row stride" size="27" start="4:0" type="uint"/>
<field name="Width" size="16" start="5:0" type="uint" modifier="minus(1)" default="1"/>
<field name="Height" size="16" start="5:16" type="uint" modifier="minus(1)" default="1"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<enum name="Shader Register Allocation">
<value name="64 Per Thread" value="0"/>
<value name="32 Per Thread" value="2"/>
+79
View File
@@ -830,6 +830,85 @@
<field name="Depth" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
</struct>
<struct name="Plane Header" size="1" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
<field name="Ignore" size="24" start="0:8" type="uint"/>
</struct>
<struct name="Null Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Null"/>
</struct>
<struct name="Generic Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Generic"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
</struct>
<struct name="ASTC 2D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 2D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="3" start="26" type="ASTC 2D Dimension"/>
<field name="Block height" size="3" start="29" type="ASTC 2D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
</struct>
<struct name="ASTC 3D Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="ASTC 3D"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Decode HDR" size="1" start="24" type="bool"/>
<field name="Decode Wide" size="1" start="25" type="bool"/>
<field name="Block width" size="2" start="26" type="ASTC 3D Dimension"/>
<field name="Block height" size="2" start="28" type="ASTC 3D Dimension"/>
<field name="Block depth" size="2" start="30" type="ASTC 3D Dimension"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Slice stride" size="32" start="6:0" type="uint"/>
</struct>
<struct name="AFBC Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="AFBC"/>
<field name="Superblock size" size="3" start="0:8" type="AFBC Superblock Size"/>
<field name="YTR" size="1" start="0:16" type="bool"/>
<field name="Split block" size="1" start="0:17" type="bool"/>
<field name="Alpha hint" size="1" start="0:18" type="bool"/>
<field name="Tiled header" size="1" start="0:19" type="bool"/>
<field name="Prefetch" size="1" start="0:20" type="bool"/>
<field name="Compression mode" size="6" start="0:26" type="AFBC Compression Mode"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Header row stride" size="32" start="4:0" type="uint"/>
<field name="Header slice size" size="32" start="5:0" type="uint"/>
<field name="Header slice stride" size="32" start="6:0" type="uint"/>
</struct>
<struct name="Chroma 2p Plane" size="8" align="32">
<field name="Type" size="4" start="0:0" type="Descriptor Type" default="Plane"/>
<field name="Plane type" size="4" start="0:4" type="Plane Type" default="Chroma 2p"/>
<field name="Clump ordering" size="4" start="0:8" type="Clump Ordering"/>
<field name="Clump format" size="8" start="0:24" type="Clump Format"/>
<field name="Size" size="32" start="1:0" type="uint"/>
<field name="Pointer" size="64" start="2:0" type="address"/>
<field name="Row stride" size="32" start="4:0" type="uint"/>
<field name="Secondary Pointer" size="64" start="6:0" type="address"/>
</struct>
<enum name="Shader Register Allocation">
<value name="64 Per Thread" value="0"/>
<value name="32 Per Thread" value="2"/>