fraunhoferhhi / vvdec

VVdeC, the Fraunhofer Versatile Video Decoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
462 stars 95 forks source link

Add riscv64 to supported architectures #77

Closed pkubaj closed 2 years ago

pkubaj commented 2 years ago

Tested to work fine on FreeBSD. I'm not sending a PR, because FreeBSD is not in the table, but I suspect it should work fine on Linux as well.

K-os commented 2 years ago

Same as with PowerPC. See #76

adamjw24 commented 2 years ago

Same as my comment on #76. What are some current riscv64 CPUs and systems? Are those powerful enough to run at least like 1080p60 VVC decoding?

pkubaj commented 2 years ago

Currently the best publicly available board is https://www.sifive.com/boards/hifive-unmatched. I'm not sure about its performance, since I don't have one. I have the BeagleV developer beta (https://beagleboard.org/static/beagleV/beagleV.html). It's much slower and has some issues with display, so I can't really test vvdec. I think it MAY not be fast enough. But RISC-V is a pretty young architecture and it's rapidly developed, so I think it would be nice to have as much supported as possible.

adamjw24 commented 2 years ago

Added to Wiki: https://github.com/fraunhoferhhi/vvdec/wiki

We'll not have official support, but will allow the simd-e to be used with whatever is detected. Will be fixed in a PR soon.

pkubaj commented 2 years ago

Per, https://github.com/simd-everywhere/simde/blob/master/simde/simde-arch.h, it looks like there are a lot more supported architectures than README states. Just to be clear, I'm not asking you to enable vvdec for all of them, I'm interested in just modern, still developed architectures :)

adamjw24 commented 2 years ago

I get it. Its just about we can only support archs we can test with. You're free to do your own tests and use the project in whatever way you want.

K-os commented 2 years ago

@pkubaj can you please give #81 a try on RiscV64 also?

Compilation with GCC failed on Linux because of linker errors (undefined reference to __atomic_compare_exchange_1 and __atomic_exchange_1) even with -latomic. But that seems to be a GCC problem, since you were successful with clang.

pkubaj commented 2 years ago

OK on riscv64.