summaryrefslogtreecommitdiffstats
path: root/src/broadcom/cle/v3d_packet_v21.xml
blob: 7a957e640725448e6882a2de3e90fb07cfe8c615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<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>

  <struct name="Attribute Record">
    <field name="Address" size="32" start="0b" type="address"/>
    <field name="Number of Bytes minus 1" size="8" start="4b" type="uint"/>
    <field name="Stride" size="8" start="5b" type="uint"/>
    <field name="Vertex Shader VPM offset" size="8" start="6b" type="uint"/>
    <field name="Coordinate Shader VPM offset" size="8" start="7b" type="uint"/>
  </struct>

</vcxml>