blob: 712e7f94e92ad88d2de1618661028404b6c25506 [file] [log] [blame]
<panxml>
<enum name="Attribute Type">
<value name="1D" value="1"/>
<value name="1D POT Divisor" value="2"/>
<value name="1D Modulus" value="3"/>
<value name="1D NPOT Divisor" value="4"/>
<value name="Continuation" value="32"/>
</enum>
<enum name="Attribute Special">
<value name="Vertex ID" value="34"/>
<value name="Instance ID" value="36"/>
<value name="Frag Coord" value="37"/>
<value name="Front Facing" value="38"/>
<value name="Point Coord" value="97"/>
</enum>
<enum name="Channel">
<value name="R" value="0"/>
<value name="G" value="1"/>
<value name="B" value="2"/>
<value name="A" value="3"/>
<value name="0" value="4"/>
<value name="1" value="5"/>
</enum>
<enum name="Depth Source">
<value name="None" value="0"/>
<value name="Fixed function" value="2"/>
<value name="Shader" value="3"/>
</enum>
<enum name="Job Type">
<value name="Not started" value="0"/>
<value name="Null" value="1"/>
<value name="Write value" value="2"/>
<value name="Cache flush" value="3"/>
<value name="Compute" value="4"/>
<value name="Vertex" value="5"/>
<value name="Geometry" value="6"/>
<value name="Tiler" value="7"/>
<value name="Fused" value="8"/>
<value name="Fragment" value="9"/>
</enum>
<enum name="Draw Mode">
<value name="None" value="0"/>
<value name="Points" value="1"/>
<value name="Lines" value="2"/>
<value name="Line strip" value="4"/>
<value name="Line loop" value="6"/>
<value name="Triangles" value="8"/>
<value name="Triangle strip" value="10"/>
<value name="Triangle fan" value="12"/>
<value name="Polygon" value="13"/>
<value name="Quads" value="14"/>
<value name="Quad strip" value="15"/>
</enum>
<enum name="Exception Access">
<value name="None" value="0"/>
<value name="Execute" value="2"/>
<value name="Read" value="1"/>
<value name="Write" value="3"/>
</enum>
<enum name="Func">
<value name="Never" value="0"/>
<value name="Less" value="1"/>
<value name="Equal" value="2"/>
<value name="Lequal" value="3"/>
<value name="Greater" value="4"/>
<value name="Not Equal" value="5"/>
<value name="Gequal" value="6"/>
<value name="Always" value="7"/>
</enum>
<enum name="Format">
<value name="ETC2 RGB8" value="1"/>
<value name="ETC2 R11 UNORM" value="2"/>
<value name="ETC2 RGBA8" value="3"/>
<value name="ETC2 RG11 UNORM" value="4"/>
<value name="BC1 UNORM" value="7"/>
<value name="BC2 UNORM" value="8"/>
<value name="BC3 UNORM" value="9"/>
<value name="BC4 UNORM" value="10"/>
<value name="BC4 SNORM" value="11"/>
<value name="BC5 UNORM" value="12"/>
<value name="BC5 SNORM" value="13"/>
<value name="BC6H UF16" value="14"/>
<value name="BC6H SF16" value="15"/>
<value name="BC7 UNORM" value="16"/>
<value name="ETC2 R11 SNORM" value="17"/>
<value name="ETC2 RG11 SNORM" value="18"/>
<value name="ETC2 RGB8A1" value="19"/>
<value name="ASTC 3D LDR" value="20"/>
<value name="ASTC 3D HDR" value="21"/>
<value name="ASTC 2D LDR" value="22"/>
<value name="ASTC 2D HDR" value="23"/>
<value name="RGB565" value="64"/>
<value name="RGB5 X1 UNORM" value="65"/>
<value name="RGB5 A1 UNORM" value="66"/>
<value name="RGB10 A2 UNORM" value="67"/>
<value name="RGB10 A2 SNORM" value="69"/>
<value name="RGB10 A2UI" value="71"/>
<value name="RGB10 A2I" value="73"/>
<value name="RGB332 UNORM" value="75"/>
<value name="RGB233 UNORM" value="76"/>
<value name="Z24X8 UNORM" value="77"/>
<value name="R32 FIXED" value="81"/>
<value name="RG32 FIXED" value="82"/>
<value name="RGB32 FIXED" value="83"/>
<value name="RGBA32 FIXED" value="84"/>
<value name="R11F G11F B10F" value="89"/>
<value name="R9F G9F B9F E5F" value="91"/>
<value name="VARYING POS" value="94"/>
<value name="VARYING DISCARD" value="95"/>
<value name="R8 SNORM" value="99"/>
<value name="R16 SNORM" value="100"/>
<value name="R32 SNORM" value="101"/>
<value name="RG8 SNORM" value="107"/>
<value name="RG16 SNORM" value="108"/>
<value name="RG32 SNORM" value="109"/>
<value name="RGB8 SNORM" value="115"/>
<value name="RGB16 SNORM" value="116"/>
<value name="RGB32 SNORM" value="117"/>
<value name="RGBA8 SNORM" value="123"/>
<value name="RGBA16 SNORM" value="124"/>
<value name="RGBA32 SNORM" value="125"/>
<value name="R8UI" value="131"/>
<value name="R16UI" value="132"/>
<value name="R32UI" value="133"/>
<value name="RG8UI" value="139"/>
<value name="RG16UI" value="140"/>
<value name="RG32UI" value="141"/>
<value name="RGB8UI" value="147"/>
<value name="RGB16UI" value="148"/>
<value name="RGB32UI" value="149"/>
<value name="RGBA8UI" value="155"/>
<value name="RGBA16UI" value="156"/>
<value name="RGBA32UI" value="157"/>
<value name="R8 UNORM" value="163"/>
<value name="R16 UNORM" value="164"/>
<value name="R32 UNORM" value="165"/>
<value name="R32F" value="167"/>
<value name="RG8 UNORM" value="171"/>
<value name="RG16 UNORM" value="172"/>
<value name="RG32 UNORM" value="173"/>
<value name="RG32F" value="175"/>
<value name="RGB8 UNORM" value="179"/>
<value name="RGB16 UNORM" value="180"/>
<value name="RGB32 UNORM" value="181"/>
<value name="RGB32F" value="183"/>
<value name="RGBA4 UNORM" value="186"/>
<value name="RGBA8 UNORM" value="187"/>
<value name="RGBA16 UNORM" value="188"/>
<value name="RGBA32 UNORM" value="189"/>
<value name="RGBA32F" value="191"/>
<value name="R8I" value="195"/>
<value name="R16I" value="196"/>
<value name="R32I" value="197"/>
<value name="R16F" value="199"/>
<value name="RG8I" value="203"/>
<value name="RG16I" value="204"/>
<value name="RG32I" value="205"/>
<value name="RG16F" value="207"/>
<value name="RGB8I" value="211"/>
<value name="RGB16I" value="212"/>
<value name="RGB32I" value="213"/>
<value name="RGB16F" value="215"/>
<value name="RGBA8I" value="219"/>
<value name="RGBA16I" value="220"/>
<value name="RGBA32I" value="221"/>
<value name="RGBA16F" value="223"/>
<value name="RGBA4" value="232"/>
<value name="RGBA8 2" value="237"/>
<value name="RGB10 A2 2" value="238"/>
</enum>
<enum name="Block Format">
<!--- 16x16 block u-interleaved -->
<value name="Tiled U-Interleaved" value="0"/>
<value name="Tiled Linear" value="1"/>
<value name="Linear" value="2"/>
<value name="AFBC" value="3"/>
</enum>
<enum name="Block Format v7">
<value name="No Write" value="0"/>
<value name="Tiled U-Interleaved" value="1"/>
<value name="Linear" value="2"/>
<value name="AFBC" value="12"/>
<value name="AFBC Tiled" value="13"/>
</enum>
<enum name="Mipmap Mode">
<value name="Nearest" value="0"/>
<value name="None" value="1"/>
<value name="Trilinear" value="3"/>
</enum>
<enum name="MSAA">
<value name="Single" value="0"/>
<!-- N samples, 1 surface, resolved -->
<value name="Average" value="1"/>
<!-- N samples, 1 surface, unresolved -->
<value name="Multiple" value="2"/>
<!-- N samples, N surfaces -->
<value name="Layered" value="3"/>
</enum>
<enum name="Index Type">
<value name="None" value="0"/>
<value name="UINT8" value="1"/>
<value name="UINT16" value="2"/>
<value name="UINT32" value="3"/>
</enum>
<enum name="Occlusion Mode">
<value name="Disabled" value="0"/>
<value name="Predicate" value="1"/>
<value name="Counter" value="3"/>
</enum>
<enum name="Stencil Op">
<value name="Keep" value="0"/>
<value name="Replace" value="1"/>
<value name="Zero" value="2"/>
<value name="Invert" value="3"/>
<value name="Incr Wrap" value="4"/>
<value name="Decr Wrap" value="5"/>
<value name="Incr Sat" value="6"/>
<value name="Decr Sat" value="7"/>
</enum>
<enum name="Texture Dimension">
<value name="Cube" value="0"/>
<value name="1D" value="1"/>
<value name="2D" value="2"/>
<value name="3D" value="3"/>
</enum>
<enum name="Texture Layout">
<!--- 16x16 block u-interleaved -->
<value name="Tiled" value="1"/>
<value name="Linear" value="2"/>
<value name="AFBC" value="12"/>
</enum>
<enum name="Wrap Mode">
<value name="Repeat" value="8"/>
<value name="Clamp to Edge" value="9"/>
<value name="Clamp" value="10"/>
<value name="Clamp to Border" value="11"/>
<value name="Mirrored Repeat" value="12"/>
<value name="Mirrored Clamp to Edge" value="13"/>
<value name="Mirrored Clamp" value="14"/>
<value name="Mirrored Clamp to Border" value="15"/>
</enum>
<struct name="Attribute">
<field name="Buffer index" size="9" start="0" type="uint"/>
<field name="Unknown" size="1" start="9" type="bool" default="true"/>
<field name="Format" size="22" start="10" type="uint"/>
<field name="Offset" size="32" start="32" type="int"/>
</struct>
<struct name="Attribute Buffer">
<field name="Special" size="8" start="0" type="Attribute Special"/>
<field name="Type" size="6" start="0" type="Attribute Type" default="1D"/>
<field name="Pointer" size="50" start="6" type="address" modifier="shr(6)"/>
<field name="Stride" size="32" start="64" type="uint"/>
<field name="Size" size="32" start="96" type="uint"/>
<field name="Divisor" size="8" start="56" type="padded" default="1"/>
<field name="Divisor R" size="5" start="56" type="uint"/>
<field name="Divisor P" size="3" start="61" type="uint"/>
<field name="Divisor E" size="1" start="61" type="uint"/>
</struct>
<struct name="Attribute Buffer Continuation NPOT">
<field name="Type" size="6" start="0:0" type="Attribute Type" default="Continuation"/>
<field name="Divisor Numerator" size="32" start="1:0" type="uint"/>
<field name="Divisor" size="32" start="3:0" type="uint"/>
</struct>
<struct name="Blend Equation" size="1">
<field name="RGB Mode" size="12" start="0" type="uint"/>
<field name="Alpha Mode" size="12" start="12" type="uint"/>
<field name="Color mask" size="4" start="28" type="uint" default="15"/>
</struct>
<struct name="Blend Flags" size="1">
<field name="Load destination" size="1" start="0" type="bool" default="false"/>
<field name="Midgard blend shader" size="1" start="1" type="bool" default="false"/>
<field name="Enable" size="1" start="9" type="bool" default="true"/>
<field name="sRGB" size="1" start="10" type="bool" default="false"/>
<field name="Round to FB precision" size="1" start="11" type="bool" default="false"/>
</struct>
<struct name="Midgard Blend" size="4" with_opaque="true">
<field name="Flags" size="32" start="0:0" type="Blend Flags"/>
<field name="Equation" size="32" start="2:0" type="uint"/> <!-- XXX -->
<field name="Constant" size="32" start="3:0" type="float"/>
<field name="Shader" size="64" start="2:0" type="address"/>
</struct>
<struct name="Invocation">
<!-- Dynamic bitfield containing WorkGroupSize.xyz, NumWorkGroups.xyz
The number of bits allocated for each number is based on the *_shift
fields. For example, workgroups_y_shift gives the bit that
gl_NumWorkGroups.y starts at, and workgroups_z_shift gives the bit
that gl_NumWorkGroups.z starts at (and therefore one after the bit
that gl_NumWorkGroups.y ends at). The actual value for each
is one more than the stored value, since if any of the values
are zero, then there would be no invocations (and hence no job). -->
<field name="Invocations" size="32" start="0:0" type="uint"/>
<field name="Size Y shift" size="5" start="1:0" type="uint"/>
<field name="Size Z shift" size="5" start="1:5" type="uint"/>
<field name="Workgroups X shift" size="6" start="1:10" type="uint"/>
<field name="Workgroups Y shift" size="6" start="1:16" type="uint"/>
<field name="Workgroups Z shift" size="6" start="1:22" type="uint"/>
<field name="Unknown shift" size="4" start="1:28" type="uint"/>
</struct>
<enum name="Point Size Array Format">
<value name="None" value="0"/>
<value name="FP16" value="2"/>
<value name="FP32" value="3"/>
</enum>
<enum name="Primitive Restart">
<value name="None" value="0"/>
<value name="Implicit" value="2"/>
<value name="Explicit" value="3"/>
</enum>
<struct name="Primitive">
<field name="Draw mode" size="8" start="0:0" type="Draw Mode" default="None"/>
<field name="Index type" size="3" start="0:8" type="Index Type" default="None"/>
<field name="Point size array format" size="2" start="0:11" type="Point Size Array Format"/>
<field name="Primitive Index Enable" size="1" start="0:13" type="bool"/>
<field name="Primitive Index Writeback" size="1" start="0:14" type="bool"/>
<field name="First provoking vertex" size="1" start="0:15" type="bool" default="true"/>
<field name="Low Depth Cull" size="1" start="0:16" type="bool" default="true"/>
<field name="High Depth Cull" size="1" start="0:17" type="bool" default="true"/>
<field name="Secondary Shader" size="1" start="0:18" type="bool"/>
<field name="Primitive restart" size="2" start="0:19" type="Primitive Restart"/>
<field name="Job Task Split" size="6" start="0:26" type="uint"/>
<field name="Base vertex offset" size="32" start="1:0" type="uint"/>
<field name="Primitive Restart Index" size="32" start="2:0" type="uint"/>
<field name="Index count" size="32" start="3:0" type="uint" modifier="minus(1)"/>
<field name="Indices" size="64" start="4:0" type="address"/>
</struct>
<struct name="Draw" size="32">
<field name="Four Components Per Vertex" size="1" start="0:0" type="bool"/>
<field name="Draw Descriptor Is 64b" size="1" start="0:1" type="bool"/>
<field name="Texture Descriptor Is 64b" size="1" start="0:2" type="bool"/>
<field name="Occlusion query" size="2" start="0:3" type="Occlusion Mode" default="Disabled"/>
<field name="Front face CCW" size="1" start="0:5" type="bool"/>
<field name="Cull front face" size="1" start="0:6" type="bool"/>
<field name="Cull back face" size="1" start="0:7" type="bool"/>
<field name="Flat Shading Vertex" size="1" start="0:8" type="uint"/>
<field name="Exclude Filtered Perf Counters" size="1" start="0:9" type="bool"/>
<field name="Primitive Barrier" size="1" start="0:10" type="bool"/>
<field name="Clean Fragment Write" size="1" start="0:11" type="bool"/>
<field name="Instance Size" size="8" start="0:16" type="padded" default="1"/>
<field name="Instance Primitive Size" size="8" start="0:24" type="padded" default="1"/>
<field name="Offset start" size="32" start="1:0" type="uint"/>
<field name="Primitive Index Base" size="32" start="2:0" type="uint"/>
<field name="Position" size="64" start="4:0" type="address"/>
<field name="Uniform buffers" size="64" start="6:0" type="address"/>
<field name="Textures" size="64" start="8:0" type="address"/>
<field name="Samplers" size="64" start="10:0" type="address"/>
<field name="Push uniforms" size="64" start="12:0" type="address"/>
<field name="State" size="64" start="14:0" type="address"/>
<field name="Attribute buffers" size="64" start="16:0" type="address"/>
<field name="Attributes" size="64" start="18:0" type="address"/>
<field name="Varying buffers" size="64" start="20:0" type="address"/>
<field name="Varyings" size="64" start="22:0" type="address"/>
<field name="Viewport" size="64" start="24:0" type="address"/>
<field name="Occlusion" size="64" start="26:0" type="address"/>
<field name="Thread Storage" size="64" start="28:0" type="address"/>
<field name="FBD" size="64" start="28:0" type="address"/>
</struct>
<struct name="Midgard Sampler">
<field name="Magnify Nearest" size="1" start="0" type="bool" default="true"/>
<field name="Minify Nearest" size="1" start="1" type="bool" default="true"/>
<field name="Mipmap Mode" size="2" start="3" type="Mipmap Mode" default="Nearest"/>
<field name="Normalized Coordinates" size="1" start="5" type="bool" default="true"/>
<field name="LOD Bias" size="16" start="0:16" type="int" default="0"/>
<field name="Minimum LOD" size="16" start="1:0" type="uint" default="0"/>
<field name="Maximum LOD" size="16" start="1:16" type="uint" default="1"/>
<field name="Wrap Mode S" size="4" start="2:0" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Wrap Mode T" size="4" start="2:4" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Wrap Mode R" size="4" start="2:8" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Compare Function" size="3" start="2:12" type="Func" default="Never"/>
<field name="Seamless Cube Map" size="1" start="2:15" type="bool" default="true"/>
<field name="Border Color R" size="32" start="4:0" type="float" default="0.0"/>
<field name="Border Color G" size="32" start="5:0" type="float" default="0.0"/>
<field name="Border Color B" size="32" start="6:0" type="float" default="0.0"/>
<field name="Border Color A" size="32" start="7:0" type="float" default="0.0"/>
</struct>
<struct name="Midgard Texture" size="8">
<field name="Width" size="16" start="0:0" type="uint" modifier="minus(1)"/>
<field name="Height" size="16" start="0:16" type="uint" modifier="minus(1)"/>
<field name="Depth" size="16" start="1:0" type="uint" modifier="minus(1)"/>
<field name="Array size" size="16" start="1:16" type="uint" modifier="minus(1)"/>
<field name="Format" size="22" start="2:0" type="uint"/>
<field name="Dimension" size="2" start="2:22" type="Texture Dimension"/>
<field name="Texel ordering" size="4" start="2:24" type="Texture Layout"/>
<field name="Unknown" size="1" start="2:28" type="bool" default="true"/>
<field name="Manual stride" size="1" start="2:29" type="bool" default="false"/>
<field name="Levels" size="8" start="3:24" type="uint"/>
<field name="Swizzle" size="12" start="4:0" type="uint"/>
</struct>
<struct name="Bifrost Sampler" size="8">
<field name="Type" size="4" start="0:0" type="uint" default="1"/>
<field name="Wrap Mode R" size="4" start="0:8" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Wrap Mode T" size="4" start="0:12" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Wrap Mode S" size="4" start="0:16" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Seamless Cube Map" size="1" start="0:23" type="bool" default="true"/>
<field name="Normalized Coordinates" size="1" start="0:25" type="bool" default="true"/>
<field name="Minify Linear" size="1" start="0:27" type="bool" default="false"/>
<field name="Magnify Linear" size="1" start="0:28" type="bool" default="false"/>
<field name="Mipmap Mode" size="2" start="0:30" type="Mipmap Mode" default="Nearest"/>
<field name="Minimum LOD" size="13" start="1:0" type="uint" default="0"/>
<field name="Compare Function" size="3" start="1:13" type="Func" default="Never"/>
<field name="Maximum LOD" size="13" start="1:16" type="uint" default="0"/>
<field name="LOD bias" size="16" start="2:0" type="uint" default="0"/>
</struct>
<struct name="Bifrost Texture" size="8">
<field name="Type" size="4" start="0:0" type="uint" default="2"/>
<field name="Dimension" size="2" start="0:4" type="Texture Dimension"/>
<field name="Format" size="22" start="0:10" type="uint"/>
<field name="Width" size="16" start="1:0" type="uint" modifier="minus(1)"/>
<field name="Height" size="16" start="1:16" type="uint" modifier="minus(1)"/>
<field name="Swizzle" size="12" start="2:0" type="uint"/>
<field name="Texel ordering" size="4" start="2:12" type="Texture Layout"/>
<field name="Levels" size="5" start="2:16" type="uint"/>
<field name="Minimum LOD" size="13" start="3:0" type="uint" default="0"/>
<field name="Maximum LOD" size="13" start="3:16" type="uint" default="0"/>
<field name="Surfaces" size="64" start="4:0" type="address"/>
</struct>
<struct name="Renderer Properties" size="1">
<field name="Uniform buffer count" size="8" start="0" type="uint"/>
<field name="Depth source" size="2" start="8" type="Depth Source" default="None"/>
<field name="Midgard Early-z enable" size="1" start="10" type="bool" default="false"/>
<field name="Helper invocation enable" size="1" start="11" type="bool" default="false"/>
<field name="Reads depth/stencil" size="1" start="12" type="bool" default="false"/>
<field name="Writes globals" size="1" start="13" type="bool" default="false"/>
<field name="Full thread" size="1" start="13" type="bool" default="false"/>
<field name="Reads tilebuffer" size="1" start="14" type="bool" default="false"/>
<field name="Work register count" size="5" start="16" type="uint"/>
<field name="Bifrost Early-z enable" size="1" start="19" type="bool" default="false"/>
<field name="Uniform count" size="5" start="21" type="uint"/>
<field name="Stencil from shader" size="1" start="28" type="bool"/>
<field name="Suppress Inf/NaN" size="1" start="29" type="bool"/>
<field name="First ATEST" size="1" start="30" type="bool" default="false"/>
<!-- XXX: This is awful -->
<field name="Unknown" size="32" start="0" type="uint"/>
</struct>
<struct name="Preload" size="1">
<field name="Local Invocation XY" size="1" start="7" type="bool"/>
<field name="Local Invocation Z" size="1" start="8" type="bool"/>
<field name="Work group X" size="1" start="9" type="bool"/>
<field name="Work group Y" size="1" start="10" type="bool"/>
<field name="Work group Z" size="1" start="11" type="bool"/>
<field name="Global Invocation X" size="1" start="12" type="bool"/>
<field name="Global Invocation Y" size="1" start="13" type="bool"/>
<field name="Global Invocation Z" size="1" start="14" type="bool"/>
<field name="Vertex ID" size="1" start="13" type="bool"/>
<field name="Instance ID" size="1" start="14" type="bool"/>
<field name="Unknown" size="1" start="7" type="bool"/>
<field name="Primitive ID" size="1" start="9" type="bool"/>
<field name="Front facing" size="1" start="10" type="bool"/>
<field name="Fragment position" size="1" start="11" type="bool"/>
<field name="Sample mask/ID" size="1" start="12" type="bool"/>
<field name="Uniform count" size="7" start="15" type="uint"/>
</struct>
<struct name="Shader" size="4">
<field name="Shader" size="64" start="0:0" type="address"/>
<field name="Sampler count" size="16" start="2:0" type="uint"/>
<field name="Texture count" size="16" start="2:16" type="uint"/>
<field name="Attribute count" size="16" start="3:0" type="uint"/>
<field name="Varying count" size="16" start="3:16" type="uint"/>
</struct>
<struct name="Multisample, Misc" size="1">
<field name="Sample mask" size="16" start="0" type="uint"/>
<field name="Multisample enable" size="1" start="16" type="bool"/>
<field name="Multisample late coverage" size="1" start="17" type="bool"/>
<field name="Evaluate per-sample" size="1" start="18" type="bool"/>
<field name="Unknown 1" size="1" start="19" type="bool"/>
<field name="Unknown 2" size="1" start="20" type="bool"/>
<field name="SFBD Load destination" size="1" start="21" type="bool"/>
<field name="SFBD Blend shader" size="1" start="22" type="bool"/>
<field name="SFBD Blend shader discard" size="1" start="23" type="bool"/>
<field name="Depth function" size="3" start="24" type="Func"/>
<field name="Depth write mask" size="1" start="27" type="bool"/>
<field name="Fixed-function near discard" size="1" start="28" type="bool"/>
<field name="Fixed-function far discard" size="1" start="29" type="bool"/>
<field name="Fragment near discard" size="1" start="30" type="bool"/>
<field name="Fragment far discard" size="1" start="31" type="bool"/>
</struct>
<struct name="Stencil Mask, Misc" size="1">
<field name="Stencil mask front" size="8" start="0" type="uint"/>
<field name="Stencil mask back" size="8" start="8" type="uint"/>
<field name="Stencil enable" size="1" start="16" type="bool"/>
<field name="Alpha-to-coverage" size="1" start="17" type="bool"/>
<field name="Alpha-to-coverage Invert" size="1" start="18" type="bool"/>
<field name="Alpha to one" size="1" start="19" type="bool"/>
<field name="SFBD Write enable" size="1" start="20" type="bool"/>
<field name="Unknown 1" size="3" start="21" type="uint"/>
<field name="SFBD sRGB" size="1" start="24" type="bool"/>
<field name="SFBD Dither disable" size="1" start="25" type="bool"/>
<field name="Unknown 2" size="1" start="26" type="bool"/>
<field name="Depth Range 1" size="1" start="28" type="bool"/>
<field name="Depth Range 2" size="1" start="29" type="bool"/>
<field name="Single-sampled lines" size="1" start="30" type="bool"/>
<field name="Point snap" size="1" start="31" type="bool"/>
</struct>
<struct name="Stencil">
<field name="Reference Value" size="8" start="0" type="uint"/>
<field name="Mask" size="8" start="8" type="uint"/>
<field name="Compare Function" size="3" start="16" type="Func"/>
<field name="Stencil Fail" size="3" start="19" type="Stencil Op"/>
<field name="Depth Fail" size="3" start="22" type="Stencil Op"/>
<field name="Depth Pass" size="3" start="25" type="Stencil Op"/>
</struct>
<struct name="Renderer State">
<field name="Shader" size="128" start="0:0" type="Shader"/>
<field name="Properties" size="32" start="4:0" type="Renderer Properties"/>
<field name="Depth units" size="32" start="5:0" type="float"/>
<field name="Depth factor" size="32" start="6:0" type="float"/>
<field name="Depth bias clamp" size="32" start="7:0" type="float"/>
<field name="Multisample, Misc" size="32" start="8:0" type="Multisample, Misc"/>
<field name="Stencil Mask, Misc" size="32" start="9:0" type="Stencil Mask, Misc"/>
<field name="Stencil front" size="32" start="10:0" type="Stencil"/>
<field name="Stencil back" size="32" start="11:0" type="Stencil"/>
<field name="Preload" size="32" start="12:0" type="Preload"/>
<field name="Thread Balancing" size="16" start="13:0" type="uint"/>
<field name="SFBD Blend Shader" size="64" start="14:0" type="address"/>
<field name="SFBD Blend Equation" size="32" start="14:0" type="uint"/>
<field name="SFBD Blend Constant" size="32" start="15:0" type="float"/>
</struct>
<struct name="Uniform Buffer">
<field name="Entries" size="12" start="0" type="uint" modifier="minus(1)"/>
<field name="Pointer" size="52" start="12" type="address" modifier="shr(4)" element="16" count="Entries"/>
</struct>
<struct name="Viewport">
<field name="Minimum X" size="32" start="0:0" default="-INFINITY" type="float"/>
<field name="Minimum Y" size="32" start="1:0" default="-INFINITY" type="float"/>
<field name="Maximum X" size="32" start="2:0" default="+INFINITY" type="float"/>
<field name="Maximum Y" size="32" start="3:0" default="+INFINITY" type="float"/>
<field name="Minimum Z" size="32" start="4:0" default="0.0" type="float"/>
<field name="Maximum Z" size="32" start="5:0" default="1.0" type="float"/>
<field name="Scissor Minimum X" size="16" start="6:0" default="0" type="uint"/>
<field name="Scissor Minimum Y" size="16" start="6:16" default="0" type="uint"/>
<field name="Scissor Maximum X" size="16" start="7:0" type="uint"/>
<field name="Scissor Maximum Y" size="16" start="7:16" type="uint"/>
</struct>
<struct name="Local Storage" size="8">
<field name="TLS Size" size="5" start="0:0" type="uint"/>
<field name="TLS Initial Stack Pointer Offset" size="27" start="0:5" type="uint"/>
<field name="WLS Instances" size="5" start="1:0" type="uint" modifier="log2" prefix="MALI_LOCAL_STORAGE">
<value name="No Workgroup Mem" value="0x80000000"/>
</field>
<field name="WLS Size Base" size="2" start="1:5" type="uint"/>
<field name="WLS Size Scale" size="5" start="1:8" type="uint"/>
<field name="TLS Base Pointer" size="64" start="2:0" type="address"/>
<field name="WLS Base Pointer" size="64" start="4:0" type="address"/>
</struct>
<struct name="Midgard Tiler" size="10">
<field name="Polygon List Size" size="32" start="0:0" type="uint" prefix="MALI_MIDGARD_TILER">
<value name="Minimum Header Size" value="512"/>
</field>
<field name="Hierarchy Mask" size="16" start="1:0" type="uint" prefix="MALI_MIDGARD_TILER">
<value name="Disabled" value="4096"/>
<value name="User" value="4095"/>
<value name="Hierarchy Mask" value="511"/>
</field>
<field name="Polygon List" size="64" start="2:0" type="address"/>
<field name="Polygon List Body" size="64" start="4:0" type="address"/>
<field name="Heap Start" size="64" start="6:0" type="address"/>
<field name="Heap End" size="64" start="8:0" type="address"/>
</struct>
<struct name="Midgard Tiler Weights">
<field name="Weight0" size="32" start="0:0" type="uint"/>
<field name="Weight1" size="32" start="1:0" type="uint"/>
<field name="Weight2" size="32" start="2:0" type="uint"/>
<field name="Weight3" size="32" start="3:0" type="uint"/>
<field name="Weight4" size="32" start="4:0" type="uint"/>
<field name="Weight5" size="32" start="5:0" type="uint"/>
<field name="Weight6" size="32" start="6:0" type="uint"/>
<field name="Weight7" size="32" start="7:0" type="uint"/>
</struct>
<enum name="Color Buffer Internal Format">
<value name="Raw Value" value="0"/>
<value name="R8G8B8A8" value="1"/>
<value name="R10G10B10A2" value="2"/>
<value name="R8G8B8A2" value="3"/>
<value name="R4G4B4A4" value="4"/>
<value name="R5G6B5A0" value="5"/>
<value name="R5G5B5A1" value="6"/>
<value name="RAW8" value="32"/>
<value name="RAW16" value="33"/>
<value name="RAW32" value="34"/>
<value name="RAW64" value="35"/>
<value name="RAW128" value="36"/>
</enum>
<enum name="SFBD Color Format">
<value name="4_32B_CHANNELS" value="0"/>
<value name="3_32B_CHANNELS" value="1"/>
<value name="2_32B_CHANNELS" value="2"/>
<value name="1_32B_CHANNEL" value="3"/>
<value name="4_16B_CHANNELS" value="4"/>
<value name="3_16B_CHANNELS" value="5"/>
<value name="2_16B_CHANNELS" value="6"/>
<value name="1_16B_CHANNEL" value="7"/>
<value name="R8" value="16"/>
<value name="R8G8" value="17"/>
<value name="R8G8B8" value="18"/>
<value name="R8G8B8A8" value="19"/>
<value name="R4G4B4A4" value="20"/>
<value name="R5G6B5" value="21"/>
<value name="R8G8B8_FROM_R8G8B8A2" value="22"/>
<value name="R10G10B10A2" value="24"/>
<value name="A2B10G10R10" value="25"/>
<value name="R5G5B5A1" value="28"/>
<value name="A1B5G5R5" value="29"/>
</enum>
<enum name="MFBD Color Format">
<value name="RAW8" value="0"/>
<value name="RAW16" value="1"/>
<value name="RAW24" value="2"/>
<value name="RAW32" value="3"/>
<value name="RAW48" value="4"/>
<value name="RAW64" value="5"/>
<value name="RAW96" value="6"/>
<value name="RAW128" value="7"/>
<value name="RAW192" value="8"/>
<value name="RAW256" value="9"/>
<value name="RAW384" value="10"/>
<value name="RAW512" value="11"/>
<value name="RAW768" value="12"/>
<value name="RAW1024" value="13"/>
<value name="RAW1536" value="14"/>
<value name="RAW2048" value="15"/>
<value name="R8" value="16"/>
<value name="R8G8" value="17"/>
<value name="R8G8B8" value="18"/>
<value name="R8G8B8A8" value="19"/>
<value name="R4G4B4A4" value="20"/>
<value name="R5G6B5" value="21"/>
<value name="R8G8B8_FROM_R8G8B8A2" value="22"/>
<value name="R10G10B10A2" value="24"/>
<value name="A2B10G10R10" value="25"/>
<value name="R5G5B5A1" value="28"/>
<value name="A1B5G5R5" value="29"/>
<value name="NATIVE" value="31"/>
</enum>
<enum name="Downsampling Accumulation Mode">
<value name="Unsigned normalized integer" value="0"/>
<value name="Signed normalized integer" value="1"/>
</enum>
<enum name="Sample Layout">
<value name="Ordered 4x Grid" value="0"/>
<value name="Rotated 4x Grid" value="1"/>
<value name="D3D 8x Grid" value="2"/>
<value name="D3D 16x Grid" value="3"/>
</enum>
<enum name="ZS Format">
<value name="D16" value="1"/>
<value name="D24" value="2"/>
<value name="D24X8" value="4"/>
<value name="D24S8" value="5"/>
<value name="X8D24" value="6"/>
<value name="S8D24" value="7"/>
<value name="D32_X8X24" value="13"/>
<value name="D32" value="14"/>
<value name="D32_S8X24" value="15"/>
</enum>
<enum name="ZS Preload Format">
<value name="D32_S8X24" value="4"/>
</enum>
<enum name="S Format">
<value name="S8" value="1"/>
<value name="S8X8" value="2"/>
<value name="S8X24" value="3"/>
<value name="X24S8" value="4"/>
<value name="X8S8" value="5"/>
<value name="X32_S8X24" value="6"/>
</enum>
<enum name="Tie-Break Rule">
<value name="0_IN_180_OUT" value="0"/>
<value name="0_OUT_180_IN" value="1"/>
<value name="MINUS_180_IN_0_OUT" value="2"/>
<value name="MINUS_180_OUT_0_IN" value="3"/>
<value name="90_IN_270_OUT" value="4"/>
<value name="90_OUT_270_IN" value="5"/>
<value name="MINUS_90_IN_90_OUT" value="6"/>
<value name="MINUS_90_OUT_90_IN" value="7"/>
</enum>
<struct name="RT Buffer">
<field name="Base" size="64" start="0:0" type="address"/>
<field name="Row Stride" size="32" start="2:0" type="uint"/>
<field name="Surface Stride" size="32" start="3:0" type="uint"/>
</struct>
<struct name="Single-Target Framebuffer Parameters" size="40">
<field name="Internal Format" size="3" start="0:0" default="Raw Value" type="Color Buffer Internal Format"/>
<field name="Sample Count" size="3" start="0:3" type="uint" default="1" modifier="log2"/>
<field name="Swizzle" size="12" start="0:6" type="uint"/>
<field name="Color Writeback Format" size="5" start="0:18" default="4_32B_CHANNELS" type="SFBD Color Format"/>
<field name="MSAA" size="2" start="0:23" default="Single" type="MSAA"/>
<field name="sRGB" size="1" start="0:25" type="bool"/>
<field name="Color Block Format" size="2" start="0:26" type="Block Format"/>
<field name="Dithering Enable" size="1" start="0:28" type="bool"/>
<field name="Clean Pixel Write Enable" size="1" start="0:29" type="bool"/>
<field name="Color Preload Enable" size="1" start="0:30" type="bool"/>
<field name="Color Write Enable" size="1" start="0:31" type="bool"/>
<field name="X Downsampling Scale" size="3" start="1:0" type="uint"/>
<field name="Y Downsampling Scale" size="3" start="1:3" type="uint"/>
<field name="Downsampling Accumulation Mode" size="2" start="1:6" type="Downsampling Accumulation Mode"/>
<field name="Sample Layout" size="2" start="1:8" type="Sample Layout"/>
<field name="Big Endian" size="1" start="1:10" type="bool"/>
<field name="Tie-Break Rule" size="3" start="1:11" type="Tie-Break Rule"/>
<field name="CRC Read Enable" size="1" start="1:14" type="bool"/>
<field name="CRC Write Enable" size="1" start="1:15" type="bool"/>
<field name="ZS Block Format" size="2" start="1:16" type="Block Format"/>
<field name="ZS Format" size="4" start="1:18" type="ZS Format" default="D24S8"/>
<field name="ZS Preload Enable" size="1" start="1:22" type="bool"/>
<field name="ZS Write Enable" size="1" start="1:23" type="bool"/>
<field name="S Block Format" size="2" start="1:24" type="Block Format"/>
<field name="S Format" size="4" start="1:26" type="S Format"/>
<field name="S Write Enable" size="1" start="1:31" type="bool"/>
<field name="Bound Min X" size="16" start="2:0" type="uint"/>
<field name="Bound Min Y" size="16" start="2:16" type="uint"/>
<field name="Bound Max X" size="16" start="3:0" type="uint"/>
<field name="Bound Max Y" size="16" start="3:16" type="uint"/>
<field name="DCD Offset" size="32" start="4:0" type="uint"/>
<field name="CRC Buffer" size="128" start="8:0" type="RT Buffer"/>
<field name="Color Writeback" size="128" start="12:0" type="RT Buffer"/>
<field name="ZS Writeback" size="128" start="16:0" type="RT Buffer"/>
<field name="S Writeback" size="128" start="20:0" type="RT Buffer"/>
<field name="Color Load Address" size="64" start="24:0" type="address"/>
<field name="Color Load Row Stride" size="32" start="26:0" type="uint"/>
<field name="Color Load Surface Stride" size="32" start="27:0" type="uint"/>
<field name="Clear Color 0" size="32" start="24:0" type="uint"/>
<field name="Clear Color 1" size="32" start="25:0" type="uint"/>
<field name="Clear Color 2" size="32" start="26:0" type="uint"/>
<field name="Clear Color 3" size="32" start="27:0" type="uint"/>
<field name="ZS Load Address" size="64" start="28:0" type="address"/>
<field name="ZS Load Row Stride" size="32" start="30:0" type="uint"/>
<field name="ZS Load Surface Stride" size="32" start="31:0" type="uint"/>
<field name="Z Clear" size="32" start="28:0" type="float"/>
<field name="S Clear" size="8" start="32:0" type="uint"/>
</struct>
<struct name="Single-Target Framebuffer Padding 1" size="6">
</struct>
<struct name="Single-Target Framebuffer Padding 2" size="8">
</struct>
<aggregate name="Single-Target Framebuffer" size="320">
<section name="Local Storage" offset="0" type="Local Storage"/>
<section name="Parameters" offset="32" type="Single-Target Framebuffer Parameters"/>
<section name="Tiler" offset="192" type="Midgard Tiler"/>
<section name="Padding 1" offset="232" type="Single-Target Framebuffer Padding 1"/>
<section name="Tiler Weights" offset="256" type="Midgard Tiler Weights"/>
<section name="Padding 2" offset="288" type="Single-Target Framebuffer Padding 2"/>
</aggregate>
<enum name="Sample Pattern">
<value name="Single-sampled" value="0"/>
<value name="Ordered 4x Grid" value="1"/>
<value name="Rotated 4x Grid" value="2"/>
<value name="D3D 8x Grid" value="3"/>
<value name="D3D 16x Grid" value="4"/>
</enum>
<enum name="Z Internal Format">
<value name="D16" value="0"/>
<value name="D24" value="1"/>
<value name="D32" value="2"/>
</enum>
<enum name="FBD Tag">
<value name="IS_MFBD" value="1"/>
<value name="HAS_ZS_RT" value="2"/>
<value name="MASK" value="63"/>
</enum>
<struct name="Multi-Target Framebuffer Parameters">
<field name="Width" size="16" start="0:0" type="uint" modifier="minus(1)"/>
<field name="Height" size="16" start="0:16" type="uint" modifier="minus(1)"/>
<field name="Bound Min X" size="16" start="1:0" type="uint"/>
<field name="Bound Min Y" size="16" start="1:16" type="uint"/>
<field name="Bound Max X" size="16" start="2:0" type="uint"/>
<field name="Bound Max Y" size="16" start="2:16" type="uint"/>
<field name="Sample Count" size="3" start="3:0" type="uint" default="1" modifier="log2"/>
<field name="Sample Pattern" size="3" start="3:3" type="Sample Pattern"/>
<field name="Tie-Break Rule" size="3" start="3:6" type="Tie-Break Rule"/>
<field name="Effective Tile Size" size="4" start="3:9" type="uint" modifier="log2"/>
<field name="X Downsampling Scale" size="3" start="3:13" type="uint"/>
<field name="Y Downsampling Scale" size="3" start="3:16" type="uint"/>
<field name="Render Target Count" size="4" start="3:19" type="uint" modifier="minus(1)"/>
<field name="Color Buffer Allocation" size="8" start="3:24" type="uint" modifier="shr(10)"/>
<field name="S Clear" size="8" start="4:0" type="uint"/>
<field name="S Write Enable" size="1" start="4:8" type="bool"/>
<field name="S Preload Enable" size="1" start="4:9" type="bool"/>
<field name="S Unload Enable" size="1" start="4:10" type="bool"/>
<field name="Z Internal Format" size="2" start="4:16" type="Z Internal Format"/>
<field name="Z Write Enable" size="1" start="4:18" type="bool"/>
<field name="Z Preload Enable" size="1" start="4:19" type="bool"/>
<field name="Z Unload Enable" size="1" start="4:20" type="bool"/>
<field name="Has ZS CRC Extension" size="1" start="4:21" type="bool"/>
<field name="CRC Read Enable" size="1" start="4:30" type="bool"/>
<field name="CRC Write Enable" size="1" start="4:31" type="bool"/>
<field name="Z Clear" size="32" start="5:0" type="float"/>
</struct>
<struct name="ZS CRC Extension">
<field name="CRC Base" size="64" start="0:0" type="address"/>
<field name="CRC Row Stride" size="32" start="2:0" type="uint"/>
<field name="ZS Write Format" size="4" start="3:0" type="ZS Format"/>
<field name="ZS Block Format" size="2" start="3:4" type="Block Format"/>
<field name="ZS Block Format v7" size="2" start="3:4" type="Block Format v7"/>
<field name="ZS MSAA" size="2" start="3:6" default="Single" type="MSAA"/>
<field name="ZS Big Endian" size="1" start="3:8" type="bool"/>
<field name="ZS Clean Pixel Write Enable" size="1" start="3:10" type="bool"/>
<field name="CRC Render Target" size="4" start="3:11" type="uint"/>
<field name="S Write Format" size="4" start="3:16" type="S Format"/>
<field name="S Block Format" size="2" start="3:20" type="Block Format"/>
<field name="S MSAA" size="2" start="3:22" default="Single" type="MSAA"/>
<field name="ZS Preload Format" size="4" start="3:28" type="ZS Preload Format"/>
<field name="ZS Writeback Base" size="64" start="4:0" type="address"/>
<field name="ZS Writeback Row Stride" size="32" start="6:0" type="uint"/>
<field name="ZS Writeback Surface Stride" size="32" start="7:0" type="uint"/>
<field name="S Writeback Base" size="64" start="8:0" type="address"/>
<field name="S Writeback Row Stride" size="32" start="10:0" type="uint"/>
<field name="S Writeback Surface Stride" size="32" start="11:0" type="uint"/>
<field name="ZS AFBC Header" size="64" start="4:0" type="address"/>
<field name="ZS AFBC Row Stride" size="13" start="6:0" type="uint"/>
<field name="ZS AFBC Chunk Size" size="12" start="7:0" type="uint"/>
<field name="ZS AFBC Sparse" size="1" start="7:16" type="bool"/>
<field name="ZS AFBC Body" size="64" start="8:0" type="address"/>
<field name="ZS AFBC Body Size" size="32" start="10:0" type="uint"/>
<field name="ZS Preload Base" size="64" start="12:0" type="address"/>
<field name="ZS Preload Row Stride" size="32" start="14:0" type="uint"/>
<field name="ZS Preload Surface Stride" size="32" start="15:0" type="uint"/>
<field name="CRC Clear Color" size="64" start="12:0" type="uint"/>
</struct>
<enum name="RT Endianness">
<value name="Little Endian" value="0"/>
<value name="Big Endian 2B" value="1"/>
<value name="Big Endian 4B" value="2"/>
<value name="Big Endian 8B" value="3"/>
</enum>
<enum name="YUV Conv K6">
<value name="0" value="0"/>
<value name="16" value="1"/>
</enum>
<enum name="YUV Conv K7 Clamp">
<value name="MINUS_128_TO_127" value="0"/>
<value name="MINUS_112_TO_111" value="1"/>
<value name="0_TO_255" value="2"/>
<value name="16_TO_239" value="3"/>
</enum>
<enum name="YUV Conv K8">
<value name="220" value="0"/>
<value name="256" value="1"/>
</enum>
<enum name="YUV Swizzle">
<value name="YUVA" value="0"/>
<value name="YVUA" value="1"/>
<value name="UYVA" value="2"/>
<value name="UVYA" value="3"/>
<value name="VUYA" value="4"/>
<value name="VYUA" value="5"/>
<value name="Y00A" value="6"/>
<value name="YXXA" value="7"/>
</enum>
<enum name="YUV Conversion Mode">
<value name="No Conversion" value="0"/>
<value name="BT 601" value="3"/>
<value name="BT 709" value="4"/>
<value name="BT 2020" value="6"/>
</enum>
<enum name="YUV Cr Siting">
<value name="Co-Sited" value="0"/>
<value name="Center Y" value="1"/>
<value name="Center X" value="2"/>
<value name="Center" value="3"/>
<value name="One Quarter" value="4"/>
<value name="Three Quarters" value="5"/>
</enum>
<struct name="Render Target">
<field name="Internal Buffer Offset" size="12" start="0:4" type="uint" modifier="shr(4)"/>
<field name="YUV Enable" size="1" start="0:24" type="bool"/>
<field name="Dithered Clear" size="1" start="0:25" type="bool"/>
<field name="Internal Format" size="6" start="0:26" type="Color Buffer Internal Format"/>
<field name="Write Enable" size="1" start="1:0" type="bool"/>
<field name="Writeback Format" size="5" start="1:3" type="MFBD Color Format"/>
<field name="Writeback Endianness" size="2" start="1:8" type="RT Endianness"/>
<field name="Writeback Block Format" size="2" start="1:10" type="Block Format"/>
<field name="Writeback Block Format v7" size="4" start="1:8" type="Block Format v7"/>
<field name="Writeback MSAA" size="2" start="1:12" type="MSAA"/>
<field name="sRGB" size="1" start="1:14" type="bool"/>
<field name="Dithering Enable" size="1" start="1:15" type="bool"/>
<field name="Swizzle" size="12" start="1:16" type="uint"/>
<field name="Writeback Sampling Mode" size="2" start="1:29" type="Downsampling Accumulation Mode"/>
<field name="Clean Pixel Write Enable" size="1" start="1:31" type="bool"/>
<field name="Preload Enable" size="1" start="2:0" type="bool"/>
<field name="Unload Enable" size="1" start="2:1" type="bool"/>
<field name="Preload Format" size="5" start="2:3" type="MFBD Color Format"/>
<field name="Preload Endianness" size="2" start="2:8" type="RT Endianness"/>
<field name="Preload Block Format" size="4" start="2:10" type="Block Format"/>
<field name="Preload MSAA" size="2" start="2:14" type="MSAA"/>
<field name="YUV Conv K5" size="8" start="2:16" type="uint"/>
<field name="YUV Swizzle" size="3" start="2:16" type="YUV Swizzle"/>
<field name="YUV Full Range" size="1" start="2:20" type="bool"/>
<field name="YUV Conversion Mode" size="4" start="2:21" type="YUV Conversion Mode"/>
<field name="YUV Cr Siting" size="3" start="2:25" type="YUV Cr Siting"/>
<field name="YUV Unsigned Cr Range" size="1" start="2:28" type="bool"/>
<field name="YUV Conv K6" size="1" start="2:24" type="YUV Conv K6"/>
<field name="YUV Conv K7 Clamp" size="2" start="2:25" type="YUV Conv K7 Clamp"/>
<field name="YUV Conv K8" size="1" start="2:27" type="YUV Conv K8"/>
<field name="YUV Conv Disable" size="1" start="2:31" type="bool"/>
<field name="YUV Conv K1" size="8" start="3:0" type="uint"/>
<field name="YUV Conv K2" size="8" start="3:8" type="uint"/>
<field name="YUV Conv K3" size="8" start="3:16" type="uint"/>
<field name="YUV Conv K4" size="8" start="3:24" type="uint"/>
<field name="YUV Plane 0 Base" size="64" start="4:0" type="address"/>
<field name="YUV Plane 1 Base" size="64" start="6:0" type="address"/>
<field name="YUV Plane 2 Base" size="64" start="8:0" type="address"/>
<field name="YUV Plane 0 Stride" size="32" start="10:0" type="uint"/>
<field name="YUV Plane 1 2 Stride" size="32" start="11:0" type="uint"/>
<field name="AFBC Header" size="64" start="4:0" type="address"/>
<field name="AFBC Row Stride" size="13" start="6:0" type="uint"/>
<field name="AFBC Chunk Size" size="12" start="7:0" type="uint"/>
<field name="AFBC Sparse" size="1" start="7:16" type="bool"/>
<field name="AFBC YUV Transform Enable" size="1" start="7:17" type="bool"/>
<field name="AFBC Split Block Enable" size="1" start="7:18" type="bool"/>
<field name="AFBC Wide Block Enable" size="1" start="7:19" type="bool"/>
<field name="AFBC Body" size="64" start="8:0" type="address"/>
<field name="AFBC Body Size" size="32" start="10:0" type="uint"/>
<field name="Writeback Base" size="64" start="8:0" type="address"/>
<field name="Writeback Row Stride" size="32" start="10:0" type="uint"/>
<field name="Writeback Surface Stride" size="32" start="11:0" type="uint"/>
<field name="Preload Base" size="64" start="12:0" type="address"/>
<field name="Preload Row Stride" size="32" start="14:0" type="uint"/>
<field name="Preload Surface Stride" size="32" start="15:0" type="uint"/>
<field name="Clear Color 0" size="32" start="12:0" type="uint"/>
<field name="Clear Color 1" size="32" start="13:0" type="uint"/>
<field name="Clear Color 2" size="32" start="14:0" type="uint"/>
<field name="Clear Color 3" size="32" start="15:0" type="uint"/>
</struct>
<enum name="Pre Post Frame Shader Mode">
<value name="Never" value="0"/>
<value name="Always" value="1"/>
<value name="Intersect" value="2"/>
</enum>
<struct name="Bifrost Framebuffer Parameters">
<field name="Pre Frame 0" size="3" start="0:0" type="Pre Post Frame Shader Mode"/>
<field name="Pre Frame 1" size="3" start="0:3" type="Pre Post Frame Shader Mode"/>
<field name="Post Frame" size="3" start="0:6" type="Pre Post Frame Shader Mode"/>
<field name="Sample Locations" size="64" start="4:0" type="address"/>
<field name="Frame Shader DCDs" size="64" start="6:0" type="address"/>
</struct>
<struct name="Bifrost Tiler Heap">
<field name="Size" size="32" start="1:0" type="uint" modifier="align(4096)"/>
<field name="Base" size="64" start="2:0" type="address"/>
<field name="Bottom" size="64" start="4:0" type="address"/>
<field name="Top" size="64" start="6:0" type="address"/>
</struct>
<struct name="Bifrost Tiler Weights" size="8">
<field name="Weight0" size="16" start="0:16" type="uint"/>
<field name="Weight1" size="16" start="1:16" type="uint"/>
<field name="Weight2" size="16" start="2:16" type="uint"/>
<field name="Weight3" size="16" start="3:16" type="uint"/>
<field name="Weight4" size="16" start="4:16" type="uint"/>
<field name="Weight5" size="16" start="5:16" type="uint"/>
<field name="Weight6" size="16" start="6:16" type="uint"/>
<field name="Weight7" size="16" start="7:16" type="uint"/>
</struct>
<struct name="Bifrost Tiler" size="48">
<field name="Polygon List" size="64" start="0:0" type="address"/>
<field name="Hierarchy Mask" size="13" start="2:0" type="uint"/>
<field name="Sample Pattern" size="3" start="2:13" type="Sample Pattern"/>
<field name="Update Cost Table" size="1" start="2:16" type="bool"/>
<field name="FB Width" size="16" start="3:0" type="uint" modifier="minus(1)"/>
<field name="FB Height" size="16" start="3:16" type="uint" modifier="minus(1)"/>
<field name="Heap" size="64" start="6:0" type="address"/>
<field name="Weights" size="256" start="8:0" type="Bifrost Tiler Weights"/>
</struct>
<struct name="Bifrost Tiler Pointer">
<field name="Address" size="64" start="0:0" type="address"/>
</struct>
<struct name="Bifrost Framebuffer Padding" size="16">
</struct>
<aggregate name="Multi-Target Framebuffer">
<section name="Local Storage" offset="0" type="Local Storage"/>
<section name="Bifrost Parameters" offset="0" type="Bifrost Framebuffer Parameters"/>
<section name="Parameters" offset="32" type="Multi-Target Framebuffer Parameters"/>
<section name="Tiler" offset="56" type="Midgard Tiler"/>
<section name="Tiler Weights" offset="96" type="Midgard Tiler Weights"/>
<section name="Bifrost Tiler Pointer" offset="56" type="Bifrost Tiler Pointer"/>
<section name="Bifrost Padding" offset="64" type="Bifrost Framebuffer Padding"/>
</aggregate>
<struct name="Job Header">
<field name="Exception Status" size="32" start="0:0" type="uint"/>
<field name="First Incomplete Task" size="32" start="1:0" type="uint"/>
<field name="Fault Pointer" size="64" start="2:0" type="address"/>
<field name="Is 64b" size="1" start="4:0" type="bool" default="true"/>
<field name="Type" size="7" start="4:1" type="Job Type"/>
<field name="Barrier" size="1" start="4:8" type="bool"/>
<field name="Invalidate Cache" size="1" start="4:9" type="bool"/>
<field name="Suppress Prefetch" size="1" start="4:11" type="bool"/>
<field name="Enable Texture Mapper" size="1" start="4:12" type="bool"/>
<field name="Relax Dependency 1" size="1" start="4:14" type="bool"/>
<field name="Relax Dependency 2" size="1" start="4:15" type="bool"/>
<field name="Index" size="16" start="4:16" type="uint"/>
<field name="Dependency 1" size="16" start="5:0" type="uint"/>
<field name="Dependency 2" size="16" start="5:16" type="uint"/>
<field name="Next" size="64" start="6:0" type="address"/>
</struct>
<struct name="Fragment Job Payload" size="8">
<field name="Bound Min X" size="12" start="0:0" type="uint"/>
<field name="Bound Min Y" size="12" start="0:16" type="uint"/>
<field name="Bound Max X" size="12" start="1:0" type="uint"/>
<field name="Bound Max Y" size="12" start="1:16" type="uint"/>
<field name="Has Tile Enable Map" size="1" start="1:31" type="bool"/>
<field name="Framebuffer" size="64" start="2:0" type="address"/>
<field name="Tile Enable Map" size="64" start="4:0" type="address"/>
<field name="Tile Enable Map Row Stride" size="8" start="6:0" type="uint"/>
</struct>
<aggregate name="Fragment Job">
<section name="Header" offset="0" type="Job Header"/>
<section name="Payload" offset="32" type="Fragment Job Payload"/>
</aggregate>
<enum name="Write Value Type">
<value name="Cycle Counter" value="1"/>
<value name="System Timestamp" value="2"/>
<value name="Zero" value="3"/>
<value name="Immediate 8" value="4"/>
<value name="Immediate 16" value="5"/>
<value name="Immediate 32" value="6"/>
<value name="Immediate 64" value="7"/>
</enum>
<struct name="Write Value Job Payload">
<field name="Address" size="64" start="0:0" type="address"/>
<field name="Type" size="32" start="2:0" type="Write Value Type"/>
<field name="Immediate Value" size="64" start="4:0" type="uint"/>
</struct>
<aggregate name="Write Value Job">
<section name="Header" offset="0" type="Job Header"/>
<section name="Payload" offset="32" type="Write Value Job Payload"/>
</aggregate>
<struct name="Compute Job Parameters" size="6">
<field name="Job Task Split" size="4" start="0:26" type="uint"/>
</struct>
<!-- Compute job also covers vertex and geometry operations -->
<aggregate name="Compute Job">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Parameters" offset="40" type="Compute Job Parameters"/>
<section name="Draw" offset="64" type="Draw"/>
</aggregate>
<struct name="Primitive Size">
<field name="Constant" size="32" start="0:0" type="float"/>
<field name="Size Array" size="64" start="0:0" type="uint"/>
</struct>
<aggregate name="Midgard Tiler Job" size="192">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Primitive" offset="40" type="Primitive"/>
<section name="Draw" offset="64" type="Draw"/>
<section name="Primitive Size" offset="184" type="Primitive Size"/>
</aggregate>
<struct name="Bifrost Tiler Job Padding" size="12">
</struct>
<aggregate name="Bifrost Tiler Job" size="256">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Primitive" offset="40" type="Primitive"/>
<section name="Primitive Size" offset="64" type="Primitive Size"/>
<section name="Tiler" offset="72" type="Bifrost Tiler Pointer"/>
<section name="Padding" offset="80" type="Bifrost Tiler Job Padding"/>
<section name="Draw" offset="128" type="Draw"/>
</aggregate>
</panxml>