panfrost: Specify descriptor alignment requirements

Once we have that in place, we can provide macros to simplify descriptor
allocation.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9827>
This commit is contained in:
Boris Brezillon 2021-03-25 10:16:26 +01:00
parent 65931ffa27
commit 724045aff2

View file

@ -459,14 +459,14 @@
<value name="Mirrored Clamp to Border" value="15"/>
</enum>
<struct name="Attribute">
<struct name="Attribute" align="8">
<field name="Buffer index" size="9" start="0" type="uint"/>
<field name="Offset enable" size="1" start="9" type="bool" default="true"/>
<field name="Format" size="22" start="10" type="Pixel Format"/>
<field name="Offset" size="32" start="32" type="int"/>
</struct>
<struct name="Attribute Buffer">
<struct name="Attribute Buffer" align="32">
<field name="Special" size="8" start="0" type="Attribute Special"/>
<field name="Type" size="6" start="0" type="Attribute Type" default="1D"/>
<field name="Pointer" size="50" start="6" type="address" modifier="shr(6)"/>
@ -590,7 +590,7 @@
<field name="Internal" size="64" start="2:0" type="Bifrost Internal Blend"/>
</struct>
<struct name="Blend" size="4">
<struct name="Blend" size="4" align="16">
<field name="Load Destination" size="1" start="0:0" type="bool" default="false"/>
<field name="Alpha To One" size="1" start="0:8" type="bool"/>
<field name="Enable" size="1" start="0:9" type="bool" default="true"/>
@ -683,7 +683,7 @@
<struct name="Draw Padding" size="2">
</struct>
<struct name="Midgard Sampler">
<struct name="Midgard Sampler" align="32">
<field name="Magnify Nearest" size="1" start="0" type="bool" default="true"/>
<field name="Minify Nearest" size="1" start="1" type="bool" default="true"/>
<field name="Mipmap Mode" size="2" start="3" type="Mipmap Mode" default="Nearest"/>
@ -702,7 +702,7 @@
<field name="Border Color A" size="32" start="7:0" type="uint/float" default="0.0"/>
</struct>
<struct name="Midgard Texture" size="8">
<struct name="Midgard Texture" size="8" align="64">
<field name="Width" size="16" start="0:0" type="uint" modifier="minus(1)"/>
<field name="Height" size="16" start="0:16" type="uint" modifier="minus(1)"/>
<field name="Depth" size="16" start="1:0" type="uint" modifier="minus(1)" default="1"/>
@ -717,7 +717,7 @@
<field name="Swizzle" size="12" start="4:0" type="uint"/>
</struct>
<struct name="Bifrost Sampler" size="8">
<struct name="Bifrost Sampler" size="8" align="32">
<field name="Type" size="4" start="0:0" type="uint" default="1"/>
<field name="Wrap Mode R" size="4" start="0:8" type="Wrap Mode" default="Clamp to Edge"/>
<field name="Wrap Mode T" size="4" start="0:12" type="Wrap Mode" default="Clamp to Edge"/>
@ -746,7 +746,7 @@
<field name="Border Color A" size="32" start="7:0" type="uint/float" default="0.0"/>
</struct>
<struct name="Bifrost Texture" size="8">
<struct name="Bifrost Texture" size="8" align="32">
<field name="Type" size="4" start="0:0" type="uint" default="2"/>
<field name="Dimension" size="2" start="0:4" type="Texture Dimension"/>
<field name="Sample corner position" size="1" start="0:8" type="bool" default="false"/>
@ -908,7 +908,7 @@
<field name="Depth Pass" size="3" start="25" type="Stencil Op"/>
</struct>
<struct name="Renderer State">
<struct name="Renderer State" align="64">
<field name="Shader" size="128" start="0:0" type="Shader"/>
<field name="Properties" size="32" start="4:0" type="Renderer Properties"/>
<field name="Depth units" size="32" start="5:0" type="float"/>
@ -926,12 +926,12 @@
<field name="SFBD Blend Constant" size="32" start="15:0" type="float"/>
</struct>
<struct name="Uniform Buffer">
<struct name="Uniform Buffer" align="8">
<field name="Entries" size="12" start="0" type="uint" modifier="minus(1)"/>
<field name="Pointer" size="52" start="12" type="address" modifier="shr(4)" element="16" count="Entries"/>
</struct>
<struct name="Viewport">
<struct name="Viewport" align="32">
<field name="Minimum X" size="32" start="0:0" default="-INFINITY" type="float"/>
<field name="Minimum Y" size="32" start="1:0" default="-INFINITY" type="float"/>
<field name="Maximum X" size="32" start="2:0" default="+INFINITY" type="float"/>
@ -944,7 +944,7 @@
<field name="Scissor Maximum Y" size="16" start="7:16" type="uint"/>
</struct>
<struct name="Local Storage" size="8">
<struct name="Local Storage" size="8" align="64">
<field name="TLS Size" size="5" start="0:0" type="uint"/>
<field name="TLS Initial Stack Pointer Offset" size="27" start="0:5" type="uint"/>
<field name="WLS Instances" size="5" start="1:0" type="uint" modifier="log2" prefix="MALI_LOCAL_STORAGE">
@ -1160,7 +1160,7 @@
<struct name="Single-Target Framebuffer Padding 2" size="8">
</struct>
<aggregate name="Single-Target Framebuffer" size="320">
<aggregate name="Single-Target Framebuffer" size="320" align="64">
<section name="Local Storage" offset="0" type="Local Storage"/>
<section name="Parameters" offset="32" type="Single-Target Framebuffer Parameters"/>
<section name="Tiler" offset="192" type="Midgard Tiler"/>
@ -1218,7 +1218,7 @@
<field name="Z Clear" size="32" start="5:0" type="float"/>
</struct>
<struct name="ZS CRC Extension">
<struct name="ZS CRC Extension" align="64">
<field name="CRC Base" size="64" start="0:0" type="address"/>
<field name="CRC Row Stride" size="32" start="2:0" type="uint"/>
<field name="ZS Write Format" size="4" start="3:0" type="ZS Format"/>
@ -1353,7 +1353,7 @@
<field name="Color 3" size="32" start="3:0" type="uint"/>
</struct>
<struct name="Render Target">
<struct name="Render Target" align="64">
<field name="Midgard" size="512" start="0:0" type="Render Target Midgard Overlay"/>
<field name="Bifrost v6" size="512" start="0:0" type="Render Target Bifrost v6 Overlay"/>
<field name="Bifrost v7" size="512" start="0:0" type="Render Target Bifrost v7 Overlay"/>
@ -1392,7 +1392,7 @@
<field name="Frame Shader DCDs" size="64" start="6:0" type="address"/>
</struct>
<struct name="Bifrost Tiler Heap">
<struct name="Bifrost Tiler Heap" align="64">
<field name="Size" size="32" start="1:0" type="uint" modifier="align(4096)"/>
<field name="Base" size="64" start="2:0" type="address"/>
<field name="Bottom" size="64" start="4:0" type="address"/>
@ -1429,7 +1429,7 @@
<field name="Word15" size="32" start="15:0" type="uint"/>
</struct>
<struct name="Bifrost Tiler" size="48">
<struct name="Bifrost Tiler" size="48" align="64">
<field name="Polygon List" size="64" start="0:0" type="address"/>
<field name="Hierarchy Mask" size="13" start="2:0" type="uint"/>
<field name="Sample Pattern" size="3" start="2:13" type="Sample Pattern"/>
@ -1448,7 +1448,7 @@
<struct name="Bifrost Framebuffer Padding" size="16">
</struct>
<aggregate name="Multi-Target Framebuffer">
<aggregate name="Multi-Target Framebuffer" align="64">
<section name="Local Storage" offset="0" type="Local Storage"/>
<section name="Bifrost Parameters" offset="0" type="Bifrost Framebuffer Parameters"/>
<section name="Parameters" offset="32" type="Multi-Target Framebuffer Parameters"/>
@ -1487,7 +1487,7 @@
<field name="Tile Enable Map Row Stride" size="8" start="6:0" type="uint"/>
</struct>
<aggregate name="Fragment Job">
<aggregate name="Fragment Job" align="64">
<section name="Header" offset="0" type="Job Header"/>
<section name="Payload" offset="32" type="Fragment Job Payload"/>
</aggregate>
@ -1518,7 +1518,7 @@
</struct>
<!-- Compute job also covers vertex and geometry operations -->
<aggregate name="Compute Job">
<aggregate name="Compute Job" align="64">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Parameters" offset="40" type="Compute Job Parameters"/>
@ -1531,7 +1531,7 @@
<field name="Size Array" size="64" start="0:0" type="uint"/>
</struct>
<aggregate name="Midgard Tiler Job" size="192">
<aggregate name="Midgard Tiler Job" size="192" align="64">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Primitive" offset="40" type="Primitive"/>
@ -1542,7 +1542,7 @@
<struct name="Bifrost Tiler Job Padding" size="12">
</struct>
<aggregate name="Bifrost Tiler Job" size="256">
<aggregate name="Bifrost Tiler Job" size="256" align="64">
<section name="Header" offset="0" type="Job Header"/>
<section name="Invocation" offset="32" type="Invocation"/>
<section name="Primitive" offset="40" type="Primitive"/>