[LAD] Faster context switch

Michael Ost most at museresearch.com
Wed Nov 10 18:51:47 UTC 2010


Paul Davis wrote:
> 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.

So, it becomes a winelib app then. Thanks for the clarification.

- Michael Ost



More information about the Linux-audio-dev mailing list