panfrost/genxml: Decode Bifrost index-driven vertex jobs

Bifrost has a new type of job called 'index-driven vertex', which takes
in two shaders. The primary shader, called for all values, performs
position shading to a cacheline-aligned attribute buffer. The secondary
shader, called for values still live after culling, performs varying
shading.

It is the responsiblilty of the implementation to ensure that vertices
from different instances do not share a cacheline.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11413>
This commit is contained in:
Daniel Stone 2021-06-16 10:10:48 +01:00 committed by Alyssa Rosenzweig
parent 60568d5dce
commit f505d6f5de

View file

@ -48,6 +48,7 @@
<value name="Tiler" value="7"/>
<value name="Fused" value="8"/>
<value name="Fragment" value="9"/>
<value name="Indexed Vertex" value="10"/>
</enum>
<enum name="Draw Mode">
@ -1636,4 +1637,17 @@
<section name="Draw" offset="128" type="Draw"/>
<section name="Draw Padding" offset="248" type="Draw Padding"/>
</aggregate>
<aggregate name="Bifrost Indexed Vertex Job" size="384" align="64">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Primitive" offset="40" type="Primitive"/>
<section name="Primitive Size" offset="64" type="Primitive Size"/>
<section name="Tiler" offset="72" type="Bifrost Tiler Pointer"/>
<section name="Padding" offset="80" type="Bifrost Tiler Job Padding"/>
<section name="Fragment Draw" offset="128" type="Draw"/>
<section name="Fragment Draw Padding" offset="248" type="Draw Padding"/>
<section name="Vertex Draw" offset="256" type="Draw"/>
<section name="Vertex Draw Padding" offset="376" type="Draw Padding"/>
</aggregate>
</panxml>