aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-08-20 11:11:46 -0700
committerAlyssa Rosenzweig <[email protected]>2019-08-21 08:40:53 -0700
commite49204c878eaf47b40624df9f01d7795575115a3 (patch)
tree72b4bf938389fb4cdcbdab57b9953616daa9fc8e /src/panfrost
parentc9b623355822129a42c4a64b3310c246bf359721 (diff)
pan/decode: Check for MFBD preload chicken bit
If this bit is clear, MFBD preload will be enabled, and you.. don't want that. (At least, when the bit is clear, the old contents of the framebuffer will be preserved. I'm assuming this is what "MFBD preload" refers to in kbase.) Validate that this bit is always set. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/pandecode/decode.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c
index 9c29d870332..29bf2c2dc3a 100644
--- a/src/panfrost/pandecode/decode.c
+++ b/src/panfrost/pandecode/decode.c
@@ -779,7 +779,16 @@ pandecode_rt_format(struct mali_rt_format format)
pandecode_swizzle(format.swizzle);
- pandecode_prop("no_preload = 0x%" PRIx32, format.no_preload);
+ /* In theory, the no_preload bit can be cleared to enable MFBD preload,
+ * which is a faster hardware-based alternative to the wallpaper method
+ * to preserve framebuffer contents across frames. In practice, MFBD
+ * preload is buggy on Midgard, and so this is a chicken bit. If this
+ * bit isn't set, most likely something broke unrelated to preload */
+
+ if (!format.no_preload) {
+ pandecode_msg("XXX: buggy MFBD preload enabled - chicken bit should be clear\n");
+ pandecode_prop("no_preload = 0x%" PRIx32, format.no_preload);
+ }
if (format.zero)
pandecode_prop("zero = 0x%" PRIx32, format.zero);