[LAD] Faster context switch

Paul Davis paul at linuxaudiosystems.com
Wed Nov 10 18:44:24 UTC 2010

On Wed, Nov 10, 2010 at 1:39 PM, Paul Davis <paul at linuxaudiosystems.com> wrote:
> On Wed, Nov 10, 2010 at 1:15 PM, Michael Ost <most at museresearch.com> wrote:
>> I asked Alexandre Julliard, the maintainer of the Wine project, about the
>> libfst approach, and thought this list might be interested in his response.
>> - Michael Ost
>> First message (nov 8) when asked for a read on the libfst design he said,
>> "They have a wineserver and everything, they just bypass the preloader and
>> initial setup. It's a variant of the Mono patch. It should work OK as long
>> as both the host Linux app and the Windows DLL are well-behaved and don't
>> depend on things like memory layout, switching stacks, signals, starting
>> Linux threads, etc."
> The problem is that this is wrong. Alexandre is remembering stuff from
> long, long ago.
> the FST approach now involves absolutely no wine hacks at all.

to expand just a little, the libfst approach involves just a couple of
components, most easily explained by using ardour as an example:

   * use gcc to compile ardour as shared library, not as an
executable. be sure to include an entry point and do not include main
   * use gcc to compile libfst which is the windows/linux hybrid code
that actually supports VST loading, and provides a C-based API for
          an app using it
   * use winegcc compile a tiny stub windows progam that does nothing
but call the entry point defined in step 1
   * link it all together using winegcc

result: a wine app that does all the usual wine stuff at startup, and
then jumps into the entry point of "ardour". when it loads VSTs it
does so via the libfst API.

this is an ordinary wine app, except that 99.9% of its code is
actually a big linux shared library.

jfst (the JACK VST client) is based on the same idea, although its not
quite as blatantly obvious what is going on, since you can't build it
any other way.


More information about the Linux-audio-dev mailing list