[vlc-devel] [PATCH v3] picture: align pictures on 64 bytes

Steve Lhomme robux4 at ycbcr.xyz
Mon Nov 12 09:39:09 CET 2018


Code relying on AVX-2 (like dav1d) cannot work without an alignment of 32 bytes
at least. Even avcodec has a requirement of 64 (likely to get at least 32 on all
planes). So it's probably time to upgrade.

picture_Setup ensures a horizontal alignment to 32 bytes and a vertical to 16
bytes. So for all buffers allocated by the core, we have a size multiple of 512
bytes.
---
 src/misc/picture.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/misc/picture.c b/src/misc/picture.c
index b373ebd21f..90c6bd7c8d 100644
--- a/src/misc/picture.c
+++ b/src/misc/picture.c
@@ -73,16 +73,16 @@ static void picture_Destroy(picture_t *pic)
 
 VLC_WEAK void *picture_Allocate(int *restrict fdp, size_t size)
 {
-    assert((size % 16) == 0);
+    assert((size % 64) == 0);
     *fdp = -1;
-    return aligned_alloc(16, size);
+    return aligned_alloc(64, size);
 }
 
 VLC_WEAK void picture_Deallocate(int fd, void *base, size_t size)
 {
     assert(fd == -1);
     aligned_free(base);
-    assert((size % 16) == 0);
+    assert((size % 64) == 0);
 }
 
 /*****************************************************************************
-- 
2.17.1



More information about the vlc-devel mailing list