On Fri, 02 May 2025 17:06:27 +0200 Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Sat, Apr 26, 2025 at 07:41:14PM +0200, Niklas Haas wrote: > > From: Niklas Haas <g...@haasn.dev> > > > > This will serve as a reference for the SIMD backends to come. That said, > > with auto-vectorization enabled, the performance of this is not atrocious, > > and > > can often beat even the old SIMD. > > > > In theory, we can dramatically speed it up by using GCC vectors instead of > > arrays, but the performance gains from this are too dependent on exact GCC > > versions and flags, so it practice it's not a substitute for a SIMD > > implementation. > > --- > > libswscale/Makefile | 6 + > > libswscale/ops.c | 3 + > > libswscale/ops.h | 2 - > > libswscale/ops_backend.c | 101 ++++++ > > libswscale/ops_backend.h | 181 +++++++++++ > > libswscale/ops_tmpl_common.c | 176 ++++++++++ > > libswscale/ops_tmpl_float.c | 255 +++++++++++++++ > > libswscale/ops_tmpl_int.c | 609 +++++++++++++++++++++++++++++++++++ > > 8 files changed, 1331 insertions(+), 2 deletions(-) > > create mode 100644 libswscale/ops_backend.c > > create mode 100644 libswscale/ops_backend.h > > create mode 100644 libswscale/ops_tmpl_common.c > > create mode 100644 libswscale/ops_tmpl_float.c > > create mode 100644 libswscale/ops_tmpl_int.c > > arm breaker > > CC libswscale/ops_backend.o > In file included from src/libswscale/ops_backend.c:21:0: > src/libswscale/ops_tmpl_int.c:492:12: error: initializer element is not > constant > fn(op_read_planar1), > ^ > src/libswscale/ops_backend.h:78:27: note: in definition of macro ‘bitfn2’ > #define bitfn2(name, ext) name ## _ ## ext > ^~~~ > src/libswscale/ops_backend.h:82:19: note: in expansion of macro ‘bitfn’ > #define fn(name) bitfn(name, FN_SUFFIX) > ^~~~~ > src/libswscale/ops_tmpl_int.c:492:9: note: in expansion of macro ‘fn’ > fn(op_read_planar1), > ^~ > src/libswscale/ops_tmpl_int.c:492:12: note: (near initialization for > ‘op_table_int_u8.entries[0]’) > fn(op_read_planar1), > ^ > src/libswscale/ops_backend.h:78:27: note: in definition of macro ‘bitfn2’ > #define bitfn2(name, ext) name ## _ ## ext > ^~~~ > src/libswscale/ops_backend.h:82:19: note: in expansion of macro ‘bitfn’ > #define fn(name) bitfn(name, FN_SUFFIX) > ^~~~~ > src/libswscale/ops_tmpl_int.c:492:9: note: in expansion of macro ‘fn’ > fn(op_read_planar1), > ^~ > src/libswscale/ops_tmpl_int.c:493:12: error: initializer element is not > constant > fn(op_read_planar2), > ^ > src/libswscale/ops_backend.h:78:27: note: in definition of macro ‘bitfn2’ > #define bitfn2(name, ext) name ## _ ## ext > ^~~~ > src/libswscale/ops_backend.h:82:19: note: in expansion of macro ‘bitfn’ > #define fn(name) bitfn(name, FN_SUFFIX) > ^~~~~ > src/libswscale/ops_tmpl_int.c:493:9: note: in expansion of macro ‘fn’ > fn(op_read_planar2), > ^~ > src/libswscale/ops_tmpl_int.c:493:12: note: (near initialization for > ‘op_table_int_u8.entries[1]’)
Fixed (hopefully) by making the op table entries indirect. > > ................ > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > In a rich man's house there is no place to spit but his face. > -- Diogenes of Sinope > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".