panfrost: XMLify the rest of shader_meta

This contains a bit of everything, so just XML for this commit. The rest
of the series will be slowly moving over to this representation.

The one noteworthy addition is the rename of "No MSAA" to
"Single-sampled lines". This came about due to a buggy branch that
forgot to set this bit. Ths worked, with the caveat of the following
tests failing with a single-sampled framebuffer:

   dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
   dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
   dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
   dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
   dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
   dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
   dEQP-GLES2.functional.rasterization.primitives.line_loop
   dEQP-GLES2.functional.rasterization.primitives.line_loop_wide
   dEQP-GLES2.functional.rasterization.primitives.line_strip
   dEQP-GLES2.functional.rasterization.primitives.line_strip_wide
   dEQP-GLES2.functional.rasterization.primitives.lines
   dEQP-GLES2.functional.rasterization.primitives.lines_wide

That is, this bit controls the behaviour of line rasterization with
multisampling. This is required to implement the divergent behaviours
described in the OpenGL ES 3.2 specification sections 13.6.1 ("Basic
Line Segment Rasterization") and 13.6.4 ("Line Multisample
Rasterization"), where setting this bit corresponds to the former
(single-sampled) behaviour.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6440>
This commit is contained in:
Alyssa Rosenzweig 2020-08-21 15:54:10 -04:00 committed by Tomeu Vizoso
parent 80f1d611c5
commit 754d543829
1 changed files with 49 additions and 0 deletions

View File

@ -403,6 +403,40 @@
<field name="Varying count" size="16" start="3:16" type="uint"/>
</struct>
<struct name="Multisample, Misc" size="1">
<field name="Sample mask" size="16" start="0" type="uint"/>
<field name="Multisample enable" size="1" start="16" type="bool"/>
<!-- TODO 17 -->
<field name="Evaluate per-sample" size="1" start="18" type="bool"/>
<field name="Unknown 1" size="1" start="19" type="bool"/>
<field name="Unknown 2" size="1" start="20" type="bool"/>
<field name="SFBD Load destination" size="1" start="21" type="bool"/>
<field name="SFBD Blend shader" size="1" start="22" type="bool"/>
<!-- TODO 23 -->
<field name="Depth function" size="3" start="24" type="Func"/>
<field name="Depth write mask" size="1" start="27" type="bool"/>
<field name="Near discard" size="1" start="28" type="bool"/>
<field name="Far discard" size="1" start="29" type="bool"/>
<!-- TODO: 30-31 -->
</struct>
<struct name="Stencil Mask, Misc" size="1">
<field name="Stencil mask front" size="8" start="0" type="uint"/>
<field name="Stencil mask back" size="8" start="8" type="uint"/>
<field name="Stencil enable" size="1" start="16" type="bool"/>
<field name="Alpha-to-coverage" size="1" start="17" type="bool"/>
<!-- TODO 18-19 -->
<field name="SFBD Write enable" size="1" start="20" type="bool"/>
<field name="Unknown 1" size="3" start="21" type="uint"/>
<field name="SFBD sRGB" size="1" start="24" type="bool"/>
<field name="SFBD Dither disable" size="1" start="25" type="bool"/>
<field name="Unknown 2" size="1" start="26" type="bool"/>
<field name="Depth Range 1" size="1" start="28" type="bool"/>
<field name="Depth Range 2" size="1" start="29" type="bool"/>
<field name="Single-sampled lines" size="1" start="30" type="bool"/>
<!-- TODO: 31 -->
</struct>
<struct name="Stencil">
<field name="Reference Value" size="8" start="0" type="uint"/>
<field name="Mask" size="8" start="8" type="uint" default="0xFF"/>
@ -412,6 +446,21 @@
<field name="Depth Pass" size="3" start="25" type="Stencil Op"/>
</struct>
<struct name="State" with_opaque="true">
<field name="Shader" size="128" start="0:0" type="Shader"/>
<field name="Properties" size="32" start="4:0" type="uint"/>
<field name="Depth units" size="32" start="5:0" type="float"/>
<field name="Depth factor" size="32" start="6:0" type="float"/>
<!-- TODO: word 7 -->
<field name="Multisample, Misc" size="32" start="8:0" type="Multisample, Misc"/>
<field name="Stencil Mask, Misc" size="32" start="9:0" type="Stencil Mask, Misc"/>
<field name="Stencil front" size="32" start="10:0" type="Stencil"/>
<field name="Stencil back" size="32" start="11:0" type="Stencil"/>
<field name="Preload" size="32" start="12:0" type="Preload"/>
<!--- TODO: word 13 -->
<field name="SFBD Blend" size="64" start="14:0" type="uint"/>
</struct>
<struct name="Uniform Buffer">
<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"/>