Hi.
With respect to the float** in / out of a m_signal method for an external, does PD make any assurance that the vector length will be dyadic (i.e. a power of two), and also is there any assurance that the memory is aligned in any way (e.g. 128-bit, 64-bit aligned, etc.)?
Thank you. Andy.
--------------------------------------------------------------- Andrew (Andy) W. Schmeder mailto:andy@a2hd.com http://www.a2hd.com
Am 04.02.2004 um 21:14 schrieb Krzysztof Czaja:
Andy Schmeder wrote: ...
does PD make any assurance that the vector length will be dyadic (i.e. a
yes
power of two), and also is there any assurance that the memory is aligned in any way (e.g. 128-bit, 64-bit aligned, etc.)?
Actually, the latter is adjustable with the cvs devel_0_37 branch. The default is 128 bits which makes it possible to use SIMD instructions without further complications.
best greetings, Thomas
<quote who="Thomas Grill">
Actually, the latter is adjustable with the cvs devel_0_37 branch. The default is 128 bits which makes it possible to use SIMD instructions without further complications.
Is there a flag #defined that I can use to detect this?
--------------------------------------------------------------- Andrew (Andy) W. Schmeder mailto:andy@a2hd.com http://www.a2hd.com
<quote who="Thomas Grill"> > Actually, the latter is adjustable with the cvs devel_0_37 branch. > The default is 128 bits which makes it possible to use SIMD > instructions without further complications.
Is there a flag #defined that I can use to detect this?
sorry, i was in a hurry... it's in d_ugen.c, line 38. The definition of VECTORALIGNMENT there (which is used for the signal vector alignment) defaults to the alignment needed by the SIMD implementation, which is 128 bits for i386 and ppc cpus (found in m_simd.h).
best greetings, Thomas