Linux/Why Wine

From VFXPedia

Jump to: navigation, search

Quick Points about Fusion Linux:

  • True, native, highly optimized x86 code.
  • Is not running under an emulator at all.
  • Wine is used for the GUI and Interface services.
  • Has the largest number of 3rd party plugins.
  • Completely cross platform render compatible.
  • Plugins do not have to be redone for different Linux distributions.
  • Exactly the same rendering result, platform to platform.

Fusion Linux is not running under emulation at all. All Operating systems have a base core and then layers to supply other services; XWindows, OpenGL, audio layers and desktops are all layers on top of Linux or any OS, as well as third party libraries like Tiff, Jpeg etc. Whether these are in the OS core or DLLs or layers, they all layers of functions and code.

The processor wars are over. Today it is all x86 architecture irrespective of OS, OSX, Linux, Windows. We developed a system to be cross platform yet easy to maintain with a minimum OS specific code. Fusion is a very large complex and deep application with a highly multithreaded core, the compiler and optimization methods that eyeon use include hand coded SSE2 assembler. Performance is paramount and our highly optimized native X86 SSE2 and processing cores are in machine code and will execute on any x86 processor irrespective of OS and all system calls are done in cross platform standard ANSI C/C++ and again are not being emulated. We also use OpenGL and GPU acceleration; these again are independent APIs and native to the OS, and have nothing to do with the Wine API. We use exactly the same compiler technology for all our Fusion builds and the rendered results will exactly the same from OS to OS and distribution to distribution.

We have developed our own version of Wine (Wine is not an emulator, look it up) to supply a compatibility layer for some functions. The main function that the Wine provides is for the interface and GUI and has no impact on the native x86 core processing code. Also this allows us to bring all our 3rd party developed plugins immediately to Linux, without delay. Other developers use interface developer kits and cross platform frame works like TrollTech QT. All of these cross platform GUI frameworks have libraries of functions, they will get compiled into your application, but note that these are still a layer of code to supply functionality. We choose to not compile in these functions but to keep them separate for better and easier development of the Fusion product. There is no difference between our approach and the third party library approach.

We have made a system that is cross platform and can work in a mixed environment of different operating systems as well as bringing a huge range of resources to the Linux platform. Some customers are using Windows workstations and Linux Render nodes. These will render the same results and also use the exact same plugins. As Linux distribution cores change and break compatibility, many applications and plugins have to be reworked and recompiled for that distribution. For plugins and Fusion’s image processing core under Linux, this does not happen at all since we supply the services to make them work. Again, this makes our system much more maintainable and upgradeable under different distributions.

Personal tools