panfrost: XMLify MSAA writeout mode
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 12 Aug 2020 01:04:01 +0000 (21:04 -0400)
committerTomeu Vizoso <tomeu.vizoso@collabora.com>
Thu, 13 Aug 2020 06:55:17 +0000 (08:55 +0200)
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/6195>

src/panfrost/include/panfrost-job.h
src/panfrost/lib/decode.c
src/panfrost/lib/midgard.xml

index 48379cce9056e1cb34083ddbb75c43888325c966..c4481de51015ed4e9af83f4b0a86ccdb8921133d 100644 (file)
@@ -1391,20 +1391,6 @@ struct mali_single_framebuffer {
 } __attribute__((packed));
 
 
-/* SINGLE to disable multisampling, AVERAGE for
- * EXT_multisampled_render_to_texture operation where multiple tilebuffer
- * samples are implicitly resolved before writeout, MULTIPLE to write multiple
- * samples inline, and LAYERED for ES3-style multisampling with each sample in
- * a different buffer.
- */
-
-enum mali_msaa_mode {
-        MALI_MSAA_SINGLE = 0,
-        MALI_MSAA_AVERAGE = 1,
-        MALI_MSAA_MULTIPLE = 2,
-        MALI_MSAA_LAYERED = 3,
-};
-
 #define MALI_MFBD_FORMAT_SRGB    (1 << 0)
 
 struct mali_rt_format {
@@ -1416,7 +1402,7 @@ struct mali_rt_format {
         unsigned unk3 : 4;
         unsigned unk4 : 1;
         enum mali_block_format block : 2;
-        enum mali_msaa_mode msaa : 2;
+        enum mali_msaa msaa : 2;
         unsigned flags : 2;
 
         unsigned swizzle : 12;
index c47b8f52b6cc5899f5e299ef9107f4f331cea1a2..6538b47f8a3d75d45af535fdbf52b845cb74fec1 100644 (file)
@@ -453,22 +453,6 @@ static char *pandecode_format(enum mali_format format)
 
 #undef DEFINE_CASE
 
-#define DEFINE_CASE(name) case MALI_MSAA_ ## name: return "MALI_MSAA_" #name
-static char *
-pandecode_msaa_mode(enum mali_msaa_mode mode)
-{
-        switch (mode) {
-                DEFINE_CASE(SINGLE);
-                DEFINE_CASE(AVERAGE);
-                DEFINE_CASE(MULTIPLE);
-                DEFINE_CASE(LAYERED);
-        default:
-                unreachable("Impossible");
-                return "";
-        }
-}
-#undef DEFINE_CASE
-
 static char *pandecode_attr_mode_short(enum mali_attr_mode mode)
 {
         switch(mode) {
@@ -1027,7 +1011,7 @@ pandecode_rt_format(struct mali_rt_format format)
         pandecode_log_decoded_flags(mfbd_fmt_flag_info, format.flags);
         pandecode_log_cont(",\n");
 
-        pandecode_prop("msaa = %s", pandecode_msaa_mode(format.msaa));
+        pandecode_prop("msaa = %s", mali_msaa_as_str(format.msaa));
 
         /* In theory, the no_preload bit can be cleared to enable MFBD preload,
          * which is a faster hardware-based alternative to the wallpaper method
index 57de518972a67eb2607eb4551b2b5833836c72af..37aa98987de21f3ca8be413f0020630542427d11 100644 (file)
     <value name="Trilinear" value="3"/>
   </enum>
 
+  <enum name="MSAA">
+    <value name="Single" value="0"/>
+    <!-- N samples, 1 surface, resolved -->
+    <value name="Average" value="1"/>
+    <!-- N samples, 1 surface, unresolved -->
+    <value name="Multiple" value="2"/>
+    <!-- N samples, N surfaces --> 
+    <value name="Layered" value="3"/>
+  </enum>
+
   <enum name="Stencil Op">
     <value name="Keep" value="0"/>
     <value name="Replace" value="1"/>