minigbm: align multi-planar formats to 16
libva 1.8.3 makes it a hard requirement that multi-planar surfaces are
vertically aligned to 16. Enforce this rule at allocation time.
BUG=b:65084476
TEST=checked that b:65084476 was not reproducible with this patch and
that all multi-planar surfaces are aligned to 16.
Change-Id: Id31055df81ba43130f3f45282db104753fb6e700
Reviewed-on: https://chromium-review.googlesource.com/642429
Commit-Ready: Alexandre Courbot <acourbot@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
diff --git a/i915.c b/i915.c
index fe162f1..cbd6c6b 100644
--- a/i915.c
+++ b/i915.c
@@ -224,6 +224,12 @@
break;
}
+ /*
+ * For multi-planar formats we must be aligned to 16
+ */
+ if (bo->num_planes > 1)
+ vertical_alignment = MAX(vertical_alignment, 16);
+
*aligned_height = ALIGN(bo->height, vertical_alignment);
if (i915->gen > 3) {
*stride = ALIGN(*stride, horizontal_alignment);