1*61046927SAndroid Build Coastguard Worker<?xml version="1.0" ?> 2*61046927SAndroid Build Coastguard Worker<genxml> 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker <enum name="Channel"> 5*61046927SAndroid Build Coastguard Worker <value name="R" value="0"/> 6*61046927SAndroid Build Coastguard Worker <value name="G" value="1"/> 7*61046927SAndroid Build Coastguard Worker <value name="B" value="2"/> 8*61046927SAndroid Build Coastguard Worker <value name="A" value="3"/> 9*61046927SAndroid Build Coastguard Worker <value name="1" value="4"/> 10*61046927SAndroid Build Coastguard Worker <value name="0" value="5"/> 11*61046927SAndroid Build Coastguard Worker </enum> 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard Worker <enum name="ZS Func"> 14*61046927SAndroid Build Coastguard Worker <value name="Never" value="0"/> 15*61046927SAndroid Build Coastguard Worker <value name="Less" value="1"/> 16*61046927SAndroid Build Coastguard Worker <value name="Equal" value="2"/> 17*61046927SAndroid Build Coastguard Worker <value name="Lequal" value="3"/> 18*61046927SAndroid Build Coastguard Worker <value name="Greater" value="4"/> 19*61046927SAndroid Build Coastguard Worker <value name="Not Equal" value="5"/> 20*61046927SAndroid Build Coastguard Worker <value name="Gequal" value="6"/> 21*61046927SAndroid Build Coastguard Worker <value name="Always" value="7"/> 22*61046927SAndroid Build Coastguard Worker </enum> 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard Worker <enum name="Compare func"> 25*61046927SAndroid Build Coastguard Worker <value name="Lequal" value="0"/> 26*61046927SAndroid Build Coastguard Worker <value name="Gequal" value="1"/> 27*61046927SAndroid Build Coastguard Worker <value name="Less" value="2"/> 28*61046927SAndroid Build Coastguard Worker <value name="Greater" value="3"/> 29*61046927SAndroid Build Coastguard Worker <value name="Equal" value="4"/> 30*61046927SAndroid Build Coastguard Worker <value name="Not Equal" value="5"/> 31*61046927SAndroid Build Coastguard Worker <value name="Always" value="6"/> 32*61046927SAndroid Build Coastguard Worker <value name="Never" value="7"/> 33*61046927SAndroid Build Coastguard Worker </enum> 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker <enum name="Stencil Op"> 36*61046927SAndroid Build Coastguard Worker <value name="Keep" value="0"/> 37*61046927SAndroid Build Coastguard Worker <value name="Zero" value="1"/> 38*61046927SAndroid Build Coastguard Worker <value name="Replace" value="2"/> 39*61046927SAndroid Build Coastguard Worker <value name="Incr Sat" value="3"/> 40*61046927SAndroid Build Coastguard Worker <value name="Decr Sat" value="4"/> 41*61046927SAndroid Build Coastguard Worker <value name="Invert" value="5"/> 42*61046927SAndroid Build Coastguard Worker <value name="Incr Wrap" value="6"/> 43*61046927SAndroid Build Coastguard Worker <value name="Decr Wrap" value="7"/> 44*61046927SAndroid Build Coastguard Worker </enum> 45*61046927SAndroid Build Coastguard Worker 46*61046927SAndroid Build Coastguard Worker <enum name="Visibility Mode"> 47*61046927SAndroid Build Coastguard Worker <value name="None" value="0"/> 48*61046927SAndroid Build Coastguard Worker <value name="Counting" value="2"/> 49*61046927SAndroid Build Coastguard Worker <value name="Boolean" value="3"/> 50*61046927SAndroid Build Coastguard Worker </enum> 51*61046927SAndroid Build Coastguard Worker 52*61046927SAndroid Build Coastguard Worker <enum name="Polygon Mode"> 53*61046927SAndroid Build Coastguard Worker <value name="Fill" value="0"/> 54*61046927SAndroid Build Coastguard Worker <value name="Line" value="1"/> 55*61046927SAndroid Build Coastguard Worker <value name="Point" value="2"/> 56*61046927SAndroid Build Coastguard Worker </enum> 57*61046927SAndroid Build Coastguard Worker 58*61046927SAndroid Build Coastguard Worker <enum name="Primitive"> 59*61046927SAndroid Build Coastguard Worker <value name="Points" value="0"/> 60*61046927SAndroid Build Coastguard Worker <value name="Lines" value="1"/> 61*61046927SAndroid Build Coastguard Worker <value name="Line strip" value="3"/> 62*61046927SAndroid Build Coastguard Worker <value name="Line loop" value="5"/> 63*61046927SAndroid Build Coastguard Worker <value name="Triangles" value="6"/> 64*61046927SAndroid Build Coastguard Worker <value name="Triangle strip" value="9"/> 65*61046927SAndroid Build Coastguard Worker <value name="Triangle fan" value="11"/> 66*61046927SAndroid Build Coastguard Worker <value name="Quads" value="14"/> 67*61046927SAndroid Build Coastguard Worker <value name="Quad strip" value="15"/> 68*61046927SAndroid Build Coastguard Worker </enum> 69*61046927SAndroid Build Coastguard Worker 70*61046927SAndroid Build Coastguard Worker <enum name="Object Type"> 71*61046927SAndroid Build Coastguard Worker <value name="Triangle" value="0"/> 72*61046927SAndroid Build Coastguard Worker <value name="Line" value="1"/> 73*61046927SAndroid Build Coastguard Worker <value name="Point sprite UV=10" value="2"/> 74*61046927SAndroid Build Coastguard Worker <value name="Point sprite UV=01" value="4"/> 75*61046927SAndroid Build Coastguard Worker <!-- Line-filled tri. Point-filled tri. UV. Rect. Match RGX. --> 76*61046927SAndroid Build Coastguard Worker </enum> 77*61046927SAndroid Build Coastguard Worker 78*61046927SAndroid Build Coastguard Worker <enum name="Layout"> 79*61046927SAndroid Build Coastguard Worker <value name="Linear" value="0"/> 80*61046927SAndroid Build Coastguard Worker <!-- Default layout if no other layout is set --> 81*61046927SAndroid Build Coastguard Worker <value name="Null" value="1"/> 82*61046927SAndroid Build Coastguard Worker <!-- Morton order --> 83*61046927SAndroid Build Coastguard Worker <value name="Twiddled" value="2"/> 84*61046927SAndroid Build Coastguard Worker <!-- With a metadata buffer --> 85*61046927SAndroid Build Coastguard Worker <value name="Compressed" value="3"/> 86*61046927SAndroid Build Coastguard Worker </enum> 87*61046927SAndroid Build Coastguard Worker 88*61046927SAndroid Build Coastguard Worker <enum name="Channels"> 89*61046927SAndroid Build Coastguard Worker <value name="R8" value="0x00"/> 90*61046927SAndroid Build Coastguard Worker <value name="R16" value="0x09"/> 91*61046927SAndroid Build Coastguard Worker <value name="R8G8" value="0x0A"/> 92*61046927SAndroid Build Coastguard Worker <value name="R5G6B5" value="0x0B"/> 93*61046927SAndroid Build Coastguard Worker <value name="R4G4B4A4" value="0x0C"/> 94*61046927SAndroid Build Coastguard Worker <value name="A1R5G5B5" value="0x0D"/> 95*61046927SAndroid Build Coastguard Worker <value name="R5G5B5A1" value="0x0E"/> 96*61046927SAndroid Build Coastguard Worker <value name="R32" value="0x21"/> 97*61046927SAndroid Build Coastguard Worker <value name="R16G16" value="0x23"/> 98*61046927SAndroid Build Coastguard Worker <value name="R11G11B10" value="0x25"/> 99*61046927SAndroid Build Coastguard Worker <value name="R10G10B10A2" value="0x26"/> 100*61046927SAndroid Build Coastguard Worker <value name="R9G9B9E5" value="0x27"/> 101*61046927SAndroid Build Coastguard Worker <value name="R8G8B8A8" value="0x28"/> 102*61046927SAndroid Build Coastguard Worker <value name="R32G32" value="0x31"/> 103*61046927SAndroid Build Coastguard Worker <value name="R16G16B16A16" value="0x32"/> 104*61046927SAndroid Build Coastguard Worker 105*61046927SAndroid Build Coastguard Worker <!-- Software-defined value selected not to clash with the hardware values. 106*61046927SAndroid Build Coastguard Worker Texture buffer reads from this format are lowered. It is invalid to 107*61046927SAndroid Build Coastguard Worker use this format for anything else. --> 108*61046927SAndroid Build Coastguard Worker <value name="R32G32B32 (Emulated)" value="0x36"/> 109*61046927SAndroid Build Coastguard Worker 110*61046927SAndroid Build Coastguard Worker <value name="R32G32B32A32" value="0x38"/> 111*61046927SAndroid Build Coastguard Worker <value name="GBGR 422" value="0x40"/> <!-- Subsampled, swizzle BRG1 --> 112*61046927SAndroid Build Coastguard Worker <value name="BGRG 422" value="0x41"/> <!-- Subsampled, swizzle BRG1 --> 113*61046927SAndroid Build Coastguard Worker 114*61046927SAndroid Build Coastguard Worker <!-- Compressed --> 115*61046927SAndroid Build Coastguard Worker <value name="PVRTC 2bpp" value="0x50"/> 116*61046927SAndroid Build Coastguard Worker <value name="PVRTC 4bpp" value="0x51"/> 117*61046927SAndroid Build Coastguard Worker 118*61046927SAndroid Build Coastguard Worker <value name="ETC2 RGB8" value="0x58"/> 119*61046927SAndroid Build Coastguard Worker <value name="ETC2 RGBA8" value="0x59"/> 120*61046927SAndroid Build Coastguard Worker <value name="ETC2 RGB8A1" value="0x5A"/> 121*61046927SAndroid Build Coastguard Worker <value name="EAC R11" value="0x5B"/> 122*61046927SAndroid Build Coastguard Worker <value name="EAC RG11" value="0x5C"/> 123*61046927SAndroid Build Coastguard Worker 124*61046927SAndroid Build Coastguard Worker <!-- For LDR use with UNORM/no-sRGB, for sRGB use with UNORM/sRGB, for HDR 125*61046927SAndroid Build Coastguard Worker use with FLOAT/no-sRGB --> 126*61046927SAndroid Build Coastguard Worker <value name="ASTC 4x4" value="0x60"/> 127*61046927SAndroid Build Coastguard Worker <value name="ASTC 5x4" value="0x61"/> 128*61046927SAndroid Build Coastguard Worker <value name="ASTC 5x5" value="0x62"/> 129*61046927SAndroid Build Coastguard Worker <value name="ASTC 6x5" value="0x63"/> 130*61046927SAndroid Build Coastguard Worker <value name="ASTC 6x6" value="0x64"/> 131*61046927SAndroid Build Coastguard Worker <value name="ASTC 8x5" value="0x65"/> 132*61046927SAndroid Build Coastguard Worker <value name="ASTC 8x6" value="0x66"/> 133*61046927SAndroid Build Coastguard Worker <value name="ASTC 8x8" value="0x67"/> 134*61046927SAndroid Build Coastguard Worker <value name="ASTC 10x5" value="0x68"/> 135*61046927SAndroid Build Coastguard Worker <value name="ASTC 10x6" value="0x69"/> 136*61046927SAndroid Build Coastguard Worker <value name="ASTC 10x8" value="0x6A"/> 137*61046927SAndroid Build Coastguard Worker <value name="ASTC 10x10" value="0x6B"/> 138*61046927SAndroid Build Coastguard Worker <value name="ASTC 12x10" value="0x6C"/> 139*61046927SAndroid Build Coastguard Worker <value name="ASTC 12x12" value="0x6D"/> 140*61046927SAndroid Build Coastguard Worker 141*61046927SAndroid Build Coastguard Worker <value name="BC1" value="0x74"/> 142*61046927SAndroid Build Coastguard Worker <value name="BC2" value="0x75"/> 143*61046927SAndroid Build Coastguard Worker <value name="BC3" value="0x76"/> 144*61046927SAndroid Build Coastguard Worker <value name="BC4" value="0x77"/> 145*61046927SAndroid Build Coastguard Worker <value name="BC5" value="0x78"/> 146*61046927SAndroid Build Coastguard Worker <value name="BC6H" value="0x79"/> 147*61046927SAndroid Build Coastguard Worker <value name="BC6H Ufloat" value="0x7A"/> 148*61046927SAndroid Build Coastguard Worker <value name="BC7" value="0x7B"/> 149*61046927SAndroid Build Coastguard Worker </enum> 150*61046927SAndroid Build Coastguard Worker 151*61046927SAndroid Build Coastguard Worker <enum name="Texture Type"> 152*61046927SAndroid Build Coastguard Worker <value name="Unorm" value="0"/> 153*61046927SAndroid Build Coastguard Worker <value name="Snorm" value="1"/> 154*61046927SAndroid Build Coastguard Worker <value name="Uint" value="2"/> 155*61046927SAndroid Build Coastguard Worker <value name="Sint" value="3"/> 156*61046927SAndroid Build Coastguard Worker <value name="Float" value="4"/> 157*61046927SAndroid Build Coastguard Worker <value name="XR" value="5"/> 158*61046927SAndroid Build Coastguard Worker </enum> 159*61046927SAndroid Build Coastguard Worker 160*61046927SAndroid Build Coastguard Worker <struct name="CF binding header" size="4"> 161*61046927SAndroid Build Coastguard Worker <field name="Number of 32-bit slots" size="8" start="0:0" type="uint"/> 162*61046927SAndroid Build Coastguard Worker <field name="Number of coefficient registers" size="8" start="0:8" type="uint"/> 163*61046927SAndroid Build Coastguard Worker </struct> 164*61046927SAndroid Build Coastguard Worker 165*61046927SAndroid Build Coastguard Worker <enum name="Shade model"> 166*61046927SAndroid Build Coastguard Worker <value name="Flat vertex 0" value="0"/> 167*61046927SAndroid Build Coastguard Worker <value name="Flat vertex 2" value="2"/> 168*61046927SAndroid Build Coastguard Worker <value name="Linear" value="3"/> 169*61046927SAndroid Build Coastguard Worker <value name="Flat vertex 1" value="6"/> 170*61046927SAndroid Build Coastguard Worker <value name="Perspective" value="7"/> 171*61046927SAndroid Build Coastguard Worker </enum> 172*61046927SAndroid Build Coastguard Worker 173*61046927SAndroid Build Coastguard Worker <enum name="Coefficient source"> 174*61046927SAndroid Build Coastguard Worker <value name="Varying" value="0"/> 175*61046927SAndroid Build Coastguard Worker <value name="Fragcoord Z" value="1"/> 176*61046927SAndroid Build Coastguard Worker <value name="Point coord" value="2"/> 177*61046927SAndroid Build Coastguard Worker <value name="Primitive ID" value="3"/> 178*61046927SAndroid Build Coastguard Worker <!-- Vec2 only --> 179*61046927SAndroid Build Coastguard Worker <value name="Barycentric coord" value="5"/> 180*61046927SAndroid Build Coastguard Worker </enum> 181*61046927SAndroid Build Coastguard Worker 182*61046927SAndroid Build Coastguard Worker <struct name="CF binding" size="4"> 183*61046927SAndroid Build Coastguard Worker <field name="Components" size="2" start="0" type="uint" modifier="minus(1)"/> 184*61046927SAndroid Build Coastguard Worker <field name="Shade model" size="3" start="2" type="Shade model"/> 185*61046927SAndroid Build Coastguard Worker <field name="Source" size="3" start="5" type="Coefficient source"/> 186*61046927SAndroid Build Coastguard Worker <field name="Base slot" size="8" start="8" type="uint"/> 187*61046927SAndroid Build Coastguard Worker <field name="Base coefficient register" size="8" start="16" type="uint"/> 188*61046927SAndroid Build Coastguard Worker </struct> 189*61046927SAndroid Build Coastguard Worker 190*61046927SAndroid Build Coastguard Worker <enum name="Texture dimension"> 191*61046927SAndroid Build Coastguard Worker <value name="1D" value="0"/> 192*61046927SAndroid Build Coastguard Worker <value name="1D Array" value="1"/> 193*61046927SAndroid Build Coastguard Worker <value name="2D" value="2"/> 194*61046927SAndroid Build Coastguard Worker <value name="2D Array" value="3"/> 195*61046927SAndroid Build Coastguard Worker <value name="2D Multisampled" value="4"/> 196*61046927SAndroid Build Coastguard Worker <value name="3D" value="5"/> 197*61046927SAndroid Build Coastguard Worker <value name="Cube" value="6"/> 198*61046927SAndroid Build Coastguard Worker <value name="Cube Array" value="7"/> 199*61046927SAndroid Build Coastguard Worker <value name="2D Array Multisampled" value="8"/> 200*61046927SAndroid Build Coastguard Worker </enum> 201*61046927SAndroid Build Coastguard Worker 202*61046927SAndroid Build Coastguard Worker <enum name="Sample Count"> 203*61046927SAndroid Build Coastguard Worker <value name="2" value="0"/> 204*61046927SAndroid Build Coastguard Worker <value name="4" value="1"/> 205*61046927SAndroid Build Coastguard Worker </enum> 206*61046927SAndroid Build Coastguard Worker 207*61046927SAndroid Build Coastguard Worker <struct name="PBE" size="24"> 208*61046927SAndroid Build Coastguard Worker <field name="Dimension" size="4" start="0" type="Texture dimension" default="2D"/> 209*61046927SAndroid Build Coastguard Worker <field name="Layout" size="2" start="4" type="Layout"/> 210*61046927SAndroid Build Coastguard Worker <field name="Channels" size="7" start="6" type="Channels"/> 211*61046927SAndroid Build Coastguard Worker <field name="Type" size="3" start="13" type="Texture Type"/> 212*61046927SAndroid Build Coastguard Worker <field name="Swizzle R" size="2" start="16" type="Channel"/> 213*61046927SAndroid Build Coastguard Worker <field name="Swizzle G" size="2" start="18" type="Channel"/> 214*61046927SAndroid Build Coastguard Worker <field name="Swizzle B" size="2" start="20" type="Channel"/> 215*61046927SAndroid Build Coastguard Worker <field name="Swizzle A" size="2" start="22" type="Channel"/> 216*61046927SAndroid Build Coastguard Worker <field name="Width" size="14" start="24" type="uint" modifier="minus(1)"/> 217*61046927SAndroid Build Coastguard Worker <field name="Height" size="14" start="38" type="uint" modifier="minus(1)"/> 218*61046927SAndroid Build Coastguard Worker <field name="Unk 52" size="1" start="52" type="bool"/> 219*61046927SAndroid Build Coastguard Worker <field name="Rotate 90" size="1" start="53" type="bool" default="false"/> 220*61046927SAndroid Build Coastguard Worker <field name="Flip vertical" size="1" start="54" type="bool" default="false"/> 221*61046927SAndroid Build Coastguard Worker <field name="Samples" size="1" start="56" type="Sample Count"/> 222*61046927SAndroid Build Coastguard Worker <field name="Unk mipmapped" size="1" start="58" type="bool"/> 223*61046927SAndroid Build Coastguard Worker <field name="Compressed 1" size="1" start="59" type="bool"/> 224*61046927SAndroid Build Coastguard Worker <field name="Buffer" size="36" start="64" type="address" modifier="shr(4)"/> 225*61046927SAndroid Build Coastguard Worker <field name="Level" size="4" start="100" type="uint"/> 226*61046927SAndroid Build Coastguard Worker 227*61046927SAndroid Build Coastguard Worker <!-- If layout is not linear. Layers must be zero unless rendering to an 228*61046927SAndroid Build Coastguard Worker array texture (with a layered framebuffer) --> 229*61046927SAndroid Build Coastguard Worker <field name="Levels" size="4" start="104" type="uint" modifier="minus(1)"/> 230*61046927SAndroid Build Coastguard Worker <field name="Layers" size="14" start="108" type="uint" modifier="minus(1)" default="1"/> 231*61046927SAndroid Build Coastguard Worker <field name="Page-aligned layers" size="1" start="124" type="bool"/> 232*61046927SAndroid Build Coastguard Worker 233*61046927SAndroid Build Coastguard Worker <!-- Should writes to this image convert to sRGB? 234*61046927SAndroid Build Coastguard Worker 235*61046927SAndroid Build Coastguard Worker Note that imageblock writes do not use this flag, instead doing the 236*61046927SAndroid Build Coastguard Worker conversion when writing into the tilebuffer. --> 237*61046927SAndroid Build Coastguard Worker <field name="sRGB" size="1" start="125" type="bool"/> 238*61046927SAndroid Build Coastguard Worker 239*61046927SAndroid Build Coastguard Worker <!-- Read the next word (set for compression or linear 2D arrays) --> 240*61046927SAndroid Build Coastguard Worker <field name="Extended" size="1" start="127" type="bool"/> 241*61046927SAndroid Build Coastguard Worker 242*61046927SAndroid Build Coastguard Worker <!-- If layout is linear. Off by 4? --> 243*61046927SAndroid Build Coastguard Worker <field name="Stride" size="21" start="104" type="hex"/> 244*61046927SAndroid Build Coastguard Worker 245*61046927SAndroid Build Coastguard Worker <!-- If layout is compressed --> 246*61046927SAndroid Build Coastguard Worker <field name="Acceleration buffer" size="64" start="128" type="address" modifier="shr(4)"/> 247*61046927SAndroid Build Coastguard Worker 248*61046927SAndroid Build Coastguard Worker <!-- If layout is linear, stride has the minus 1 encoded --> 249*61046927SAndroid Build Coastguard Worker <field name="Depth (linear)" size="11" start="128" type="uint" modifier="minus(1)" default="1"/> 250*61046927SAndroid Build Coastguard Worker <field name="Layer stride (linear)" size="27" start="139" type="uint" modifier="shr(7)"/> 251*61046927SAndroid Build Coastguard Worker 252*61046927SAndroid Build Coastguard Worker <!-- If neither, for software use to accelerate atomics and multisampled 253*61046927SAndroid Build Coastguard Worker writes. These are forbidden for compressed images and linear 2D arrays, 254*61046927SAndroid Build Coastguard Worker leaving this area free. 255*61046927SAndroid Build Coastguard Worker --> 256*61046927SAndroid Build Coastguard Worker <field name="Level offset (sw)" size="27" start="128" type="uint" modifier="shr(7)"/> 257*61046927SAndroid Build Coastguard Worker <field name="Aligned width MSAA (sw)" size="15" start="128" type="uint"/> 258*61046927SAndroid Build Coastguard Worker <field name="Tile width (sw)" size="3" start="155" type="uint" modifier="log2" default="1"/> 259*61046927SAndroid Build Coastguard Worker <field name="Tile height (sw)" size="3" start="158" type="uint" modifier="log2" default="1"/> 260*61046927SAndroid Build Coastguard Worker <field name="Layer stride (sw)" size="27" start="161" type="uint" modifier="shr(7)"/> 261*61046927SAndroid Build Coastguard Worker <field name="Sample count log2 (sw)" size="2" start="188" type="uint"/> 262*61046927SAndroid Build Coastguard Worker <field name="Buffer offset (sw)" size="32" start="128" type="uint"/> 263*61046927SAndroid Build Coastguard Worker </struct> 264*61046927SAndroid Build Coastguard Worker 265*61046927SAndroid Build Coastguard Worker <struct name="Texture" size="24"> 266*61046927SAndroid Build Coastguard Worker <field name="Dimension" size="4" start="0" type="Texture dimension"/> 267*61046927SAndroid Build Coastguard Worker <field name="Layout" size="2" start="4" type="Layout"/> 268*61046927SAndroid Build Coastguard Worker <field name="Channels" size="7" start="6" type="Channels"/> 269*61046927SAndroid Build Coastguard Worker <field name="Type" size="3" start="13" type="Texture Type"/> 270*61046927SAndroid Build Coastguard Worker <field name="Swizzle R" size="3" start="16" type="Channel"/> 271*61046927SAndroid Build Coastguard Worker <field name="Swizzle G" size="3" start="19" type="Channel"/> 272*61046927SAndroid Build Coastguard Worker <field name="Swizzle B" size="3" start="22" type="Channel"/> 273*61046927SAndroid Build Coastguard Worker <field name="Swizzle A" size="3" start="25" type="Channel"/> 274*61046927SAndroid Build Coastguard Worker <field name="Width" size="14" start="28" type="uint" modifier="minus(1)" default="1"/> 275*61046927SAndroid Build Coastguard Worker <field name="Height" size="14" start="42" type="uint" modifier="minus(1)" default="1"/> 276*61046927SAndroid Build Coastguard Worker <field name="First level" size="4" start="56" type="uint"/> 277*61046927SAndroid Build Coastguard Worker <field name="Last level" size="4" start="60" type="uint"/> 278*61046927SAndroid Build Coastguard Worker <field name="Samples" size="1" start="64" type="Sample Count"/> 279*61046927SAndroid Build Coastguard Worker <field name="Address" size="36" start="66" type="hex" modifier="shr(4)"/> 280*61046927SAndroid Build Coastguard Worker <!-- Unknown bit set by Metal when mipmapping. Might relate to a mechanism 281*61046927SAndroid Build Coastguard Worker to switch tile size (or disable tiling altogether?) at small mip levels to 282*61046927SAndroid Build Coastguard Worker reduce wasted memory due to padding. Causing test flakiness when set. --> 283*61046927SAndroid Build Coastguard Worker <field name="Unk mipmapped" size="1" start="102" type="bool"/> 284*61046927SAndroid Build Coastguard Worker <field name="Compressed 1" size="1" start="103" type="bool"/> 285*61046927SAndroid Build Coastguard Worker <!-- This is set when no texture is bound, with layout 1 --> 286*61046927SAndroid Build Coastguard Worker <field name="Null" size="1" start="105" type="bool"/> 287*61046927SAndroid Build Coastguard Worker <field name="Compression" size="2" start="106" type="hex"/> <!-- 0 for uncompressed --> 288*61046927SAndroid Build Coastguard Worker <field name="sRGB" size="1" start="108" type="bool"/> 289*61046927SAndroid Build Coastguard Worker <field name="sRGB 2-channel" size="1" start="109" type="bool"/> 290*61046927SAndroid Build Coastguard Worker <field name="Stride" size="18" start="110" type="hex" modifier="shr(4)"/> 291*61046927SAndroid Build Coastguard Worker <!-- Note that 3D/arrays cannot be linear. --> 292*61046927SAndroid Build Coastguard Worker <field name="Depth" size="14" start="110" type="uint" modifier="minus(1)" default="1"/> 293*61046927SAndroid Build Coastguard Worker <field name="Page-aligned layers" size="1" start="126" type="bool"/> 294*61046927SAndroid Build Coastguard Worker 295*61046927SAndroid Build Coastguard Worker <!-- Read the next word (set for compression or linear 2D arrays) --> 296*61046927SAndroid Build Coastguard Worker <field name="Extended" size="1" start="127" type="bool"/> 297*61046927SAndroid Build Coastguard Worker 298*61046927SAndroid Build Coastguard Worker <!-- If layout is compressed --> 299*61046927SAndroid Build Coastguard Worker <field name="Acceleration buffer" size="64" start="128" type="address" modifier="shr(4)"/> 300*61046927SAndroid Build Coastguard Worker 301*61046927SAndroid Build Coastguard Worker <!-- If layout is linear, stride has the minus 1 encoded --> 302*61046927SAndroid Build Coastguard Worker <field name="Depth (linear)" size="11" start="128" type="uint" modifier="minus(1)" default="1"/> 303*61046927SAndroid Build Coastguard Worker <field name="Layer stride (linear)" size="27" start="139" type="uint" modifier="shr(7)"/> 304*61046927SAndroid Build Coastguard Worker 305*61046927SAndroid Build Coastguard Worker <!-- Buffer texture metadata --> 306*61046927SAndroid Build Coastguard Worker <field name="Buffer size (sw)" size="32" start="128" type="uint"/> 307*61046927SAndroid Build Coastguard Worker <field name="Buffer offset (sw)" size="32" start="160" type="uint"/> 308*61046927SAndroid Build Coastguard Worker </struct> 309*61046927SAndroid Build Coastguard Worker 310*61046927SAndroid Build Coastguard Worker <enum name="Wrap"> 311*61046927SAndroid Build Coastguard Worker <value name="Clamp to edge" value="0"/> 312*61046927SAndroid Build Coastguard Worker <value name="Repeat" value="1"/> 313*61046927SAndroid Build Coastguard Worker <value name="Mirrored repeat" value="2"/> 314*61046927SAndroid Build Coastguard Worker <value name="Clamp to border" value="3"/> 315*61046927SAndroid Build Coastguard Worker <value name="Clamp (GL)" value="4"/> 316*61046927SAndroid Build Coastguard Worker <value name="Mirrored clamp to edge" value="5"/> 317*61046927SAndroid Build Coastguard Worker </enum> 318*61046927SAndroid Build Coastguard Worker 319*61046927SAndroid Build Coastguard Worker <enum name="Mip filter"> 320*61046927SAndroid Build Coastguard Worker <value name="None" value="0"/> 321*61046927SAndroid Build Coastguard Worker <value name="Nearest" value="1"/> 322*61046927SAndroid Build Coastguard Worker <value name="Linear" value="2"/> 323*61046927SAndroid Build Coastguard Worker </enum> 324*61046927SAndroid Build Coastguard Worker 325*61046927SAndroid Build Coastguard Worker <enum name="Border colour"> 326*61046927SAndroid Build Coastguard Worker <value name="Transparent black" value="0"/> 327*61046927SAndroid Build Coastguard Worker <value name="Opaque black" value="1"/> 328*61046927SAndroid Build Coastguard Worker <value name="Opaque white" value="2"/> 329*61046927SAndroid Build Coastguard Worker <value name="Custom" value="3"/> 330*61046927SAndroid Build Coastguard Worker </enum> 331*61046927SAndroid Build Coastguard Worker 332*61046927SAndroid Build Coastguard Worker <enum name="Filter"> 333*61046927SAndroid Build Coastguard Worker <value name="Nearest" value="0"/> 334*61046927SAndroid Build Coastguard Worker <value name="Linear" value="1"/> 335*61046927SAndroid Build Coastguard Worker <value name="Bicubic" value="2"/> 336*61046927SAndroid Build Coastguard Worker </enum> 337*61046927SAndroid Build Coastguard Worker 338*61046927SAndroid Build Coastguard Worker <struct name="Sampler" size="8"> 339*61046927SAndroid Build Coastguard Worker <field name="Minimum LOD" size="10" start="0" type="lod" default="0.0"/> 340*61046927SAndroid Build Coastguard Worker <field name="Maximum LOD" size="10" start="10" type="lod" default="INFINITY"/> 341*61046927SAndroid Build Coastguard Worker <field name="Maximum anisotropy" size="3" start="20" type="uint" default="1" modifier="log2"/> 342*61046927SAndroid Build Coastguard Worker <field name="Magnify" size="2" start="23" type="Filter"/> 343*61046927SAndroid Build Coastguard Worker <field name="Minify" size="2" start="25" type="Filter"/> 344*61046927SAndroid Build Coastguard Worker <field name="Mip filter" size="2" start="27" type="Mip filter"/> 345*61046927SAndroid Build Coastguard Worker <field name="Wrap S" size="3" start="29" type="Wrap"/> 346*61046927SAndroid Build Coastguard Worker <field name="Wrap T" size="3" start="32" type="Wrap"/> 347*61046927SAndroid Build Coastguard Worker <field name="Wrap R" size="3" start="35" type="Wrap"/> 348*61046927SAndroid Build Coastguard Worker <field name="Pixel coordinates" size="1" start="38" type="bool"/> 349*61046927SAndroid Build Coastguard Worker <field name="Compare func" size="3" start="39" type="Compare func"/> 350*61046927SAndroid Build Coastguard Worker <field name="Compare enable" size="1" start="42" type="bool"/> 351*61046927SAndroid Build Coastguard Worker <field name="Border colour" size="2" start="55" type="Border colour"/> 352*61046927SAndroid Build Coastguard Worker <field name="Seamful cube maps" size="1" start="57" type="bool"/> 353*61046927SAndroid Build Coastguard Worker </struct> 354*61046927SAndroid Build Coastguard Worker 355*61046927SAndroid Build Coastguard Worker <struct name="Border" size="16"> 356*61046927SAndroid Build Coastguard Worker <field name="Channel 0" size="32" start="0:0" type="hex"/> 357*61046927SAndroid Build Coastguard Worker <field name="Channel 1" size="32" start="1:0" type="hex"/> 358*61046927SAndroid Build Coastguard Worker <field name="Channel 2" size="32" start="2:0" type="hex"/> 359*61046927SAndroid Build Coastguard Worker <field name="Channel 3" size="32" start="3:0" type="hex"/> 360*61046927SAndroid Build Coastguard Worker </struct> 361*61046927SAndroid Build Coastguard Worker 362*61046927SAndroid Build Coastguard Worker <!--- Pointed to from the command buffer --> 363*61046927SAndroid Build Coastguard Worker <struct name="Scissor" size="16"> 364*61046927SAndroid Build Coastguard Worker <field name="Max X" size="16" start="0:0" type="uint"/> 365*61046927SAndroid Build Coastguard Worker <field name="Min X" size="16" start="0:16" type="uint"/> 366*61046927SAndroid Build Coastguard Worker <field name="Max Y" size="16" start="1:0" type="uint"/> 367*61046927SAndroid Build Coastguard Worker <field name="Min Y" size="16" start="1:16" type="uint"/> 368*61046927SAndroid Build Coastguard Worker <field name="Min Z" size="32" start="2:0" type="float"/> 369*61046927SAndroid Build Coastguard Worker <field name="Max Z" size="32" start="3:0" type="float"/> 370*61046927SAndroid Build Coastguard Worker </struct> 371*61046927SAndroid Build Coastguard Worker 372*61046927SAndroid Build Coastguard Worker <!-- Note: this structure is not padded. It really is 12 bytes --> 373*61046927SAndroid Build Coastguard Worker <struct name="Depth bias" size="12"> 374*61046927SAndroid Build Coastguard Worker <field name="Depth bias" size="32" start="0:0" type="float"/> 375*61046927SAndroid Build Coastguard Worker <field name="Slope scale" size="32" start="1:0" type="float"/> 376*61046927SAndroid Build Coastguard Worker <field name="Clamp" size="32" start="2:0" type="float"/> 377*61046927SAndroid Build Coastguard Worker </struct> 378*61046927SAndroid Build Coastguard Worker 379*61046927SAndroid Build Coastguard Worker <enum name="Sampler states"> 380*61046927SAndroid Build Coastguard Worker <value name="0" value="0"/> 381*61046927SAndroid Build Coastguard Worker <value name="4 compact" value="1"/> 382*61046927SAndroid Build Coastguard Worker <value name="8 compact" value="2"/> 383*61046927SAndroid Build Coastguard Worker <value name="12 compact" value="3"/> 384*61046927SAndroid Build Coastguard Worker <value name="16 compact" value="4"/> 385*61046927SAndroid Build Coastguard Worker <value name="8 extended" value="6"/> 386*61046927SAndroid Build Coastguard Worker <value name="16 extended" value="7"/> 387*61046927SAndroid Build Coastguard Worker </enum> 388*61046927SAndroid Build Coastguard Worker 389*61046927SAndroid Build Coastguard Worker <struct name="Counts" size="4"> 390*61046927SAndroid Build Coastguard Worker <field name="Unknown 0" size="1" start="0" type="hex" default="0"/> 391*61046927SAndroid Build Coastguard Worker <field name="Uniform register count" size="3" start="1" type="uint" modifier="groups(64)"/> 392*61046927SAndroid Build Coastguard Worker <field name="Texture state register count" size="5" start="4" type="uint" modifier="groups(8)"/> 393*61046927SAndroid Build Coastguard Worker <field name="Sampler state register count" size="3" start="9" type="Sampler states"/> 394*61046927SAndroid Build Coastguard Worker <field name="Preshader register count" size="4" start="12" type="uint" modifier="groups(16)"/> 395*61046927SAndroid Build Coastguard Worker <field name="CF binding count" size="7" start="16" type="uint"/> 396*61046927SAndroid Build Coastguard Worker 397*61046927SAndroid Build Coastguard Worker <!-- Only for fragment shaders --> 398*61046927SAndroid Build Coastguard Worker <field name="Unknown" size="16" start="16" type="hex"/> 399*61046927SAndroid Build Coastguard Worker </struct> 400*61046927SAndroid Build Coastguard Worker 401*61046927SAndroid Build Coastguard Worker <!-- PPP state starts --> 402*61046927SAndroid Build Coastguard Worker <struct name="PPP Header" size="4"> 403*61046927SAndroid Build Coastguard Worker <field name="Fragment control" size="1" start="0" type="bool"/> 404*61046927SAndroid Build Coastguard Worker <field name="Fragment control 2" size="1" start="1" type="bool"/> 405*61046927SAndroid Build Coastguard Worker <field name="Fragment front face" size="1" start="2" type="bool"/> 406*61046927SAndroid Build Coastguard Worker <field name="Fragment front face 2" size="1" start="3" type="bool"/> 407*61046927SAndroid Build Coastguard Worker <field name="Fragment front stencil" size="1" start="4" type="bool"/> 408*61046927SAndroid Build Coastguard Worker <field name="Fragment back face" size="1" start="5" type="bool"/> 409*61046927SAndroid Build Coastguard Worker <field name="Fragment back face 2" size="1" start="6" type="bool"/> 410*61046927SAndroid Build Coastguard Worker <field name="Fragment back stencil" size="1" start="7" type="bool"/> 411*61046927SAndroid Build Coastguard Worker <field name="Depth bias/scissor" size="1" start="8" type="bool"/> 412*61046927SAndroid Build Coastguard Worker <field name="Region clip" size="1" start="10" type="bool"/> 413*61046927SAndroid Build Coastguard Worker <field name="Viewport" size="1" start="11" type="bool"/> 414*61046927SAndroid Build Coastguard Worker <field name="Viewport count" size="4" start="12" type="uint" default="1" modifier="minus(1)"/> 415*61046927SAndroid Build Coastguard Worker <field name="W clamp" size="1" start="16" type="bool"/> 416*61046927SAndroid Build Coastguard Worker <field name="Output select" size="1" start="17" type="bool"/> 417*61046927SAndroid Build Coastguard Worker <field name="Varying counts 32" size="1" start="18" type="bool"/> 418*61046927SAndroid Build Coastguard Worker <field name="Varying counts 16" size="1" start="19" type="bool"/> 419*61046927SAndroid Build Coastguard Worker <field name="Cull" size="1" start="21" type="bool"/> 420*61046927SAndroid Build Coastguard Worker <field name="Cull 2" size="1" start="22" type="bool"/> 421*61046927SAndroid Build Coastguard Worker <field name="Fragment shader" size="1" start="23" type="bool"/> 422*61046927SAndroid Build Coastguard Worker <field name="Occlusion query" size="1" start="24" type="bool"/> 423*61046927SAndroid Build Coastguard Worker <field name="Occlusion query 2" size="1" start="25" type="bool"/> 424*61046927SAndroid Build Coastguard Worker <field name="Output unknown" size="1" start="26" type="bool"/> 425*61046927SAndroid Build Coastguard Worker <field name="Output size" size="1" start="27" type="bool"/> 426*61046927SAndroid Build Coastguard Worker <field name="Varying word 2" size="1" start="28" type="bool"/> 427*61046927SAndroid Build Coastguard Worker </struct> 428*61046927SAndroid Build Coastguard Worker 429*61046927SAndroid Build Coastguard Worker <!-- Acts like a scissor at 32x32 tile boundaries, ignored unless clip tile is set --> 430*61046927SAndroid Build Coastguard Worker <struct name="Region clip" size="8"> 431*61046927SAndroid Build Coastguard Worker <field name="Max X" size="9" start="0" type="uint" modifier="minus(1)"/> 432*61046927SAndroid Build Coastguard Worker <field name="Min X" size="9" start="16" type="uint"/> 433*61046927SAndroid Build Coastguard Worker <field name="Enable" size="1" start="31" type="bool"/> 434*61046927SAndroid Build Coastguard Worker <field name="Max Y" size="9" start="32" type="uint" modifier="minus(1)"/> 435*61046927SAndroid Build Coastguard Worker <field name="Min Y" size="9" start="48" type="uint"/> 436*61046927SAndroid Build Coastguard Worker </struct> 437*61046927SAndroid Build Coastguard Worker 438*61046927SAndroid Build Coastguard Worker <struct name="Viewport control" size="4"> 439*61046927SAndroid Build Coastguard Worker <!-- so far only seen zeroes, but it stands to reason this is meant as a 440*61046927SAndroid Build Coastguard Worker control word for the viewports --> 441*61046927SAndroid Build Coastguard Worker </struct> 442*61046927SAndroid Build Coastguard Worker 443*61046927SAndroid Build Coastguard Worker <!-- Used to convert clip space coordinates to NDC, does not clip --> 444*61046927SAndroid Build Coastguard Worker <struct name="Viewport" size="24"> 445*61046927SAndroid Build Coastguard Worker <field name="Translate X" size="32" start="0:0" type="float"/> 446*61046927SAndroid Build Coastguard Worker <field name="Scale X" size="32" start="1:0" type="float"/> 447*61046927SAndroid Build Coastguard Worker <field name="Translate Y" size="32" start="2:0" type="float"/> 448*61046927SAndroid Build Coastguard Worker <field name="Scale Y" size="32" start="3:0" type="float"/> 449*61046927SAndroid Build Coastguard Worker <field name="Translate Z" size="32" start="4:0" type="float"/> 450*61046927SAndroid Build Coastguard Worker <field name="Scale Z" size="32" start="5:0" type="float"/> 451*61046927SAndroid Build Coastguard Worker </struct> 452*61046927SAndroid Build Coastguard Worker 453*61046927SAndroid Build Coastguard Worker <struct name="Fragment face" size="4"> 454*61046927SAndroid Build Coastguard Worker <field name="Stencil reference" size="8" start="0" type="hex"/> 455*61046927SAndroid Build Coastguard Worker <!-- line width is 4:4 fixed point with off-by-one applied --> 456*61046927SAndroid Build Coastguard Worker <field name="Line width" size="8" start="8" type="hex"/> 457*61046927SAndroid Build Coastguard Worker <field name="Polygon mode" size="2" start="18" type="Polygon Mode"/> 458*61046927SAndroid Build Coastguard Worker <field name="Disable depth write" size="1" start="21" type="bool"/> 459*61046927SAndroid Build Coastguard Worker <field name="Unk - visibility test internal" size="2" start="22" type="hex"/> 460*61046927SAndroid Build Coastguard Worker <field name="Depth function" size="3" start="24" type="ZS Func"/> 461*61046927SAndroid Build Coastguard Worker </struct> 462*61046927SAndroid Build Coastguard Worker 463*61046927SAndroid Build Coastguard Worker <enum name="Conservative depth"> 464*61046927SAndroid Build Coastguard Worker <value name="Any" value="0"/> 465*61046927SAndroid Build Coastguard Worker <value name="Greater" value="1"/> 466*61046927SAndroid Build Coastguard Worker <value name="Less" value="2"/> 467*61046927SAndroid Build Coastguard Worker <value name="Unchanged" value="3"/> 468*61046927SAndroid Build Coastguard Worker </enum> 469*61046927SAndroid Build Coastguard Worker 470*61046927SAndroid Build Coastguard Worker <struct name="Fragment face 2" size="4"> 471*61046927SAndroid Build Coastguard Worker <!-- If either disable is zeroed, depth is written --> 472*61046927SAndroid Build Coastguard Worker <field name="Disable depth write" size="1" start="21" type="bool" default="true"/> 473*61046927SAndroid Build Coastguard Worker <!-- If depth written from FS --> 474*61046927SAndroid Build Coastguard Worker <field name="Conservative depth" size="2" start="22" type="Conservative depth" default="Unchanged"/> 475*61046927SAndroid Build Coastguard Worker <!-- Both depth functions must pass --> 476*61046927SAndroid Build Coastguard Worker <field name="Depth function" size="3" start="24" type="ZS Func" default="Always"/> 477*61046927SAndroid Build Coastguard Worker <field name="Object type" size="4" start="28" type="Object Type"/> 478*61046927SAndroid Build Coastguard Worker </struct> 479*61046927SAndroid Build Coastguard Worker 480*61046927SAndroid Build Coastguard Worker <struct name="Fragment stencil" size="4"> 481*61046927SAndroid Build Coastguard Worker <field name="Write mask" size="8" start="0" type="hex"/> 482*61046927SAndroid Build Coastguard Worker <field name="Read mask" size="8" start="8" type="hex"/> 483*61046927SAndroid Build Coastguard Worker <field name="Depth pass" size="3" start="16" type="Stencil Op"/> 484*61046927SAndroid Build Coastguard Worker <field name="Depth fail" size="3" start="19" type="Stencil Op"/> 485*61046927SAndroid Build Coastguard Worker <field name="Stencil fail" size="3" start="22" type="Stencil Op"/> 486*61046927SAndroid Build Coastguard Worker <field name="Compare" size="3" start="25" type="ZS Func"/> 487*61046927SAndroid Build Coastguard Worker </struct> 488*61046927SAndroid Build Coastguard Worker 489*61046927SAndroid Build Coastguard Worker <enum name="Pass type"> 490*61046927SAndroid Build Coastguard Worker <value name="Opaque" value="0"/> 491*61046927SAndroid Build Coastguard Worker <value name="Translucent" value="1"/> 492*61046927SAndroid Build Coastguard Worker <value name="Punch through" value="2"/> 493*61046927SAndroid Build Coastguard Worker <value name="Translucent punch through" value="3"/> 494*61046927SAndroid Build Coastguard Worker <!-- See PASSTYPE in rogue_ppp.xml if more values are observed on AGX... 495*61046927SAndroid Build Coastguard Worker Translucent punch through seems notably different though? --> 496*61046927SAndroid Build Coastguard Worker </enum> 497*61046927SAndroid Build Coastguard Worker 498*61046927SAndroid Build Coastguard Worker <struct name="Fragment control" size="4"> 499*61046927SAndroid Build Coastguard Worker <field name="Unk 1" size="1" start="9" type="bool" default="true"/> 500*61046927SAndroid Build Coastguard Worker <field name="Visibility mode" size="2" start="14" type="Visibility Mode"/> 501*61046927SAndroid Build Coastguard Worker <field name="Scissor enable" size="1" start="16" type="bool"/> 502*61046927SAndroid Build Coastguard Worker <field name="Depth bias enable" size="1" start="17" type="bool"/> 503*61046927SAndroid Build Coastguard Worker <field name="Stencil test enable" size="1" start="18" type="bool"/> 504*61046927SAndroid Build Coastguard Worker <field name="Two-sided stencil" size="1" start="19" type="bool"/> 505*61046927SAndroid Build Coastguard Worker <field name="Tag write disable" size="1" start="21" type="bool"/> 506*61046927SAndroid Build Coastguard Worker <field name="Sample mask after depth/stencil" size="1" start="25" type="bool"/> 507*61046927SAndroid Build Coastguard Worker <field name="Disable tri merging" size="1" start="26" type="bool"/> 508*61046927SAndroid Build Coastguard Worker <field name="Pass type" size="3" start="29" type="Pass type"/> 509*61046927SAndroid Build Coastguard Worker </struct> 510*61046927SAndroid Build Coastguard Worker 511*61046927SAndroid Build Coastguard Worker <struct name="Fragment occlusion query" size="4"> 512*61046927SAndroid Build Coastguard Worker <!-- 64-bit index into occlusion result buffer --> 513*61046927SAndroid Build Coastguard Worker <field name="Index" size="15" start="17" type="uint"/> 514*61046927SAndroid Build Coastguard Worker </struct> 515*61046927SAndroid Build Coastguard Worker 516*61046927SAndroid Build Coastguard Worker <struct name="Fragment occlusion query 2" size="4"> 517*61046927SAndroid Build Coastguard Worker <field name="Unknown" size="17" start="0" type="hex"/> 518*61046927SAndroid Build Coastguard Worker </struct> 519*61046927SAndroid Build Coastguard Worker 520*61046927SAndroid Build Coastguard Worker <struct name="W Clamp" size="4"> 521*61046927SAndroid Build Coastguard Worker <field name="W Clamp" size="32" start="0" type="float"/> 522*61046927SAndroid Build Coastguard Worker </struct> 523*61046927SAndroid Build Coastguard Worker 524*61046927SAndroid Build Coastguard Worker <enum name="PPP Vertex"> 525*61046927SAndroid Build Coastguard Worker <value name="0" value="1"/> 526*61046927SAndroid Build Coastguard Worker <value name="1" value="2"/> 527*61046927SAndroid Build Coastguard Worker <value name="2" value="3"/> 528*61046927SAndroid Build Coastguard Worker </enum> 529*61046927SAndroid Build Coastguard Worker 530*61046927SAndroid Build Coastguard Worker <struct name="Cull" size="4"> 531*61046927SAndroid Build Coastguard Worker <field name="Cull front" size="1" start="0" type="bool"/> 532*61046927SAndroid Build Coastguard Worker <field name="Cull back" size="1" start="1" type="bool"/> 533*61046927SAndroid Build Coastguard Worker <field name="Flat shading vertex" size="2" start="7" type="PPP Vertex"/> 534*61046927SAndroid Build Coastguard Worker <field name="Depth clip" size="1" start="10" type="bool"/> 535*61046927SAndroid Build Coastguard Worker <field name="Depth clamp" size="1" start="11" type="bool"/> 536*61046927SAndroid Build Coastguard Worker <field name="Primitive MSAA" size="1" start="15" type="bool"/> 537*61046927SAndroid Build Coastguard Worker <field name="Front face CCW" size="1" start="16" type="bool"/> 538*61046927SAndroid Build Coastguard Worker <field name="Rasterizer discard" size="1" start="17" type="bool"/> 539*61046927SAndroid Build Coastguard Worker </struct> 540*61046927SAndroid Build Coastguard Worker 541*61046927SAndroid Build Coastguard Worker <struct name="Cull 2" size="4"> 542*61046927SAndroid Build Coastguard Worker <field name="Unknown 5" size="1" start="5" type="bool" default="true"/> 543*61046927SAndroid Build Coastguard Worker <field name="Draw clipped edges" size="1" start="9" type="bool"/> 544*61046927SAndroid Build Coastguard Worker <field name="Needs Primitive ID" size="1" start="12" type="bool"/> 545*61046927SAndroid Build Coastguard Worker <field name="Rasterizer discard" size="1" start="17" type="bool"/> 546*61046927SAndroid Build Coastguard Worker </struct> 547*61046927SAndroid Build Coastguard Worker 548*61046927SAndroid Build Coastguard Worker <struct name="Varying Counts" size="4"> 549*61046927SAndroid Build Coastguard Worker <field name="Smooth" size="8" start="0" type="uint"/> 550*61046927SAndroid Build Coastguard Worker <field name="Flat" size="8" start="8" type="uint"/> 551*61046927SAndroid Build Coastguard Worker <field name="Linear" size="8" start="16" type="uint"/> 552*61046927SAndroid Build Coastguard Worker </struct> 553*61046927SAndroid Build Coastguard Worker 554*61046927SAndroid Build Coastguard Worker <struct name="Varying 2" size="8"> 555*61046927SAndroid Build Coastguard Worker <!-- TODO --> 556*61046927SAndroid Build Coastguard Worker </struct> 557*61046927SAndroid Build Coastguard Worker 558*61046927SAndroid Build Coastguard Worker <struct name="Output Select" size="4"> 559*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 0" size="1" start="0" type="bool"/> 560*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 1" size="1" start="1" type="bool"/> 561*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 2" size="1" start="2" type="bool"/> 562*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 3" size="1" start="3" type="bool"/> 563*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 4" size="1" start="4" type="bool"/> 564*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 5" size="1" start="5" type="bool"/> 565*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 6" size="1" start="6" type="bool"/> 566*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 7" size="1" start="7" type="bool"/> 567*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 8" size="1" start="8" type="bool"/> 568*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 9" size="1" start="9" type="bool"/> 569*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 10" size="1" start="10" type="bool"/> 570*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 11" size="1" start="11" type="bool"/> 571*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 12" size="1" start="12" type="bool"/> 572*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 13" size="1" start="13" type="bool"/> 573*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 14" size="1" start="14" type="bool"/> 574*61046927SAndroid Build Coastguard Worker <field name="Clip distance plane 15" size="1" start="15" type="bool"/> 575*61046927SAndroid Build Coastguard Worker <field name="Varyings" size="1" start="16" type="bool"/> 576*61046927SAndroid Build Coastguard Worker <field name="Point size" size="1" start="18" type="bool"/> 577*61046927SAndroid Build Coastguard Worker <!-- For layered rendering, enable both and write the 2x16-bit tuple from 578*61046927SAndroid Build Coastguard Worker the vertex shader (layer, (viewport << u) + (u & layer)). So far unclear 579*61046927SAndroid Build Coastguard Worker what u is supposed to be. If u=0, this simplifies to the expected (layer, 580*61046927SAndroid Build Coastguard Worker viewport) at least. --> 581*61046927SAndroid Build Coastguard Worker <field name="Viewport target" size="1" start="19" type="bool"/> 582*61046927SAndroid Build Coastguard Worker <field name="Render target" size="1" start="20" type="bool"/> 583*61046927SAndroid Build Coastguard Worker <field name="Frag coord Z" size="1" start="21" type="bool"/> 584*61046927SAndroid Build Coastguard Worker <field name="Barycentric coordinates" size="1" start="22" type="bool"/> 585*61046927SAndroid Build Coastguard Worker </struct> 586*61046927SAndroid Build Coastguard Worker 587*61046927SAndroid Build Coastguard Worker <struct name="Output Unknown" size="4"> 588*61046927SAndroid Build Coastguard Worker <!-- So far always zero --> 589*61046927SAndroid Build Coastguard Worker </struct> 590*61046927SAndroid Build Coastguard Worker 591*61046927SAndroid Build Coastguard Worker <struct name="Output Size" size="4"> 592*61046927SAndroid Build Coastguard Worker <field name="Count" size="32" start="0" type="uint"/> 593*61046927SAndroid Build Coastguard Worker </struct> 594*61046927SAndroid Build Coastguard Worker 595*61046927SAndroid Build Coastguard Worker <!-- Indexes into the scissor and depth bias arrays --> 596*61046927SAndroid Build Coastguard Worker <struct name="Depth bias/Scissor" size="4"> 597*61046927SAndroid Build Coastguard Worker <field name="Scissor" size="16" start="0" type="uint"/> 598*61046927SAndroid Build Coastguard Worker <field name="Depth bias" size="16" start="16" type="uint"/> 599*61046927SAndroid Build Coastguard Worker </struct> 600*61046927SAndroid Build Coastguard Worker 601*61046927SAndroid Build Coastguard Worker <struct name="Fragment Shader Word 0" size="4"> 602*61046927SAndroid Build Coastguard Worker <field name="Unknown 0" size="1" start="0" type="hex" default="0"/> 603*61046927SAndroid Build Coastguard Worker <field name="Uniform register count" size="3" start="1" type="uint" modifier="groups(64)"/> 604*61046927SAndroid Build Coastguard Worker <field name="Texture state register count" size="5" start="4" type="uint" modifier="groups(8)"/> 605*61046927SAndroid Build Coastguard Worker <field name="Sampler state register count" size="3" start="9" type="Sampler states"/> 606*61046927SAndroid Build Coastguard Worker <field name="Preshader register count" size="4" start="12" type="uint" modifier="groups(16)"/> 607*61046927SAndroid Build Coastguard Worker <field name="CF binding count" size="7" start="16" type="uint"/> 608*61046927SAndroid Build Coastguard Worker </struct> 609*61046927SAndroid Build Coastguard Worker 610*61046927SAndroid Build Coastguard Worker <struct name="Fragment Shader Word 1" size="4"> 611*61046927SAndroid Build Coastguard Worker <field name="Unknown 1:0" size="2" start="0" type="hex"/> 612*61046927SAndroid Build Coastguard Worker <field name="Pipeline" size="26" start="6" type="address" modifier="shr(6)"/> 613*61046927SAndroid Build Coastguard Worker </struct> 614*61046927SAndroid Build Coastguard Worker 615*61046927SAndroid Build Coastguard Worker <struct name="Fragment Shader Word 2" size="4"> 616*61046927SAndroid Build Coastguard Worker <field name="CF bindings" size="30" start="2" type="address" modifier="shr(2)"/> 617*61046927SAndroid Build Coastguard Worker </struct> 618*61046927SAndroid Build Coastguard Worker 619*61046927SAndroid Build Coastguard Worker <struct name="Fragment Shader Word 3" size="4"> 620*61046927SAndroid Build Coastguard Worker <!-- Seems to be set to small values depending on textures? and pushed 621*61046927SAndroid Build Coastguard Worker uniforms? Needs investigation --> 622*61046927SAndroid Build Coastguard Worker <field name="Unknown" start="0" size="4" type="hex"/> 623*61046927SAndroid Build Coastguard Worker </struct> 624*61046927SAndroid Build Coastguard Worker <!-- PPP state ends --> 625*61046927SAndroid Build Coastguard Worker 626*61046927SAndroid Build Coastguard Worker <!-- USC state starts --> 627*61046927SAndroid Build Coastguard Worker <enum name="USC Control"> 628*61046927SAndroid Build Coastguard Worker <value name="Preshader" value="0x38"/> 629*61046927SAndroid Build Coastguard Worker <value name="Fragment properties" value="0x58"/> 630*61046927SAndroid Build Coastguard Worker <value name="No preshader" value="0x88"/> 631*61046927SAndroid Build Coastguard Worker <value name="Shader" value="0x0d"/> 632*61046927SAndroid Build Coastguard Worker <value name="Uniform" value="0x1d"/> 633*61046927SAndroid Build Coastguard Worker <value name="Uniform high" value="0x3d"/> 634*61046927SAndroid Build Coastguard Worker <value name="Shared" value="0x4d"/> 635*61046927SAndroid Build Coastguard Worker <value name="Registers" value="0x8d"/> 636*61046927SAndroid Build Coastguard Worker <value name="Sampler" value="0x9d"/> 637*61046927SAndroid Build Coastguard Worker <value name="Texture" value="0xdd"/> 638*61046927SAndroid Build Coastguard Worker </enum> 639*61046927SAndroid Build Coastguard Worker 640*61046927SAndroid Build Coastguard Worker <struct name="USC Uniform" size="8"> 641*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0:0" type="USC Control" default="Uniform"/> 642*61046927SAndroid Build Coastguard Worker <field name="Start (halfs)" size="8" start="0:8" type="uint"/> 643*61046927SAndroid Build Coastguard Worker <field name="Size (halfs)" size="6" start="0:20" type="uint" modifier="groups(1)"/> 644*61046927SAndroid Build Coastguard Worker <field name="Buffer" size="38" start="0:26" type="address" modifier="shr(2)"/> 645*61046927SAndroid Build Coastguard Worker </struct> 646*61046927SAndroid Build Coastguard Worker 647*61046927SAndroid Build Coastguard Worker <struct name="USC Uniform High" size="8"> 648*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0:0" type="USC Control" default="Uniform High"/> 649*61046927SAndroid Build Coastguard Worker <field name="Start (halfs)" size="8" start="0:8" type="uint"/> 650*61046927SAndroid Build Coastguard Worker <field name="Size (halfs)" size="6" start="0:20" type="uint" modifier="groups(1)"/> 651*61046927SAndroid Build Coastguard Worker <field name="Buffer" size="38" start="0:26" type="address" modifier="shr(2)"/> 652*61046927SAndroid Build Coastguard Worker </struct> 653*61046927SAndroid Build Coastguard Worker 654*61046927SAndroid Build Coastguard Worker <struct name="USC Texture" size="8"> 655*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0:0" type="USC Control" default="Texture"/> 656*61046927SAndroid Build Coastguard Worker <field name="Start" size="8" start="0:8" type="uint"/> 657*61046927SAndroid Build Coastguard Worker <!-- Exact split is unknown. Count is at least 5 bits. Less than 8 bits. --> 658*61046927SAndroid Build Coastguard Worker <field name="Count" size="7" start="0:20" type="uint"/> 659*61046927SAndroid Build Coastguard Worker <field name="Buffer" size="36" start="0:27" type="address" modifier="shr(3)"/> 660*61046927SAndroid Build Coastguard Worker </struct> 661*61046927SAndroid Build Coastguard Worker 662*61046927SAndroid Build Coastguard Worker <struct name="USC Sampler" size="8"> 663*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0:0" type="USC Control" default="Sampler"/> 664*61046927SAndroid Build Coastguard Worker <field name="Start" size="8" start="0:8" type="uint"/> 665*61046927SAndroid Build Coastguard Worker <field name="Count" size="7" start="0:20" type="uint"/> 666*61046927SAndroid Build Coastguard Worker <!-- Exact split is unknown. --> 667*61046927SAndroid Build Coastguard Worker <field name="Buffer" size="36" start="0:27" type="address" modifier="shr(3)"/> 668*61046927SAndroid Build Coastguard Worker </struct> 669*61046927SAndroid Build Coastguard Worker 670*61046927SAndroid Build Coastguard Worker <enum name="Shared layout"> 671*61046927SAndroid Build Coastguard Worker <value name="Vertex/compute" value="0x24"/> 672*61046927SAndroid Build Coastguard Worker <value name="32x32" value="0x2f"/> 673*61046927SAndroid Build Coastguard Worker <value name="32x16" value="0x3f"/> 674*61046927SAndroid Build Coastguard Worker <value name="16x16" value="0x36"/> 675*61046927SAndroid Build Coastguard Worker </enum> 676*61046927SAndroid Build Coastguard Worker 677*61046927SAndroid Build Coastguard Worker <struct name="USC Shared" size="4"> 678*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="Shared"/> 679*61046927SAndroid Build Coastguard Worker <field name="Uses shared memory" size="1" start="8" type="bool"/> 680*61046927SAndroid Build Coastguard Worker <field name="Layout" size="6" start="10" type="Shared layout"/> 681*61046927SAndroid Build Coastguard Worker <field name="Sample count" size="2" start="16" type="uint" default="1" modifier="log2"/> 682*61046927SAndroid Build Coastguard Worker <field name="Sample stride in 8 bytes" size="4" start="20" type="uint"/> 683*61046927SAndroid Build Coastguard Worker <field name="Bytes per threadgroup" size="8" start="24" type="uint" modifier="groups(256)"/> 684*61046927SAndroid Build Coastguard Worker </struct> 685*61046927SAndroid Build Coastguard Worker 686*61046927SAndroid Build Coastguard Worker <struct name="USC Shader" size="6"> 687*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="Shader"/> 688*61046927SAndroid Build Coastguard Worker <field name="Loads varyings" size="1" start="8" type="bool"/> 689*61046927SAndroid Build Coastguard Worker <!-- Seen set for pixel rate fragment shaders? --> 690*61046927SAndroid Build Coastguard Worker <field name="Unk 1" size="1" start="9" type="bool" default="0"/> 691*61046927SAndroid Build Coastguard Worker <field name="Unk 2" size="6" start="10" type="uint" default="3"/> 692*61046927SAndroid Build Coastguard Worker <field name="Code" size="32" start="16" type="address"/> 693*61046927SAndroid Build Coastguard Worker </struct> 694*61046927SAndroid Build Coastguard Worker 695*61046927SAndroid Build Coastguard Worker <struct name="USC Registers" size="4"> 696*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="Registers"/> 697*61046927SAndroid Build Coastguard Worker <field name="Register count" size="5" start="8" type="uint" modifier="groups(8)"/> 698*61046927SAndroid Build Coastguard Worker <field name="Unk 1" size="1" start="13" type="bool" default="false"/> 699*61046927SAndroid Build Coastguard Worker <field name="Spill size" size="4" start="18" type="hex" default="0"/> 700*61046927SAndroid Build Coastguard Worker <field name="Unk 4" size="8" start="24" type="hex" default="0x1"/> 701*61046927SAndroid Build Coastguard Worker </struct> 702*61046927SAndroid Build Coastguard Worker 703*61046927SAndroid Build Coastguard Worker <struct name="USC No Preshader" size="2"> 704*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="No preshader"/> 705*61046927SAndroid Build Coastguard Worker </struct> 706*61046927SAndroid Build Coastguard Worker 707*61046927SAndroid Build Coastguard Worker <struct name="USC Preshader" size="8"> 708*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="Preshader"/> 709*61046927SAndroid Build Coastguard Worker <field name="Unk" size="24" start="8" type="hex" default="0xc08000"/> 710*61046927SAndroid Build Coastguard Worker <field name="Code" size="32" start="32" type="address"/> 711*61046927SAndroid Build Coastguard Worker </struct> 712*61046927SAndroid Build Coastguard Worker 713*61046927SAndroid Build Coastguard Worker <struct name="USC Fragment Properties" size="4"> 714*61046927SAndroid Build Coastguard Worker <field name="Tag" size="8" start="0" type="USC Control" default="Fragment properties"/> 715*61046927SAndroid Build Coastguard Worker <!-- Guess. Set if the shader does not write the sample mask (including by 716*61046927SAndroid Build Coastguard Worker discard_fragment) --> 717*61046927SAndroid Build Coastguard Worker <field name="Early-z testing" size="1" start="8" type="bool"/> 718*61046927SAndroid Build Coastguard Worker <field name="Unk 2" size="1" start="9" type="bool" default="true"/> 719*61046927SAndroid Build Coastguard Worker <field name="Unconditional discard 1" size="1" start="10" type="bool"/> 720*61046927SAndroid Build Coastguard Worker <field name="Unconditional discard 2" size="1" start="11" type="bool"/> 721*61046927SAndroid Build Coastguard Worker <field name="Unk 3" size="4" start="12" type="hex" default="0xf"/> 722*61046927SAndroid Build Coastguard Worker <field name="Unk 4" size="8" start="16" type="hex" default="0"/> <!-- TODO: determine relation, see docs/table.py --> 723*61046927SAndroid Build Coastguard Worker <field name="Unk 5" size="8" start="24" type="hex" default="0x01"/> 724*61046927SAndroid Build Coastguard Worker </struct> 725*61046927SAndroid Build Coastguard Worker <!-- USC commands end --> 726*61046927SAndroid Build Coastguard Worker 727*61046927SAndroid Build Coastguard Worker <!-- VDM commands start. VDM commands are padded out to 8b alignment. --> 728*61046927SAndroid Build Coastguard Worker <enum name="VDM Block Type"> 729*61046927SAndroid Build Coastguard Worker <value name="PPP State Update" value="0"/> 730*61046927SAndroid Build Coastguard Worker <value name="Barrier" value="1"/> 731*61046927SAndroid Build Coastguard Worker <value name="VDM State Update" value="2"/> 732*61046927SAndroid Build Coastguard Worker <value name="Index List" value="3"/> 733*61046927SAndroid Build Coastguard Worker <value name="Stream Link" value="4"/> 734*61046927SAndroid Build Coastguard Worker <value name="Tessellate" value="5"/> 735*61046927SAndroid Build Coastguard Worker <value name="Stream terminate" value="6"/> 736*61046927SAndroid Build Coastguard Worker </enum> 737*61046927SAndroid Build Coastguard Worker 738*61046927SAndroid Build Coastguard Worker <struct name="PPP State" size="8"> 739*61046927SAndroid Build Coastguard Worker <field name="Pointer (hi)" size="8" start="0" type="hex"/> 740*61046927SAndroid Build Coastguard Worker <field name="Size (words)" size="8" start="8" type="uint"/> 741*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="PPP State Update"/> 742*61046927SAndroid Build Coastguard Worker <field name="Pointer (lo)" size="32" start="32" type="address"/> 743*61046927SAndroid Build Coastguard Worker </struct> 744*61046927SAndroid Build Coastguard Worker 745*61046927SAndroid Build Coastguard Worker <struct name="VDM Barrier"> 746*61046927SAndroid Build Coastguard Worker <field name="USC cache inval" size="1" start="3" type="bool" default="false"/> 747*61046927SAndroid Build Coastguard Worker <field name="Unk 4" size="1" start="4" type="bool" default="false"/> 748*61046927SAndroid Build Coastguard Worker <field name="Unk 5" size="1" start="5" type="bool" default="false"/> 749*61046927SAndroid Build Coastguard Worker <field name="Unk 6" size="1" start="6" type="bool" default="false"/> 750*61046927SAndroid Build Coastguard Worker <field name="Unk 8" size="1" start="8" type="bool" default="false"/> 751*61046927SAndroid Build Coastguard Worker <field name="Unk 11" size="1" start="11" type="bool" default="false"/> 752*61046927SAndroid Build Coastguard Worker <field name="Unk 20" size="1" start="20" type="bool" default="false"/> 753*61046927SAndroid Build Coastguard Worker <field name="Unk 24" size="1" start="24" type="bool" default="false"/> 754*61046927SAndroid Build Coastguard Worker <field name="Unk 26" size="1" start="26" type="bool" default="false"/> 755*61046927SAndroid Build Coastguard Worker <field name="Returns" size="1" start="27" type="bool" default="false"/> 756*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="Barrier"/> 757*61046927SAndroid Build Coastguard Worker </struct> 758*61046927SAndroid Build Coastguard Worker 759*61046927SAndroid Build Coastguard Worker <enum name="Index size"> 760*61046927SAndroid Build Coastguard Worker <value name="U8" value="0"/> 761*61046927SAndroid Build Coastguard Worker <value name="U16" value="1"/> 762*61046927SAndroid Build Coastguard Worker <value name="U32" value="2"/> 763*61046927SAndroid Build Coastguard Worker </enum> 764*61046927SAndroid Build Coastguard Worker 765*61046927SAndroid Build Coastguard Worker <struct name="VDM State" size="4"> 766*61046927SAndroid Build Coastguard Worker <field name="Restart index present" size="1" start="0" type="bool"/> 767*61046927SAndroid Build Coastguard Worker <field name="Vertex shader word 0 present" size="1" start="1" type="bool"/> 768*61046927SAndroid Build Coastguard Worker <field name="Vertex shader word 1 present" size="1" start="2" type="bool"/> 769*61046927SAndroid Build Coastguard Worker <field name="Vertex outputs present" size="1" start="3" type="bool"/> 770*61046927SAndroid Build Coastguard Worker <field name="Tessellation present" size="1" start="4" type="bool"/> 771*61046927SAndroid Build Coastguard Worker <field name="Vertex unknown present" size="1" start="5" type="bool"/> 772*61046927SAndroid Build Coastguard Worker <field name="Tessellation scale present" size="1" start="7" type="bool"/> 773*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="VDM State Update"/> 774*61046927SAndroid Build Coastguard Worker </struct> 775*61046927SAndroid Build Coastguard Worker 776*61046927SAndroid Build Coastguard Worker <struct name="VDM State Restart Index" size="4"> 777*61046927SAndroid Build Coastguard Worker <field name="Value" size="32" start="0" type="hex"/> 778*61046927SAndroid Build Coastguard Worker </struct> 779*61046927SAndroid Build Coastguard Worker 780*61046927SAndroid Build Coastguard Worker <struct name="VDM State Vertex Shader Word 0" size="4"> 781*61046927SAndroid Build Coastguard Worker <field name="Unknown 0" size="1" start="0" type="hex" default="0"/> 782*61046927SAndroid Build Coastguard Worker <field name="Uniform register count" size="3" start="1" type="uint" modifier="groups(64)"/> 783*61046927SAndroid Build Coastguard Worker <field name="Texture state register count" size="5" start="4" type="uint" modifier="groups(8)"/> 784*61046927SAndroid Build Coastguard Worker <field name="Sampler state register count" size="3" start="9" type="Sampler states"/> 785*61046927SAndroid Build Coastguard Worker <field name="Preshader register count" size="4" start="12" type="uint" modifier="groups(16)"/> 786*61046927SAndroid Build Coastguard Worker </struct> 787*61046927SAndroid Build Coastguard Worker 788*61046927SAndroid Build Coastguard Worker <struct name="VDM State Vertex Shader Word 1" size="4"> 789*61046927SAndroid Build Coastguard Worker <field name="Unknown 1:0" size="2" start="0" type="hex"/> 790*61046927SAndroid Build Coastguard Worker <field name="Pipeline" size="26" start="6" type="address" modifier="shr(6)"/> 791*61046927SAndroid Build Coastguard Worker </struct> 792*61046927SAndroid Build Coastguard Worker 793*61046927SAndroid Build Coastguard Worker <struct name="VDM State Vertex Outputs" size="4"> 794*61046927SAndroid Build Coastguard Worker <field name="Output count 1" size="8" start="0" type="uint" default="0"/> 795*61046927SAndroid Build Coastguard Worker <field name="Output count 2" size="8" start="8" type="uint" default="0"/> 796*61046927SAndroid Build Coastguard Worker </struct> 797*61046927SAndroid Build Coastguard Worker 798*61046927SAndroid Build Coastguard Worker <enum name="VDM Vertex"> 799*61046927SAndroid Build Coastguard Worker <value name="0" value="0"/> 800*61046927SAndroid Build Coastguard Worker <value name="1" value="1"/> 801*61046927SAndroid Build Coastguard Worker <value name="2" value="2"/> 802*61046927SAndroid Build Coastguard Worker </enum> 803*61046927SAndroid Build Coastguard Worker 804*61046927SAndroid Build Coastguard Worker <enum name="Partition mode"> 805*61046927SAndroid Build Coastguard Worker <value name="Pow 2" value="0"/> 806*61046927SAndroid Build Coastguard Worker <value name="Integer" value="1"/> 807*61046927SAndroid Build Coastguard Worker <value name="Fractional odd" value="2"/> 808*61046927SAndroid Build Coastguard Worker <value name="Fractional even" value="3"/> 809*61046927SAndroid Build Coastguard Worker </enum> 810*61046927SAndroid Build Coastguard Worker 811*61046927SAndroid Build Coastguard Worker <enum name="Step function"> 812*61046927SAndroid Build Coastguard Worker <value name="Constant" value="0"/> 813*61046927SAndroid Build Coastguard Worker <value name="Per patch" value="1"/> 814*61046927SAndroid Build Coastguard Worker <value name="Per instance" value="2"/> 815*61046927SAndroid Build Coastguard Worker <value name="Per patch and per instance" value="3"/> 816*61046927SAndroid Build Coastguard Worker </enum> 817*61046927SAndroid Build Coastguard Worker 818*61046927SAndroid Build Coastguard Worker <enum name="Patch type"> 819*61046927SAndroid Build Coastguard Worker <value name="Triangles" value="0"/> 820*61046927SAndroid Build Coastguard Worker <value name="Quads" value="1"/> 821*61046927SAndroid Build Coastguard Worker </enum> 822*61046927SAndroid Build Coastguard Worker 823*61046927SAndroid Build Coastguard Worker <enum name="Factor type"> 824*61046927SAndroid Build Coastguard Worker <value name="FP16" value="0"/> 825*61046927SAndroid Build Coastguard Worker <value name="FP32" value="1"/> 826*61046927SAndroid Build Coastguard Worker </enum> 827*61046927SAndroid Build Coastguard Worker 828*61046927SAndroid Build Coastguard Worker <struct name="VDM State Tessellation" size="4"> 829*61046927SAndroid Build Coastguard Worker <field name="Unknown" size="17" start="0" type="hex"/> <!-- 0 --> 830*61046927SAndroid Build Coastguard Worker <field name="Step function" size="2" start="17" type="Step function"/> 831*61046927SAndroid Build Coastguard Worker <!-- Not yet hardware tested, firm guess from stuffing values --> 832*61046927SAndroid Build Coastguard Worker <field name="Factor type" size="1" start="19" type="Factor type"/> 833*61046927SAndroid Build Coastguard Worker <!-- XXX: Possibly unknown 3 is part of the patch type, with points & 834*61046927SAndroid Build Coastguard Worker isolines also supported? would be a natural encoding. Needs testing to see 835*61046927SAndroid Build Coastguard Worker if implemeneted in hw. --> 836*61046927SAndroid Build Coastguard Worker <field name="Patch type" size="1" start="20" type="Patch type"/> 837*61046927SAndroid Build Coastguard Worker <field name="Unknown 3" size="2" start="21" type="hex"/> <!-- 1 --> 838*61046927SAndroid Build Coastguard Worker 839*61046927SAndroid Build Coastguard Worker <!-- Subtract 1 for fractional odd --> 840*61046927SAndroid Build Coastguard Worker <field name="Max tess factor" size="6" start="23" type="uint" modifier="minus(1)"/> 841*61046927SAndroid Build Coastguard Worker <field name="Counterclockwise winding" size="1" start="29" type="bool"/> 842*61046927SAndroid Build Coastguard Worker <field name="Partition mode" size="2" start="30" type="Partition mode"/> 843*61046927SAndroid Build Coastguard Worker </struct> 844*61046927SAndroid Build Coastguard Worker 845*61046927SAndroid Build Coastguard Worker <struct name="VDM State Tessellation Scale" size="4"> 846*61046927SAndroid Build Coastguard Worker <!-- Always applied. Set to 1.0 to "disable" --> 847*61046927SAndroid Build Coastguard Worker <field name="Scale" size="16" start="0" type="half"/> 848*61046927SAndroid Build Coastguard Worker </struct> 849*61046927SAndroid Build Coastguard Worker 850*61046927SAndroid Build Coastguard Worker <struct name="VDM State Vertex Unknown" size="4"> 851*61046927SAndroid Build Coastguard Worker <field name="Flat shading control" start="0" size="2" type="VDM Vertex"/> 852*61046927SAndroid Build Coastguard Worker <field name="Unknown 4" size="1" start="4" type="bool"/> 853*61046927SAndroid Build Coastguard Worker <field name="Unknown 5" size="1" start="5" type="bool"/> 854*61046927SAndroid Build Coastguard Worker <field name="Generate primitive ID" size="1" start="6" type="bool"/> 855*61046927SAndroid Build Coastguard Worker </struct> 856*61046927SAndroid Build Coastguard Worker 857*61046927SAndroid Build Coastguard Worker <!--- Command to issue a direct non-indexed draw --> 858*61046927SAndroid Build Coastguard Worker <struct name="Index List" size="4"> 859*61046927SAndroid Build Coastguard Worker <field name="Index buffer hi" size="8" start="0" type="hex"/> 860*61046927SAndroid Build Coastguard Worker <field name="Primitive" size="8" start="8" type="Primitive"/> 861*61046927SAndroid Build Coastguard Worker <field name="Restart enable" size="1" start="16" type="bool"/> 862*61046927SAndroid Build Coastguard Worker <field name="Index size" size="3" start="17" type="Index size"/> 863*61046927SAndroid Build Coastguard Worker 864*61046927SAndroid Build Coastguard Worker <field name="Index buffer size present" size="1" start="20" type="bool"/> 865*61046927SAndroid Build Coastguard Worker <field name="Index buffer present" size="1" start="21" type="bool"/> 866*61046927SAndroid Build Coastguard Worker 867*61046927SAndroid Build Coastguard Worker <!-- Order in the cmdstream is the same as bit order for these --> 868*61046927SAndroid Build Coastguard Worker <field name="Index count present" size="1" start="22" type="bool"/> 869*61046927SAndroid Build Coastguard Worker <field name="Instance count present" size="1" start="23" type="bool"/> 870*61046927SAndroid Build Coastguard Worker <field name="Start present" size="1" start="24" type="bool"/> 871*61046927SAndroid Build Coastguard Worker <!-- 2 words, 1st word is some kind of extra vertex offset? --> 872*61046927SAndroid Build Coastguard Worker <field name="Unk 1 present" size="1" start="25" type="bool"/> 873*61046927SAndroid Build Coastguard Worker <field name="Indirect buffer present" size="1" start="26" type="bool"/> 874*61046927SAndroid Build Coastguard Worker <!-- 1 word, unknown purpose --> 875*61046927SAndroid Build Coastguard Worker <field name="Unk 2 present" size="1" start="27" type="bool"/> 876*61046927SAndroid Build Coastguard Worker 877*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="Index List"/> 878*61046927SAndroid Build Coastguard Worker </struct> 879*61046927SAndroid Build Coastguard Worker 880*61046927SAndroid Build Coastguard Worker <struct name="Index List: Buffer lo" size="4"> 881*61046927SAndroid Build Coastguard Worker <!-- Index buffer lsb --> 882*61046927SAndroid Build Coastguard Worker <field name="Buffer lo" size="32" start="0" type="hex"/> 883*61046927SAndroid Build Coastguard Worker </struct> 884*61046927SAndroid Build Coastguard Worker 885*61046927SAndroid Build Coastguard Worker <struct name="Index List: Count" size="4"> 886*61046927SAndroid Build Coastguard Worker <!-- Vertex count for non-indexed, index count for index count --> 887*61046927SAndroid Build Coastguard Worker <field name="Count" size="32" start="0" type="uint"/> 888*61046927SAndroid Build Coastguard Worker </struct> 889*61046927SAndroid Build Coastguard Worker 890*61046927SAndroid Build Coastguard Worker <struct name="Index List: Instances" size="4"> 891*61046927SAndroid Build Coastguard Worker <field name="Count" size="32" start="0" type="uint"/> <!-- must be nonzero --> 892*61046927SAndroid Build Coastguard Worker </struct> 893*61046927SAndroid Build Coastguard Worker 894*61046927SAndroid Build Coastguard Worker <struct name="Index List: Start" size="4"> 895*61046927SAndroid Build Coastguard Worker <!-- Base vertex for indexed draws --> 896*61046927SAndroid Build Coastguard Worker <field name="Start" size="32" start="0" type="uint"/> 897*61046927SAndroid Build Coastguard Worker </struct> 898*61046927SAndroid Build Coastguard Worker 899*61046927SAndroid Build Coastguard Worker <struct name="Index List: Buffer size" size="4"> 900*61046927SAndroid Build Coastguard Worker <field name="Size" size="32" start="0" type="uint" modifier="shr(2)"/> 901*61046927SAndroid Build Coastguard Worker </struct> 902*61046927SAndroid Build Coastguard Worker 903*61046927SAndroid Build Coastguard Worker <struct name="Index List: Indirect buffer" size="8"> 904*61046927SAndroid Build Coastguard Worker <field name="Address hi" size="8" start="0" type="hex"/> 905*61046927SAndroid Build Coastguard Worker <field name="Address lo" size="32" start="32" type="hex"/> 906*61046927SAndroid Build Coastguard Worker </struct> 907*61046927SAndroid Build Coastguard Worker 908*61046927SAndroid Build Coastguard Worker <!-- Conditional branching and function calls may be supported, see the 909*61046927SAndroid Build Coastguard Worker STREAM_LINK0 struct in mesa/src/imagination/csbgen/rogue_vdm.xml for a 910*61046927SAndroid Build Coastguard Worker probable definition --> 911*61046927SAndroid Build Coastguard Worker <struct name="VDM Stream Link" size="8"> 912*61046927SAndroid Build Coastguard Worker <field name="Target hi" size="8" start="0" type="hex"/> 913*61046927SAndroid Build Coastguard Worker <field name="With return" size="1" start="28" type="bool"/> 914*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="Stream Link"/> 915*61046927SAndroid Build Coastguard Worker <field name="Target lo" size="32" start="32" type="hex"/> 916*61046927SAndroid Build Coastguard Worker </struct> 917*61046927SAndroid Build Coastguard Worker 918*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate" size="4"> 919*61046927SAndroid Build Coastguard Worker <field name="Factor buffer hi" size="8" start="0" type="hex"/> 920*61046927SAndroid Build Coastguard Worker <field name="Unknown 0" size="12" start="8" type="hex"/> <!-- 0xc --> 921*61046927SAndroid Build Coastguard Worker 922*61046927SAndroid Build Coastguard Worker <!-- Set for both indirect and direct --> 923*61046927SAndroid Build Coastguard Worker <field name="Unknown 2" size="1" start="20" type="bool"/> 924*61046927SAndroid Build Coastguard Worker 925*61046927SAndroid Build Coastguard Worker <!-- Present for both indirect and direct --> 926*61046927SAndroid Build Coastguard Worker <!-- XXX: Order is an (educated) guess --> 927*61046927SAndroid Build Coastguard Worker <field name="Factor buffer present" size="1" start="21" type="bool"/> 928*61046927SAndroid Build Coastguard Worker 929*61046927SAndroid Build Coastguard Worker <!-- XXX: out of bits???? not set for indirect??? --> 930*61046927SAndroid Build Coastguard Worker <field name="Patch count present" size="1" start="22" type="bool"/> 931*61046927SAndroid Build Coastguard Worker 932*61046927SAndroid Build Coastguard Worker <!-- These four are omitted for indirect draws --> 933*61046927SAndroid Build Coastguard Worker <!-- XXX: Order is an (educated) guess --> 934*61046927SAndroid Build Coastguard Worker <field name="Instance count present" size="1" start="22" type="bool"/> 935*61046927SAndroid Build Coastguard Worker <field name="Base patch present" size="1" start="23" type="bool"/> 936*61046927SAndroid Build Coastguard Worker <field name="Base instance present" size="1" start="25" type="bool"/> 937*61046927SAndroid Build Coastguard Worker <!-- XXX: Out of bits!!! --> 938*61046927SAndroid Build Coastguard Worker <field name="Instance stride present" size="1" start="25" type="bool"/> 939*61046927SAndroid Build Coastguard Worker 940*61046927SAndroid Build Coastguard Worker <field name="Indirect present" size="1" start="26" type="bool"/> 941*61046927SAndroid Build Coastguard Worker <!-- Present for both indirect and direct --> 942*61046927SAndroid Build Coastguard Worker <field name="Unknown present" size="1" start="28" type="bool"/> 943*61046927SAndroid Build Coastguard Worker 944*61046927SAndroid Build Coastguard Worker <field name="Unknown 1" size="1" start="28" type="hex"/> <!-- 1 --> 945*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="Tessellate"/> 946*61046927SAndroid Build Coastguard Worker </struct> 947*61046927SAndroid Build Coastguard Worker 948*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Factor buffer" size="4"> 949*61046927SAndroid Build Coastguard Worker <field name="Factor buffer lo" size="32" start="0" type="hex"/> 950*61046927SAndroid Build Coastguard Worker </struct> 951*61046927SAndroid Build Coastguard Worker 952*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Patch count" size="4"> 953*61046927SAndroid Build Coastguard Worker <field name="Patch count" size="32" start="0" type="uint"/> 954*61046927SAndroid Build Coastguard Worker </struct> 955*61046927SAndroid Build Coastguard Worker 956*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Instance count" size="4"> 957*61046927SAndroid Build Coastguard Worker <field name="Instance count" size="32" start="0" type="uint"/> 958*61046927SAndroid Build Coastguard Worker </struct> 959*61046927SAndroid Build Coastguard Worker 960*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Base patch" size="4"> 961*61046927SAndroid Build Coastguard Worker <field name="Base patch" size="32" start="0" type="uint"/> 962*61046927SAndroid Build Coastguard Worker </struct> 963*61046927SAndroid Build Coastguard Worker 964*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Base instance" size="4"> 965*61046927SAndroid Build Coastguard Worker <field name="Base instance" size="32" start="0" type="uint"/> 966*61046927SAndroid Build Coastguard Worker </struct> 967*61046927SAndroid Build Coastguard Worker 968*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Instance stride" size="4"> 969*61046927SAndroid Build Coastguard Worker <!-- Divided by 4 for QUADS --> 970*61046927SAndroid Build Coastguard Worker <field name="Instance stride" size="32" start="0" type="uint"/> 971*61046927SAndroid Build Coastguard Worker </struct> 972*61046927SAndroid Build Coastguard Worker 973*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Indirect" size="12"> 974*61046927SAndroid Build Coastguard Worker <!-- Address of the indirect buffer, format presumably matches Metal --> 975*61046927SAndroid Build Coastguard Worker <field name="Address hi" size="8" start="0:0" type="hex"/> 976*61046927SAndroid Build Coastguard Worker <field name="Address lo" size="32" start="1:0" type="hex"/> 977*61046927SAndroid Build Coastguard Worker 978*61046927SAndroid Build Coastguard Worker <!-- # of bytes in the buffer, presumably for hw bounds checking --> 979*61046927SAndroid Build Coastguard Worker <field name="Size" size="32" start="2:0" type="uint"/> 980*61046927SAndroid Build Coastguard Worker </struct> 981*61046927SAndroid Build Coastguard Worker 982*61046927SAndroid Build Coastguard Worker <struct name="VDM Tessellate: Unknown" size="4"> 983*61046927SAndroid Build Coastguard Worker <field name="Unknown 7" size="32" start="0" type="hex"/> <!-- 3F --> 984*61046927SAndroid Build Coastguard Worker </struct> 985*61046927SAndroid Build Coastguard Worker 986*61046927SAndroid Build Coastguard Worker <struct name="VDM Stream Terminate" size="32"> 987*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="VDM Block Type" default="Stream Terminate"/> 988*61046927SAndroid Build Coastguard Worker </struct> 989*61046927SAndroid Build Coastguard Worker 990*61046927SAndroid Build Coastguard Worker <!-- VDM commands end --> 991*61046927SAndroid Build Coastguard Worker 992*61046927SAndroid Build Coastguard Worker <!-- CDM commands start --> 993*61046927SAndroid Build Coastguard Worker <enum name="CDM Block Type"> 994*61046927SAndroid Build Coastguard Worker <value name="Launch" value="0"/> 995*61046927SAndroid Build Coastguard Worker <value name="Stream Link" value="1"/> 996*61046927SAndroid Build Coastguard Worker <value name="Stream Terminate" value="2"/> 997*61046927SAndroid Build Coastguard Worker <value name="Barrier" value="3"/> 998*61046927SAndroid Build Coastguard Worker </enum> 999*61046927SAndroid Build Coastguard Worker 1000*61046927SAndroid Build Coastguard Worker <enum name="CDM Mode"> 1001*61046927SAndroid Build Coastguard Worker <!-- Global size + Local size --> 1002*61046927SAndroid Build Coastguard Worker <value name="Direct" value="0"/> 1003*61046927SAndroid Build Coastguard Worker 1004*61046927SAndroid Build Coastguard Worker <!-- Indirect buffer + Local size. Indirect buffer contains 3x 32-bit global 1005*61046927SAndroid Build Coastguard Worker size. Used for indirect dispatch when the local size must be 1006*61046927SAndroid Build Coastguard Worker fixed (e.g. due to local memory being used) --> 1007*61046927SAndroid Build Coastguard Worker <value name="Indirect global" value="1"/> 1008*61046927SAndroid Build Coastguard Worker 1009*61046927SAndroid Build Coastguard Worker <!-- Indirect buffer, containing 6x 32-bit size. Used for indirect dispatch 1010*61046927SAndroid Build Coastguard Worker when the driver wants to optimize the local size with an auxiliary 1011*61046927SAndroid Build Coastguard Worker compute kernel (requiring e.g. no local memory use) --> 1012*61046927SAndroid Build Coastguard Worker <value name="Indirect local" value="2"/> 1013*61046927SAndroid Build Coastguard Worker </enum> 1014*61046927SAndroid Build Coastguard Worker 1015*61046927SAndroid Build Coastguard Worker <struct name="CDM Launch Word 0" size="4"> 1016*61046927SAndroid Build Coastguard Worker <field name="Uniform register count" size="3" start="1" type="uint" modifier="groups(64)"/> 1017*61046927SAndroid Build Coastguard Worker <field name="Texture state register count" size="5" start="4" type="uint" modifier="groups(8)"/> 1018*61046927SAndroid Build Coastguard Worker <field name="Sampler state register count" size="3" start="9" type="Sampler states"/> 1019*61046927SAndroid Build Coastguard Worker <field name="Preshader register count" size="4" start="12" type="uint" modifier="groups(16)"/> 1020*61046927SAndroid Build Coastguard Worker <field name="Mode" size="2" start="27" type="CDM Mode"/> 1021*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="CDM Block Type" default="Launch"/> 1022*61046927SAndroid Build Coastguard Worker </struct> 1023*61046927SAndroid Build Coastguard Worker 1024*61046927SAndroid Build Coastguard Worker <struct name="CDM Launch Word 1" size="4"> 1025*61046927SAndroid Build Coastguard Worker <field name="Pipeline" size="26" start="6" type="address" modifier="shr(6)"/> 1026*61046927SAndroid Build Coastguard Worker </struct> 1027*61046927SAndroid Build Coastguard Worker 1028*61046927SAndroid Build Coastguard Worker <struct name="CDM Unk G14X" size="8"> 1029*61046927SAndroid Build Coastguard Worker <field name="Unknown 30" size="1" start="1:30" type="bool" default="true"/> 1030*61046927SAndroid Build Coastguard Worker </struct> 1031*61046927SAndroid Build Coastguard Worker 1032*61046927SAndroid Build Coastguard Worker <struct name="CDM Indirect" size="8"> 1033*61046927SAndroid Build Coastguard Worker <field name="Address hi" size="8" start="0" type="hex"/> 1034*61046927SAndroid Build Coastguard Worker <field name="Address lo" size="30" start="34" type="hex" modifier="shr(2)"/> 1035*61046927SAndroid Build Coastguard Worker </struct> 1036*61046927SAndroid Build Coastguard Worker 1037*61046927SAndroid Build Coastguard Worker <struct name="CDM Global size" size="12"> 1038*61046927SAndroid Build Coastguard Worker <field name="X" size="32" start="0:0" type="uint"/> 1039*61046927SAndroid Build Coastguard Worker <field name="Y" size="32" start="1:0" type="uint"/> 1040*61046927SAndroid Build Coastguard Worker <field name="Z" size="32" start="2:0" type="uint"/> 1041*61046927SAndroid Build Coastguard Worker </struct> 1042*61046927SAndroid Build Coastguard Worker 1043*61046927SAndroid Build Coastguard Worker <struct name="CDM Local size" size="12"> 1044*61046927SAndroid Build Coastguard Worker <field name="X" size="32" start="0:0" type="uint"/> 1045*61046927SAndroid Build Coastguard Worker <field name="Y" size="32" start="1:0" type="uint"/> 1046*61046927SAndroid Build Coastguard Worker <field name="Z" size="32" start="2:0" type="uint"/> 1047*61046927SAndroid Build Coastguard Worker </struct> 1048*61046927SAndroid Build Coastguard Worker 1049*61046927SAndroid Build Coastguard Worker <struct name="CDM Barrier" size="4"> 1050*61046927SAndroid Build Coastguard Worker <field name="Unk 0" size="1" start="0" type="bool" default="false"/> 1051*61046927SAndroid Build Coastguard Worker <field name="Unk 1" size="1" start="1" type="bool" default="false"/> 1052*61046927SAndroid Build Coastguard Worker <field name="Unk 2" size="1" start="2" type="bool" default="false"/> 1053*61046927SAndroid Build Coastguard Worker <field name="USC cache inval" size="1" start="3" type="bool" default="false"/> 1054*61046927SAndroid Build Coastguard Worker <field name="Unk 4" size="1" start="4" type="bool" default="false"/> 1055*61046927SAndroid Build Coastguard Worker <field name="Unk 5" size="1" start="5" type="bool" default="false"/> 1056*61046927SAndroid Build Coastguard Worker <field name="Unk 6" size="1" start="6" type="bool" default="false"/> 1057*61046927SAndroid Build Coastguard Worker <field name="Unk 7" size="1" start="7" type="bool" default="false"/> 1058*61046927SAndroid Build Coastguard Worker <field name="Unk 8" size="1" start="8" type="bool" default="false"/> 1059*61046927SAndroid Build Coastguard Worker <field name="Unk 9" size="1" start="9" type="bool" default="false"/> 1060*61046927SAndroid Build Coastguard Worker <field name="Unk 10" size="1" start="10" type="bool" default="false"/> 1061*61046927SAndroid Build Coastguard Worker <field name="Unk 11" size="1" start="11" type="bool" default="false"/> 1062*61046927SAndroid Build Coastguard Worker <field name="Unk 12" size="1" start="12" type="bool" default="false"/> 1063*61046927SAndroid Build Coastguard Worker <field name="Unk 13" size="1" start="13" type="bool" default="false"/> 1064*61046927SAndroid Build Coastguard Worker <field name="Unk 14" size="1" start="14" type="bool" default="false"/> 1065*61046927SAndroid Build Coastguard Worker <field name="Unk 15" size="1" start="15" type="bool" default="false"/> 1066*61046927SAndroid Build Coastguard Worker <field name="Unk 16" size="1" start="16" type="bool" default="false"/> 1067*61046927SAndroid Build Coastguard Worker <field name="Unk 17" size="1" start="17" type="bool" default="false"/> 1068*61046927SAndroid Build Coastguard Worker <field name="Unk 18" size="1" start="18" type="bool" default="false"/> 1069*61046927SAndroid Build Coastguard Worker <field name="Unk 19" size="1" start="19" type="bool" default="false"/> 1070*61046927SAndroid Build Coastguard Worker <field name="Unk 20" size="1" start="20" type="bool" default="false"/> 1071*61046927SAndroid Build Coastguard Worker <field name="Unk 24" size="1" start="24" type="bool" default="false"/> 1072*61046927SAndroid Build Coastguard Worker <field name="Unk 26" size="1" start="26" type="bool" default="false"/> 1073*61046927SAndroid Build Coastguard Worker <field name="Returns" size="1" start="27" type="bool" default="false"/> 1074*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="CDM Block Type" default="Barrier"/> 1075*61046927SAndroid Build Coastguard Worker </struct> 1076*61046927SAndroid Build Coastguard Worker 1077*61046927SAndroid Build Coastguard Worker <struct name="CDM Stream Link" size="8"> 1078*61046927SAndroid Build Coastguard Worker <field name="Target hi" size="8" start="0" type="hex"/> 1079*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="CDM Block Type" default="Stream Link"/> 1080*61046927SAndroid Build Coastguard Worker <field name="Target lo" size="32" start="32" type="hex"/> 1081*61046927SAndroid Build Coastguard Worker </struct> 1082*61046927SAndroid Build Coastguard Worker 1083*61046927SAndroid Build Coastguard Worker <struct name="CDM Stream Terminate" size="8"> 1084*61046927SAndroid Build Coastguard Worker <field name="Block Type" size="3" start="29" type="CDM Block Type" default="Stream Terminate"/> 1085*61046927SAndroid Build Coastguard Worker </struct> 1086*61046927SAndroid Build Coastguard Worker <!-- CDM commands end --> 1087*61046927SAndroid Build Coastguard Worker 1088*61046927SAndroid Build Coastguard Worker <!--- The rest of this file is likely software defined by macOS kernel --> 1089*61046927SAndroid Build Coastguard Worker <enum name="IOGPU Attachment Type"> 1090*61046927SAndroid Build Coastguard Worker <value name="Colour" value="0xE"/> 1091*61046927SAndroid Build Coastguard Worker <value name="Depth" value="0x10"/> 1092*61046927SAndroid Build Coastguard Worker <value name="Stencil" value="0x11"/> 1093*61046927SAndroid Build Coastguard Worker <value name="Visibility" value="0x12"/> 1094*61046927SAndroid Build Coastguard Worker </enum> 1095*61046927SAndroid Build Coastguard Worker 1096*61046927SAndroid Build Coastguard Worker <struct name="IOGPU Attachment" size="24"> 1097*61046927SAndroid Build Coastguard Worker <field name="Unk 0" start="0:0" size="16" default="0x100" type="hex"/> 1098*61046927SAndroid Build Coastguard Worker <field name="Address" start="0:16" size="48" type="address"/> 1099*61046927SAndroid Build Coastguard Worker <field name="Type" start="2:16" size="16" type="IOGPU Attachment Type"/> 1100*61046927SAndroid Build Coastguard Worker <field name="Size" start="3:9" size="32" type="uint"/> 1101*61046927SAndroid Build Coastguard Worker <field name="Unk 3" start="4:16" size="4" type="hex" default="0xC"/> 1102*61046927SAndroid Build Coastguard Worker <!-- Percent of total attachment space used for this attachment, expressed 1103*61046927SAndroid Build Coastguard Worker in a decimal percentage [0, 100] <field name="Percent" start="5:16" --> 1104*61046927SAndroid Build Coastguard Worker <field name="Percent" start="5:16" size="16" type="uint"/> 1105*61046927SAndroid Build Coastguard Worker </struct> 1106*61046927SAndroid Build Coastguard Worker 1107*61046927SAndroid Build Coastguard Worker <enum name="ZLS Format"> 1108*61046927SAndroid Build Coastguard Worker <value name="32F" value="0"/> 1109*61046927SAndroid Build Coastguard Worker <value name="16" value="2"/> 1110*61046927SAndroid Build Coastguard Worker </enum> 1111*61046927SAndroid Build Coastguard Worker 1112*61046927SAndroid Build Coastguard Worker <struct name="ZLS Control" size="8"> 1113*61046927SAndroid Build Coastguard Worker <field name="Unknown 0" start="0" size="1" type="bool"/> 1114*61046927SAndroid Build Coastguard Worker <field name="Unknown 1" start="1" size="1" type="bool"/> 1115*61046927SAndroid Build Coastguard Worker <field name="Z Compress 1" start="2" size="1" type="bool"/> 1116*61046927SAndroid Build Coastguard Worker <field name="Unknown 3" start="3" size="1" type="bool"/> 1117*61046927SAndroid Build Coastguard Worker <field name="S Compress 1" start="4" size="1" type="bool"/> 1118*61046927SAndroid Build Coastguard Worker <field name="Unknown 5" start="5" size="1" type="bool"/> 1119*61046927SAndroid Build Coastguard Worker <field name="Z Compress 2" start="6" size="1" type="bool"/> 1120*61046927SAndroid Build Coastguard Worker <field name="Unknown 7" start="7" size="1" type="bool"/> 1121*61046927SAndroid Build Coastguard Worker <field name="S Compress 2" start="8" size="1" type="bool"/> 1122*61046927SAndroid Build Coastguard Worker <field name="S Load Enable" start="14" size="1" type="bool"/> 1123*61046927SAndroid Build Coastguard Worker <field name="Z Load Enable" start="15" size="1" type="bool"/> 1124*61046927SAndroid Build Coastguard Worker <field name="S Store Enable" start="18" size="1" type="bool"/> 1125*61046927SAndroid Build Coastguard Worker <field name="Z Store Enable" start="19" size="1" type="bool"/> 1126*61046927SAndroid Build Coastguard Worker <field name="Z Format" start="25" size="2" type="ZLS Format"/> 1127*61046927SAndroid Build Coastguard Worker <field name="Z Resolve" start="56" size="1" type="bool"/> 1128*61046927SAndroid Build Coastguard Worker <field name="S Resolve" start="58" size="1" type="bool"/> 1129*61046927SAndroid Build Coastguard Worker </struct> 1130*61046927SAndroid Build Coastguard Worker 1131*61046927SAndroid Build Coastguard Worker <struct name="IOGPU Header" size="64"> 1132*61046927SAndroid Build Coastguard Worker <field name="Unk 0" start="0:0" size="32" default="0x10000" type="hex"/> 1133*61046927SAndroid Build Coastguard Worker <field name="Total size" start="1:0" size="32" type="uint"/> 1134*61046927SAndroid Build Coastguard Worker <!-- 0x7 in 11.x --> 1135*61046927SAndroid Build Coastguard Worker <field name="Unk 2" start="2:0" size="32" default="0x4" type="hex"/> 1136*61046927SAndroid Build Coastguard Worker <field name="Attachment length" start="9:0" size="32" type="uint"/> 1137*61046927SAndroid Build Coastguard Worker <field name="Attachment offset" start="10:0" size="32" type="uint"/> 1138*61046927SAndroid Build Coastguard Worker <field name="Unknown offset" start="11:0" size="32" type="uint"/> 1139*61046927SAndroid Build Coastguard Worker <field name="Unk 4" start="12:0" size="32" default="0x30" type="hex"/> 1140*61046927SAndroid Build Coastguard Worker <field name="Unk 5" start="13:0" size="32" default="0x01" type="hex"/> 1141*61046927SAndroid Build Coastguard Worker <field name="Encoder" start="14:0" size="64" type="address"/> 1142*61046927SAndroid Build Coastguard Worker </struct> 1143*61046927SAndroid Build Coastguard Worker 1144*61046927SAndroid Build Coastguard Worker <struct name="Spill Buffer Histogram" size="60"> 1145*61046927SAndroid Build Coastguard Worker <field name="Bin 0" start="0:0" size="4" type="uint"/> 1146*61046927SAndroid Build Coastguard Worker <field name="Bin 1" start="1:0" size="4" type="uint"/> 1147*61046927SAndroid Build Coastguard Worker <field name="Bin 2" start="2:0" size="4" type="uint"/> 1148*61046927SAndroid Build Coastguard Worker <field name="Bin 3" start="3:0" size="4" type="uint"/> 1149*61046927SAndroid Build Coastguard Worker <field name="Bin 4" start="4:0" size="4" type="uint"/> 1150*61046927SAndroid Build Coastguard Worker <field name="Bin 5" start="5:0" size="4" type="uint"/> 1151*61046927SAndroid Build Coastguard Worker <field name="Bin 6" start="6:0" size="4" type="uint"/> 1152*61046927SAndroid Build Coastguard Worker <field name="Bin 7" start="7:0" size="4" type="uint"/> 1153*61046927SAndroid Build Coastguard Worker <field name="Bin 8" start="8:0" size="4" type="uint"/> 1154*61046927SAndroid Build Coastguard Worker <field name="Bin 9" start="9:0" size="4" type="uint"/> 1155*61046927SAndroid Build Coastguard Worker <field name="Bin 10" start="10:0" size="4" type="uint"/> 1156*61046927SAndroid Build Coastguard Worker <field name="Bin 11" start="11:0" size="4" type="uint"/> 1157*61046927SAndroid Build Coastguard Worker <field name="Bin 12" start="12:0" size="4" type="uint"/> 1158*61046927SAndroid Build Coastguard Worker <field name="Bin 13" start="13:0" size="4" type="uint"/> 1159*61046927SAndroid Build Coastguard Worker <field name="Bin 14" start="14:0" size="4" type="uint"/> 1160*61046927SAndroid Build Coastguard Worker </struct> 1161*61046927SAndroid Build Coastguard Worker 1162*61046927SAndroid Build Coastguard Worker <struct name="IOGPU Compute" size="384"> 1163*61046927SAndroid Build Coastguard Worker <field name="Deflake 1" start="20:0" size="64" type="address"/> 1164*61046927SAndroid Build Coastguard Worker <field name="Terminate of encoder" start="22:0" size="64" type="address"/> 1165*61046927SAndroid Build Coastguard Worker <field name="Deflake 2" start="26:0" size="64" type="address"/> 1166*61046927SAndroid Build Coastguard Worker <field name="Deflake 3" start="28:0" size="64" type="address"/> 1167*61046927SAndroid Build Coastguard Worker <field name="Deflake 4" start="30:0" size="64" type="address"/> 1168*61046927SAndroid Build Coastguard Worker <field name="Deflake 5" start="32:0" size="64" type="address"/> 1169*61046927SAndroid Build Coastguard Worker <field name="Unk 34" start="34:0" size="32" default="1" type="hex"/> 1170*61046927SAndroid Build Coastguard Worker <field name="Unk address" start="36:0" size="64" type="address"/> 1171*61046927SAndroid Build Coastguard Worker <field name="Unk 40" start="40:0" size="32" default="0x1c" type="hex"/> 1172*61046927SAndroid Build Coastguard Worker <field name="Encoder ID" start="41:0" size="32" type="hex"/> 1173*61046927SAndroid Build Coastguard Worker <field name="Unk 44" start="44:0" size="32" default="0xffffffff" type="hex"/> 1174*61046927SAndroid Build Coastguard Worker <field name="Context switch program" start="48:0" size="32" type="address"/> 1175*61046927SAndroid Build Coastguard Worker 1176*61046927SAndroid Build Coastguard Worker <!-- An enum that's purely macOS defined UAPI. Doesn't matter for us. 1177*61046927SAndroid Build Coastguard Worker More info at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21062#note_1754715 --> 1178*61046927SAndroid Build Coastguard Worker <field name="Context switch block size" start="56:0" size="4" default="2" type="hex"/> 1179*61046927SAndroid Build Coastguard Worker <field name="Spilling unk 1" start="57:3" size="1" type="bool"/> 1180*61046927SAndroid Build Coastguard Worker <!-- Depends on grid size, as well as other factors. TODO: Decode. --> 1181*61046927SAndroid Build Coastguard Worker <field name="Number of context switch buffers" start="58:0" size="32" default="1" type="uint"/> 1182*61046927SAndroid Build Coastguard Worker <field name="Spill Buffer Histogram" start="60:0" size="480" type="Spill Buffer Histogram"/> 1183*61046927SAndroid Build Coastguard Worker <!-- Lina's guess at the meaning --> 1184*61046927SAndroid Build Coastguard Worker <field name="Enable context switching" start="75:16" size="1" default="true" type="bool"/> 1185*61046927SAndroid Build Coastguard Worker <field name="Unk 94" start="94:0" size="32" default="0xffffffff" type="hex"/> 1186*61046927SAndroid Build Coastguard Worker <field name="Unk 95" start="95:0" size="32" default="0xffffffff" type="hex"/> 1187*61046927SAndroid Build Coastguard Worker </struct> 1188*61046927SAndroid Build Coastguard Worker 1189*61046927SAndroid Build Coastguard Worker <struct name="IOGPU Graphics" size="1920"> 1190*61046927SAndroid Build Coastguard Worker <!-- if either deflake address is null, rendering gets flaky for high 1191*61046927SAndroid Build Coastguard Worker geometry counts --> 1192*61046927SAndroid Build Coastguard Worker <field name="Deflake 1" start="22:0" size="64" type="address"/> 1193*61046927SAndroid Build Coastguard Worker <field name="Deflake 2" start="24:0" size="64" type="address"/> 1194*61046927SAndroid Build Coastguard Worker <field name="Unk 54" start="38:0" size="32" default="0x6b0003" type="hex"/> 1195*61046927SAndroid Build Coastguard Worker <field name="Unk 55" start="39:0" size="32" default="0x3a0012" type="hex"/> 1196*61046927SAndroid Build Coastguard Worker <field name="Unk 56" start="40:0" size="32" default="0x1" type="hex"/> 1197*61046927SAndroid Build Coastguard Worker <field name="Deflake 3" start="94:0" size="64" type="address"/> 1198*61046927SAndroid Build Coastguard Worker <field name="Unk 112" start="96:0" size="32" default="0x1" type="hex"/> 1199*61046927SAndroid Build Coastguard Worker <field name="Unk 114" start="98:0" size="32" default="0x1c" type="hex"/> 1200*61046927SAndroid Build Coastguard Worker <field name="Memoryless render targets used" start="100:0" size="1" type="bool"/> 1201*61046927SAndroid Build Coastguard Worker <field name="OpenGL depth clipping" start="100:24" size="1" type="bool"/> 1202*61046927SAndroid Build Coastguard Worker <field name="Unk 118" start="102:0" size="32" default="0xffffffff" type="hex"/> 1203*61046927SAndroid Build Coastguard Worker <field name="Unk 119" start="103:0" size="32" default="0xffffffff" type="hex"/> 1204*61046927SAndroid Build Coastguard Worker <field name="Unk 120" start="104:0" size="32" default="0xffffffff" type="hex"/> 1205*61046927SAndroid Build Coastguard Worker 1206*61046927SAndroid Build Coastguard Worker <field name="Clear pipeline bind" start="146:0" size="32" type="hex"/> 1207*61046927SAndroid Build Coastguard Worker <field name="Clear pipeline unk" start="148:0" size="4" default="4" type="hex"/> 1208*61046927SAndroid Build Coastguard Worker <field name="Clear pipeline" start="148:4" size="28" type="address" modifier="shr(4)"/> 1209*61046927SAndroid Build Coastguard Worker <field name="Store pipeline bind" start="154:0" size="32" type="hex"/> 1210*61046927SAndroid Build Coastguard Worker <field name="Store pipeline unk" start="156:0" size="4" default="4" type="hex"/> 1211*61046927SAndroid Build Coastguard Worker <field name="Store pipeline" start="156:4" size="28" type="address" modifier="shr(4)"/> 1212*61046927SAndroid Build Coastguard Worker <field name="Scissor array" start="158:0" size="64" type="address"/> 1213*61046927SAndroid Build Coastguard Worker <field name="Depth bias array" start="160:0" size="64" type="address"/> 1214*61046927SAndroid Build Coastguard Worker <field name="ZLS control" start="164:0" size="32" type="ZLS Control"/> 1215*61046927SAndroid Build Coastguard Worker <field name="Depth width" start="170:0" size="15" type="uint" default="1" modifier="minus(1)"/> 1216*61046927SAndroid Build Coastguard Worker <field name="Depth height" start="170:15" size="15" type="uint" default="1" modifier="minus(1)"/> 1217*61046927SAndroid Build Coastguard Worker <field name="Depth buffer 1" start="172:7" size="33" type="address" modifier="shr(7)"/> 1218*61046927SAndroid Build Coastguard Worker <!-- Normally 0, 0x38001 with layered --> 1219*61046927SAndroid Build Coastguard Worker <field name="Depth unknown 1" start="176:0" size="32" type="hex"/> 1220*61046927SAndroid Build Coastguard Worker <field name="Depth acceleration buffer 1" start="178:7" size="33" type="address" modifier="shr(7)"/> 1221*61046927SAndroid Build Coastguard Worker <field name="Depth buffer 2" start="182:7" size="33" type="address" modifier="shr(7)"/> 1222*61046927SAndroid Build Coastguard Worker <field name="Depth acceleration buffer 2" start="188:7" size="33" type="address" modifier="shr(7)"/> 1223*61046927SAndroid Build Coastguard Worker <!-- Normally 0, 0x38001 with layered --> 1224*61046927SAndroid Build Coastguard Worker <field name="Depth unknown 2" start="186:0" size="32" type="hex"/> 1225*61046927SAndroid Build Coastguard Worker <field name="Stencil buffer 1" start="192:7" size="33" type="address" modifier="shr(7)"/> 1226*61046927SAndroid Build Coastguard Worker <!-- Normally 0, 0x10001 with layered --> 1227*61046927SAndroid Build Coastguard Worker <field name="Stencil unknown 1" start="196:0" size="32" type="hex"/> 1228*61046927SAndroid Build Coastguard Worker <field name="Stencil acceleration buffer 1" start="198:7" size="33" type="address" modifier="shr(7)"/> 1229*61046927SAndroid Build Coastguard Worker <field name="Stencil buffer 2" start="202:7" size="33" type="address" modifier="shr(7)"/> 1230*61046927SAndroid Build Coastguard Worker <!-- Normally 0, 0x10001 with layered --> 1231*61046927SAndroid Build Coastguard Worker <field name="Stencil unknown 2" start="206:0" size="32" type="hex"/> 1232*61046927SAndroid Build Coastguard Worker <field name="Stencil acceleration buffer 2" start="208:7" size="33" type="address" modifier="shr(7)"/> 1233*61046927SAndroid Build Coastguard Worker <!-- Proportional to tile width * tile height * sample count --> 1234*61046927SAndroid Build Coastguard Worker <field name="Unk 212" start="212:0" size="32" default="0x4" type="hex"/> 1235*61046927SAndroid Build Coastguard Worker <field name="Unk 214" start="214:0" size="16" default="0xc000" type="hex"/> 1236*61046927SAndroid Build Coastguard Worker <field name="Z16 Unorm attachment 1" start="214:18" size="1" type="bool"/> 1237*61046927SAndroid Build Coastguard Worker <field name="Width 1" start="216:0" size="32" type="uint"/> 1238*61046927SAndroid Build Coastguard Worker <field name="Height 1" start="217:0" size="32" type="uint"/> 1239*61046927SAndroid Build Coastguard Worker <field name="Pointer" start="218:0" size="64" type="address"/> 1240*61046927SAndroid Build Coastguard Worker 1241*61046927SAndroid Build Coastguard Worker <!-- 0x40 with frag spilling --> 1242*61046927SAndroid Build Coastguard Worker <field name="Spilling unk 1" start="226:0" size="32" type="hex"/> 1243*61046927SAndroid Build Coastguard Worker <field name="Spill Buffer Histogram" start="238:0" size="480" type="Spill Buffer Histogram"/> 1244*61046927SAndroid Build Coastguard Worker 1245*61046927SAndroid Build Coastguard Worker <!-- Encoded like the depth attachment --> 1246*61046927SAndroid Build Coastguard Worker <field name="Depth clear value" start="276:0" size="32" type="hex"/> 1247*61046927SAndroid Build Coastguard Worker <field name="Stencil clear value" start="277:0" size="8" type="uint"/> 1248*61046927SAndroid Build Coastguard Worker <field name="Unk 277" start="277:8" size="8" type="hex" default="3"/> 1249*61046927SAndroid Build Coastguard Worker <field name="Set when reloading Z or S 1" start="279:8" size="1" type="bool"/> 1250*61046927SAndroid Build Coastguard Worker <field name="Set when frag shader spills" start="279:24" size="1" type="bool"/> 1251*61046927SAndroid Build Coastguard Worker <field name="Set when reloading Z or S 2" start="280:24" size="1" type="bool"/> 1252*61046927SAndroid Build Coastguard Worker <field name="Z16 Unorm attachment 2" start="281:8" size="1" type="bool"/> 1253*61046927SAndroid Build Coastguard Worker <field name="Unk 282" start="282:0" size="32" type="hex" default="0xffffffff"/> 1254*61046927SAndroid Build Coastguard Worker <field name="Unk 283" start="283:0" size="32" type="hex" default="0xffffffff"/> 1255*61046927SAndroid Build Coastguard Worker <field name="Unk 284" start="284:0" size="32" type="hex" default="0xffffffff"/> 1256*61046927SAndroid Build Coastguard Worker <field name="Visibility result buffer" start="286:0" size="64" type="address"/> 1257*61046927SAndroid Build Coastguard Worker <field name="Partial reload pipeline bind" start="296:0" size="32" type="hex"/> 1258*61046927SAndroid Build Coastguard Worker <field name="Partial reload pipeline unk" start="298:0" size="4" default="4" type="hex"/> 1259*61046927SAndroid Build Coastguard Worker <field name="Partial reload pipeline" start="298:4" size="28" type="address" modifier="shr(4)"/> 1260*61046927SAndroid Build Coastguard Worker <field name="Partial store pipeline bind" start="304:0" size="32" type="hex"/> 1261*61046927SAndroid Build Coastguard Worker <field name="Partial store pipeline unk" start="306:0" size="4" default="4" type="hex"/> 1262*61046927SAndroid Build Coastguard Worker <field name="Partial store pipeline" start="306:4" size="28" type="address" modifier="shr(4)"/> 1263*61046927SAndroid Build Coastguard Worker 1264*61046927SAndroid Build Coastguard Worker <!-- New in 12.x --> 1265*61046927SAndroid Build Coastguard Worker <field name="Depth buffer 3" start="340:0" size="64" type="address"/> 1266*61046927SAndroid Build Coastguard Worker <field name="Depth acceleration buffer 3" start="342:0" size="64" type="address"/> 1267*61046927SAndroid Build Coastguard Worker <field name="Stencil buffer 3" start="344:0" size="64" type="address"/> 1268*61046927SAndroid Build Coastguard Worker <field name="Stencil acceleration buffer 3" start="346:0" size="64" type="address"/> 1269*61046927SAndroid Build Coastguard Worker <!-- maybe only set when doing a depth clear? --> 1270*61046927SAndroid Build Coastguard Worker <!-- 0x1000000 bit set with memoryless render targets? --> 1271*61046927SAndroid Build Coastguard Worker <field name="Unk 352" start="352:0" size="32" default="0x1" type="hex"/> 1272*61046927SAndroid Build Coastguard Worker <field name="Unk 360" start="360:0" size="32" default="0x1c" type="hex"/> 1273*61046927SAndroid Build Coastguard Worker <field name="Encoder ID" start="362:0" size="32" type="hex"/> 1274*61046927SAndroid Build Coastguard Worker <!-- top bit maybe only set with a depth clear? --> 1275*61046927SAndroid Build Coastguard Worker <field name="Unk 365" start="365:0" size="64" default="0x1ffffffff" type="hex"/> 1276*61046927SAndroid Build Coastguard Worker <field name="Unknown buffer" start="370:0" size="64" type="address"/> 1277*61046927SAndroid Build Coastguard Worker <field name="Width 2" start="382:0" size="32" type="uint"/> 1278*61046927SAndroid Build Coastguard Worker <field name="Height 2" start="383:0" size="32" type="uint"/> 1279*61046927SAndroid Build Coastguard Worker <field name="Sample count" start="384:0" size="32" default="1" type="uint"/> 1280*61046927SAndroid Build Coastguard Worker 1281*61046927SAndroid Build Coastguard Worker <!-- Divided by 16 and rounded --> 1282*61046927SAndroid Build Coastguard Worker <field name="Sample 0 X" start="385:0" size="5" default="8" type="uint"/> 1283*61046927SAndroid Build Coastguard Worker <field name="Sample 0 Y" start="386:0" size="5" default="8" type="uint"/> 1284*61046927SAndroid Build Coastguard Worker <field name="Sample 1 X" start="387:0" size="5" default="0" type="uint"/> 1285*61046927SAndroid Build Coastguard Worker <field name="Sample 1 Y" start="388:0" size="5" default="0" type="uint"/> 1286*61046927SAndroid Build Coastguard Worker <field name="Sample 2 X" start="389:0" size="5" default="0" type="uint"/> 1287*61046927SAndroid Build Coastguard Worker <field name="Sample 2 Y" start="390:0" size="5" default="0" type="uint"/> 1288*61046927SAndroid Build Coastguard Worker <field name="Sample 3 X" start="391:0" size="5" default="0" type="uint"/> 1289*61046927SAndroid Build Coastguard Worker <field name="Sample 3 Y" start="392:0" size="5" default="0" type="uint"/> 1290*61046927SAndroid Build Coastguard Worker 1291*61046927SAndroid Build Coastguard Worker <!-- if tile size 32x32: max(tib allocation, 8) rounded to POT 1292*61046927SAndroid Build Coastguard Worker if tile size 32x16: that, halved 1293*61046927SAndroid Build Coastguard Worker --> 1294*61046927SAndroid Build Coastguard Worker <field name="Unk 49:0" start="401:0" size="32" default="8" type="uint"/> 1295*61046927SAndroid Build Coastguard Worker <field name="Tile width" start="402:0" size="32" default="32" type="uint"/> 1296*61046927SAndroid Build Coastguard Worker <field name="Tile height" start="403:0" size="32" default="32" type="uint"/> 1297*61046927SAndroid Build Coastguard Worker <!-- Number of framebuffer layers when rendering to a layered framebuffer (1 1298*61046927SAndroid Build Coastguard Worker otherwise). This affects tiling calculations. It also affects how many 1299*61046927SAndroid Build Coastguard Worker times the background program and end-of-tile programs are executed. The 1300*61046927SAndroid Build Coastguard Worker layer index is available in sr2. --> 1301*61046927SAndroid Build Coastguard Worker <field name="Framebuffer layers" start="404:0" size="32" default="1" type="uint"/> 1302*61046927SAndroid Build Coastguard Worker <field name="Unk 56:0" start="408:0" size="32" default="0" type="uint"/> 1303*61046927SAndroid Build Coastguard Worker <field name="Unk 70:0" start="410:0" size="32" default="1" type="uint"/> 1304*61046927SAndroid Build Coastguard Worker </struct> 1305*61046927SAndroid Build Coastguard Worker 1306*61046927SAndroid Build Coastguard Worker <struct name="IOGPU Attachment Count" size="16"> 1307*61046927SAndroid Build Coastguard Worker <field name="Count" start="3:0" size="32" type="uint"/> 1308*61046927SAndroid Build Coastguard Worker </struct> 1309*61046927SAndroid Build Coastguard Worker 1310*61046927SAndroid Build Coastguard Worker</genxml> 1311