} __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 {
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;
#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) {
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
<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"/>