meta->midgard1.uniform_count = MIN2(ss->uniform_count,
ss->uniform_cutoff);
meta->midgard1.work_count = ss->work_reg_count;
- meta->midgard1.flags_hi = 0x8; /* XXX */
+
+ /* TODO: This is not conformant on ES3 */
+ meta->midgard1.flags_hi = MALI_SUPPRESS_INF_NAN;
+
meta->midgard1.flags_lo = 0x220;
meta->midgard1.uniform_buffer_count = panfrost_ubo_count(ctx, st);
}
/* Should be set when the fragment shader updates the stencil value. */
#define MALI_WRITES_S (1 << 2)
+/* Mode to suppress generation of Infinity and NaN values by clamping inf
+ * (-inf) to MAX_FLOAT (-MIN_FLOAT) and flushing NaN to 0.0
+ *
+ * Compare suppress_inf/suppress_nan flags on the Bifrost clause header for the
+ * same functionality.
+ *
+ * This is not conformant on GLES3 or OpenCL, but is optional on GLES2, where
+ * it works around app bugs (e.g. in glmark2-es2 -bterrain with FP16).
+ */
+#define MALI_SUPPRESS_INF_NAN (1 << 3)
+
/* The raw Midgard blend payload can either be an equation or a shader
* address, depending on the context */