+ <struct name="GL Shader State Record" min_ver="41">
+ <field name="Point size in shaded vertex data" size="1" start="0" type="bool"/>
+ <field name="Enable clipping" size="1" start="1" type="bool"/>
+
+ <field name="Vertex ID read by coordinate shader" size="1" start="2" type="bool"/>
+ <field name="Instance ID read by coordinate shader" size="1" start="3" type="bool"/>
+ <field name="Base Instance ID read by coordinate shader" size="1" start="4" type="bool"/>
+ <field name="Vertex ID read by vertex shader" size="1" start="5" type="bool"/>
+ <field name="Instance ID read by vertex shader" size="1" start="6" type="bool"/>
+ <field name="Base Instance ID read by vertex shader" size="1" start="7" type="bool"/>
+
+ <field name="Fragment shader does Z writes" size="1" start="8" type="bool"/>
+ <field name="Turn off early-z test" size="1" start="9" type="bool"/>
+ <field name="Coordinate shader has separate input and output VPM blocks" size="1" start="10" type="bool"/>
+ <field name="Vertex shader has separate input and output VPM blocks" size="1" start="11" type="bool"/>
+ <field name="Fragment shader uses real pixel centre W in addition to centroid W2" size="1" start="12" type="bool"/>
+ <field name="Enable Sample Rate Shading" size="1" start="13" type="bool"/>
+ <field name="Any shader reads hardware-written Primitive ID" size="1" start="14" type="bool"/>
+ <field name="Insert Primitive ID as first varying to fragment shader" size="1" start="15" type="bool"/>
+ <field name="Turn off scoreboard" size="1" start="16" type="bool"/>
+ <field name="Do scoreboard wait on first thread switch" size="1" start="17" type="bool"/>
+ <field name="Disable implicit point/line varyings" size="1" start="18" type="bool"/>
+ <field name="No prim pack" size="1" start="19" type="bool"/>
+
+ <field name="Number of varyings in Fragment Shader" size="8" start="3b" type="uint"/>
+
+ <field name="Coordinate Shader output VPM segment size" size="4" start="4b" type="uint"/>
+ <field name="Min Coord Shader output segments required in play in addition to VCM cache size" size="4" start="36" type="uint"/>
+
+ <field name="Coordinate Shader input VPM segment size" size="4" start="5b" type="uint"/>
+ <field name="Min Coord Shader input segments required in play" size="4" start="44" type="uint" minus_one="true"/>
+
+ <field name="Vertex Shader output VPM segment size" size="4" start="6b" type="uint"/>
+ <field name="Min Vertex Shader output segments required in play in addition to VCM cache size" size="4" start="52" type="uint"/>
+
+ <field name="Vertex Shader input VPM segment size" size="4" start="7b" type="uint"/>
+ <field name="Min Vertex Shader input segments required in play" size="4" start="60" type="uint" minus_one="true"/>
+
+ <field name="Address of default attribute values" size="32" start="8b" type="address"/>
+
+ <field name="Fragment Shader Code Address" size="29" start="99" type="address"/>
+ <field name="Fragment Shader 4-way threadable" size="1" start="96" type="bool"/>
+ <field name="Fragment Shader start in final thread section" size="1" start="97" type="bool"/>
+ <field name="Fragment Shader Propagate NaNs" size="1" start="98" type="bool"/>
+ <field name="Fragment Shader Uniforms Address" size="32" start="16b" type="address"/>
+
+ <field name="Vertex Shader Code Address" size="29" start="163" type="address"/>
+ <field name="Vertex Shader 4-way threadable" size="1" start="160" type="bool"/>
+ <field name="Vertex Shader start in final thread section" size="1" start="161" type="bool"/>
+ <field name="Vertex Shader Propagate NaNs" size="1" start="162" type="bool"/>
+ <field name="Vertex Shader Uniforms Address" size="32" start="24b" type="address"/>
+
+ <field name="Coordinate Shader Code Address" size="29" start="227" type="address"/>
+ <field name="Coordinate Shader 4-way threadable" size="1" start="224" type="bool"/>
+ <field name="Coordinate Shader start in final thread section" size="1" start="225" type="bool"/>
+ <field name="Coordinate Shader Propagate NaNs" size="1" start="226" type="bool"/>
+ <field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="address"/>
+ </struct>
+
+ <struct name="Geometry Shader State Record" min_ver="41">
+ <field name="Geometry Bin Mode Shader Code Address" size="32" start="0b" type="address"/>
+ <field name="4-way threadable" size="1" start="0" type="bool"/>
+ <field name="Start in final thread section" size="1" start="1" type="bool"/>
+ <field name="Propagate NaNs" size="1" start="2" type="bool"/>
+ <field name="Geometry Bin Mode Shader Uniforms Address" size="32" start="4b" type="address"/>
+ <field name="Geometry Render Mode Shader Code Address" size="32" start="8b" type="address"/>
+ <field name="Geometry Render Mode Shader Uniforms Address" size="32" start="12b" type="address"/>
+ </struct>
+
+ <struct name="Tessellation Shader State Record" min_ver="41">
+ <field name="Tessellation Bin Mode Control Shader Code Address" size="32" start="0b" type="address"/>
+ <field name="Tessellation Bin Mode Control Shader Uniforms Address" size="32" start="4b" type="address"/>
+ <field name="Tessellation Render Mode Control Shader Code Address" size="32" start="8b" type="address"/>
+ <field name="Tessellation Render Mode Control Shader Uniforms Address" size="32" start="12b" type="address"/>
+
+ <field name="Tessellation Bin Mode Evaluation Shader Code Address" size="32" start="16b" type="address"/>
+ <field name="Tessellation Bin Mode Evaluation Shader Uniforms Address" size="32" start="20b" type="address"/>
+ <field name="Tessellation Render Mode Evaluation Shader Code Address" size="32" start="24b" type="address"/>
+ <field name="Tessellation Render Mode Evaluation Shader Uniforms Address" size="32" start="28b" type="address"/>
+ </struct>
+
+ <struct name="GL Shader State Attribute Record" max_ver="33">
+ <field name="Address" size="32" start="0" type="address"/>
+
+ <field name="Vec size" size="2" start="32" type="uint"/>
+ <field name="Type" size="3" start="34" type="uint">
+ <value name="Attribute half-float" value="1"/>
+ <value name="Attribute float" value="2"/>
+ <value name="Attribute fixed" value="3"/>
+ <value name="Attribute byte" value="4"/>
+ <value name="Attribute short" value="5"/>
+ <value name="Attribute int" value="6"/>
+ <value name="Attribute int2_10_10_10" value="7"/>
+ </field>
+ <field name="Signed int type" size="1" start="37" type="bool"/>
+ <field name="Normalized int type" size="1" start="38" type="bool"/>
+ <field name="Read as int/uint" size="1" start="39" type="bool"/>
+
+ <field name="Number of values read by Coordinate shader" size="4" start="40" type="uint"/>
+ <field name="Number of values read by Vertex shader" size="4" start="44" type="uint"/>
+
+ <field name="Instance Divisor" size="16" start="6b" type="uint"/>
+ <field name="Stride" size="32" start="8b" type="uint"/>
+ </struct>
+
+ <struct name="GL Shader State Attribute Record" min_ver="41">