Page MenuHomeFreeBSD

New port: audio/GxSwitchlessWah-lv2: Analog wah emulation with switchless activation
ClosedPublic

Authored by yuri on Dec 5 2017, 10:23 PM.
Tags
None
Referenced Files
F103854468: D13384.diff
Sat, Nov 30, 7:13 AM
Unknown Object (File)
Mon, Nov 25, 7:48 AM
Unknown Object (File)
Sun, Nov 24, 8:57 PM
Unknown Object (File)
Sat, Nov 23, 11:29 PM
Unknown Object (File)
Sat, Nov 23, 6:52 PM
Unknown Object (File)
Sat, Nov 23, 5:10 PM
Unknown Object (File)
Sat, Nov 23, 4:49 PM
Unknown Object (File)
Sat, Nov 23, 4:13 PM
Subscribers

Details

Summary

Analog wah emulation with switchless activation

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 13388
Build 13620: arc lint + arc unit

Event Timeline

Could you fix

===>   Generating temporary packing list
gmake[1]: Entering directory '/wrkdirs/usr/ports/audio/GxSwitchlessWah-lv2/work/GxSwitchlessWah.lv2-7b08691'
cat: /proc/cpuinfo: No such file or directory

otherwise it looks good.

In D13384#279657, @yuri wrote:

Fixed cpuinfo

I think this is missing in the current state of the review :)

Made SIMD support into flavors.

In D13384#280378, @yuri wrote:

Made SIMD support into flavors.

You will not get approval for this. Please remove. Add options, or keep it at the lowest setting for each architecture.

Also, @ are not allowed in package names.

audio/GxSwitchlessWah-lv2/Makefile
23–30

Back to this, it does not make much sense.

All amd64 processors support SSE2 at the minimum. It makes no sense to select VFPV3 on any arch other than armv7...

Sorry about suggesting options, it was a wrong idea too. This should be architecture dependent.

SSE_FLAGS_i386="-msse -mfpmath=sse"
SSE_FLAGS_amd64="-msse2 -mfpmath=sse"
SSE_FLAGS_armv6="-march=armv7 -mfpu=vfpv3"

MAKE_ARGS=  SSE_FLAGS=${SSE_FLAGS_${ARCH}}
yuri marked an inline comment as done.Dec 9 2017, 7:19 PM
yuri added inline comments.
audio/GxSwitchlessWah-lv2/Makefile
23–30

There can be variability in SSE support. On Intel CPUs SSE1, SSE2, SSE3, SSE4.1, SSE4.2. Additionally, AMD has SSE4a.

Ideally, the port can have all these SSE-flavors. I was really expecting that the FLAVORS feature could solve this, but it really didn't.

Now, in this case, IMO options should be defined, but some should be limited by architecture.

yuri marked an inline comment as done.

Fixed at SSE2 since port infrastructure can't really choose SIMD levels for packages appropriately.

yuri marked an inline comment as done.Dec 10 2017, 7:38 PM

@tcberner Can this be committed? :)

audio/GxSwitchlessWah-lv2/Makefile
18

^portlint suggests sorting these

Also if you take a look at
https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-order.html#porting-order-portname
it should appear before the dependency block

audio/GxSwitchlessWah-lv2/Makefile
23–30

What we have to support is oldest possible versions, so if SSE is required, SSE on i386, SSE2 on amd64, and the thing that was there for arm. I doubt using more recent versions will change many things.

26

What's wrong with supporting more i386 architectures, and arm like I showed you to?

yuri marked 3 inline comments as done.Dec 11 2017, 5:36 PM
yuri added inline comments.
audio/GxSwitchlessWah-lv2/Makefile
23–30

I doubt using more recent versions will change many things.

There are projects that heavily depend on SIMD. One such project is ray tracing app http://www.ospray.org. It runs 10 times faster when SSE4 is available. I will commit the port for it.

Another project is devel/libsimdpp. It makes it easy to use SIMD, and will automatically adjust to the current level of SIMD. On SIMD-heavy code you will see dramatic differences in runtimes.

FreeBSD as it is doesn't support SIMD well. Simple SSE option doesn't do. SIMD level is like an extension of ${ARCH}, adding a degree of freedom within an architecture. It's like an extra-flavor: One machine needs devel/my-package@simd4.2, and another - devel/my-package@simd2. Ideally, package manager should install the version that corresponds to the SIMD level.

I will adjust this port as you suggested.

yuri marked an inline comment as done.

.

yuri marked an inline comment as done.Dec 11 2017, 5:52 PM
This revision is now accepted and ready to land.Dec 14 2017, 7:23 PM
This revision was automatically updated to reflect the committed changes.