summaryrefslogtreecommitdiffstats
path: root/src/broadcom/cle/v3d_packet_v21.xml
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2016-10-26 10:14:37 -0700
committerEric Anholt <[email protected]>2017-06-30 12:25:45 -0700
commit7f80a9ff1312406dcffae88bf6dcaaf99ca9e3a1 (patch)
treeb0de421d08cd0f3ee42f2a3e48c702f73772fefb /src/broadcom/cle/v3d_packet_v21.xml
parent6646f6ba0dca70478cafd39886005e387406f114 (diff)
vc4: Introduce XML-based packet header generation like Intel's.
I really liked this idea, as it should help with management of packet parsing tools like the CL dump. The python script is forked off of theirs because our packets are byte-based instead of dwords, and the changes to do so while avoiding performance regressions due to unaligned accesses were quite invasive. v2: Fix Android.mk paths, drop shebang for python script, fix overlap detection. Acked-by: Jason Ekstrand <[email protected]> Acked-by: Kenneth Graunke <[email protected]> Tested-by: Rob Herring <[email protected]>
Diffstat (limited to 'src/broadcom/cle/v3d_packet_v21.xml')
-rw-r--r--src/broadcom/cle/v3d_packet_v21.xml220
1 files changed, 220 insertions, 0 deletions
diff --git a/src/broadcom/cle/v3d_packet_v21.xml b/src/broadcom/cle/v3d_packet_v21.xml
new file mode 100644
index 00000000000..1d5b5b7d0e4
--- /dev/null
+++ b/src/broadcom/cle/v3d_packet_v21.xml
@@ -0,0 +1,220 @@
+<vcxml ver="2.1">
+ <packet name="Halt" code="0"/>
+ <packet name="NOP" code="1"/>
+ <packet name="Flush" code="4" cl="B"/>
+ <packet name="Flush All State" code="5" cl="B"/>
+ <packet name="Start Tile Binning" code="6" cl="B"/>
+ <packet name="Increment Semaphore" code="7"/>
+ <packet name="Wait on Semaphore" code="8"/>
+ <packet name="Branch" code="16">
+ <field name="Address" size="32" start="0" type="address"/>
+ </packet>
+ <packet name="Branch to sub-list" code="17">
+ <field name="Address" size="32" start="0" type="address"/>
+ </packet>
+ <packet name="Return from sub-list" code="18"/>
+
+ <packet name="Store Multi-sample Resolved Tile Color Buffer" code="24" cl="R"/>
+ <packet name="Store Multi-sample Resolved Tile Color Buffer and EOF" code="25" cl="R"/>
+
+ <packet name="Store Full Resolution Tile Buffer" cl="R" code="26">
+ <field name="Address" size="32" start="0" type="address"/>
+ <field name="Last Tile" size="1" start="3" type="bool"/>
+ <field name="Disable Clear on Write" size="1" start="2" type="bool"/>
+ <field name="Disable Z/Stencil Buffer write" size="1" start="1" type="bool"/>
+ <field name="Disable Color Buffer write" size="1" start="0" type="bool"/>
+ </packet>
+
+ <packet name="Re-load Full Resolution Tile Buffer" cl="R" code="27">
+ <field name="Address" size="32" start="0" type="address"/>
+ <field name="Disable Z/Stencil Buffer read" size="1" start="1" type="bool"/>
+ <field name="Disable Color Buffer read" size="1" start="0" type="bool"/>
+ </packet>
+
+ <packet name="Indexed Primitive List" code="32">
+ <field name="Maximum Index" size="32" start="72" type="uint"/>
+ <field name="Address of Indices List" size="32" start="40" type="uint"/>
+ <field name="Length" size="32" start="8" type="uint"/>
+ <field name="Index type" size="4" start="4" type="uint">
+ <value name="8-bit" value="0"/>
+ <value name="16-bit" value="1"/>
+ </field>
+ <field name="Primitive mode" size="4" start="0" type="uint">
+ <value name="points" value="0"/>
+ <value name="lines" value="1"/>
+ <value name="line loop" value="2"/>
+ <value name="line strip" value="3"/>
+ <value name="triangles" value="4"/>
+ <value name="triangles strip" value="5"/>
+ <value name="triangles fan" value="6"/>
+ </field>
+ </packet>
+
+ <packet name="Vertex Array Primitives" code="33">
+ <field name="Index of First Vertex" size="32" start="40" type="uint"/>
+ <field name="Length" size="32" start="8" type="uint"/>
+ <field name="Primitive mode" size="4" start="0" type="uint">
+ <value name="points" value="0"/>
+ <value name="lines" value="1"/>
+ <value name="line loop" value="2"/>
+ <value name="line strip" value="3"/>
+ <value name="triangles" value="4"/>
+ <value name="triangles strip" value="5"/>
+ <value name="triangles fan" value="6"/>
+ </field>
+ </packet>
+
+ <packet name="Primitive List Format" cl="R" code="56">
+ <field name="Data Type" size="4" start="4" type="uint">
+ <value name="16-bit index" value="1"/>
+ <value name="32-bit x/y" value="3"/>
+ </field>
+
+ <field name="Primitive Type" size="4" start="0" type="uint">
+ <value name="Points List" value="0"/>
+ <value name="Lines List" value="1"/>
+ <value name="Triangles List" value="2"/>
+ <value name="RHY List" value="3"/>
+ </field>
+ </packet>
+
+ <packet name="GL Shader State" code="64">
+ <!-- The address field will be filled in by kernel validation code. -->
+ <field name="Address" size="28" start="0" type="uint"/>
+ <field name="Extended shader record" size="1" start="3" type="bool"/>
+ <field name="Number of attribute arrays" size="3" start="0" type="uint"/>
+ </packet>
+
+ <packet name="Clear Colors" cl="R" code="114">
+ <field name="Clear Stencil" size="8" start="96" type="uint"/>
+ <field name="Clear VG Mask" size="8" start="88" type="uint"/>
+ <field name="Clear ZS" size="24" start="64" type="uint"/>
+ <field name="Clear Color" size="64" start="0" type="uint"/>
+ </packet>
+
+ <packet name="Configuration Bits" code="96">
+ <field name="Early Z updates enable" size="1" start="17" type="bool"/>
+ <field name="Early Z enable" size="1" start="16" type="bool"/>
+ <field name="Z updates enable" size="1" start="15" type="bool"/>
+ <field name="Depth-Test Function" size="3" start="12" type="uint"/>
+ <!-- add values -->
+ <field name="Coverage Read Mode" size="1" start="11" type="uint"/>
+ <!-- add values -->
+ <field name="Coverage Pipe Select" size="1" start="8" type="bool"/>
+ <field name="Rasteriser Oversample Mode" size="2" start="6" type="bool"/>
+ <!-- add values -->
+ <field name="Coverage Read Type" size="1" start="5" type="uint"/>
+ <!-- add values -->
+ <field name="Antialiased Points and Lines" size="1" start="4" type="bool"/>
+ <field name="Enable Depth Offset" size="1" start="3" type="bool"/>
+ <field name="Clockwise Primitives" size="1" start="2" type="bool"/>
+ <field name="Enable Reverse Facing Primitive" size="1" start="1" type="bool"/>
+ <field name="Enable Forward Facing Primitive" size="1" start="0" type="bool"/>
+ </packet>
+
+ <packet name="Flat Shade Flags" code="97">
+ <field name="Flat-shading Flags" size="32" start="0" type="uint"/>
+ </packet>
+
+ <packet name="Point size" code="98">
+ <field name="Point Size" size="32" start="0" type="float"/>
+ </packet>
+
+ <packet name="Line width" code="99">
+ <field name="Line width" size="32" start="0" type="float"/>
+ </packet>
+
+ <packet name="RHT X boundary" code="100">
+ <field name="RHT primitive X boundary" size="16" start="0" type="int"/>
+ </packet>
+
+ <packet name="Depth Offset" code="101">
+ <!-- these fields are both float-1-8-7 encoded (top 16 bits of a float32) -->
+ <field name="Depth Offset Units" size="16" start="16" type="uint"/>
+ <field name="Depth Offset Factor" size="16" start="0" type="uint"/>
+ </packet>
+
+ <packet name="Clip Window" code="102">
+ <field name="Clip Window Height in pixels" size="16" start="48" type="uint"/>
+ <field name="Clip Window Width in pixels" size="16" start="32" type="uint"/>
+ <field name="Clip Window Bottom Pixel Coordinate" size="16" start="16" type="uint"/>
+ <field name="Clip Window Left Pixel Coordinate" size="16" start="0" type="uint"/>
+ </packet>
+
+ <packet name="Viewport Offset" code="103">
+ <field name="Viewport Centre Y-coordinate" size="16" start="16" type="int"/>
+ <field name="Viewport Centre X-coordinate" size="16" start="0" type="int"/>
+ </packet>
+
+ <packet name="Z min and max clipping planes" code="104">
+ <field name="Maximum Zw" size="32" start="32" type="float"/>
+ <field name="Minimum Zw" size="32" start="0" type="float"/>
+ </packet>
+
+ <packet name="Clipper XY Scaling" code="105" cl="B">
+ <field name="Viewport Half-Height in 1/16th of pixel" size="32" start="32" type="float"/>
+ <field name="Viewport Half-Width in 1/16th of pixel" size="32" start="0" type="float"/>
+ </packet>
+
+ <packet name="Clipper Z Scale and Offset" code="106" cl="B">
+ <field name="Viewport Z Offset (Zc to Zs)" size="32" start="32" type="float"/>
+ <field name="Viewport Z Scale (Zc to Zs)" size="32" start="0" type="float"/>
+ </packet>
+
+ <packet name="Tile Binning Mode Configuration" code="112" cl="B">
+ <field name="Double-buffer in non-ms mode" size="1" start="119" type="bool"/>
+
+ <field name="Tile Allocation Block Size" size="2" start="117" type="uint">
+ <value name="block size 32" value="0"/>
+ <value name="block size 64" value="1"/>
+ <value name="block size 128" value="2"/>
+ <value name="block size 256" value="3"/>
+ </field>
+
+ <field name="Tile Allocation Initial Block Size" size="2" start="115" type="uint">
+ <value name="block size 32" value="0"/>
+ <value name="block size 64" value="1"/>
+ <value name="block size 128" value="2"/>
+ <value name="block size 256" value="3"/>
+ </field>
+
+ <field name="Auto-initialise Tile State Data Array" size="1" start="114" type="bool"/>
+ <field name="Tile Buffer 64-bit Color Depth" size="1" start="113" type="bool"/>
+ <field name="Multisample Mode (4x)" size="1" start="112" type="bool"/>
+
+ <field name="Height (in tiles)" size="8" start="104" type="uint"/>
+ <field name="Width (in tiles)" size="8" start="96" type="uint"/>
+
+ <field name="Tile State Data Array Address" size="32" start="64" type="uint"/>
+ <field name="Tile Allocation memory size" size="32" start="32" type="uint"/>
+ <field name="Tile Allocation memory address" size="32" start="0" type="uint"/>
+
+ </packet>
+
+ <struct name="Shader Record">
+ <field name="Fragment Shader is single threaded" size="1" start="0" type="bool"/>
+ <field name="Point Size included in shaded vertex data" size="1" start="1" type="bool"/>
+ <field name="Enable Clipping" size="1" start="2" type="bool"/>
+
+ <field name="Fragment Shader Number of Uniforms (not used currently)" size="16" start="2b" type="uint"/>
+ <field name="Fragment Shader Number of Varyings" size="8" start="3b" type="uint"/>
+ <field name="Fragment Shader Code Address" size="32" start="4b" type="address"/>
+ <!-- set up by the kernel -->
+ <field name="Fragment Shader Uniforms Address" size="32" start="8b" type="uint"/>
+
+ <field name="Vertex Shader Number of Uniforms (not used currently)" size="16" start="12b" type="uint"/>
+ <field name="Vertex Shader Attribute Array select bits" size="8" start="14b" type="uint"/>
+ <field name="Vertex Shader Total Attributes Size" size="8" start="15b" type="uint"/>
+ <field name="Vertex Shader Code Address" size="32" start="16b" type="address"/>
+ <!-- set up by the kernel -->
+ <field name="Vertex Shader Uniforms Address" size="32" start="16b" type="uint"/>
+
+ <field name="Coordinate Shader Number of Uniforms (not used currently)" size="16" start="24b" type="uint"/>
+ <field name="Coordinate Shader Attribute Array select bits" size="8" start="26b" type="uint"/>
+ <field name="Coordinate Shader Total Attributes Size" size="8" start="27b" type="uint"/>
+ <field name="Coordinate Shader Code Address" size="32" start="28b" type="address"/>
+ <!-- set up by the kernel -->
+ <field name="Coordinate Shader Uniforms Address" size="32" start="32b" type="uint"/>
+ </struct>
+
+</vcxml>