chourmovs wrote: > > Fazer wrote: > > very low performance in comparison to running on the same computer on Windows. > > > > Ulberon wrote: > > binding the process (game) to a single core, if you are in a multi-core system > > > you have your answer > > More than linux's xorg and wine's directx limitation, wine is suffering of is lack of multithreading implementation > recent game used lot of multithreading, hyperthreading and other cpu functionality. That's not accurate. Wine supports multithreading just fine. Consider this example: Code: #include <windows.h> #include <stdio.h> #include <assert.h> DWORD WINAPI MyThreadFunction( LPVOID lpParam ) { printf("Thread %d going into infinite loop.\n",(int)lpParam); while(1); return 0; } int main(int argc, char *argv[]) { int i; DWORD dwThreadIdArray[4]; HANDLE th; for(i = 0;i < 4;i++) { th = CreateThread( NULL, // default security attributes 0, // use default stack size MyThreadFunction, // thread function name (LPVOID)i, // argument to thread function 0, // use default creation flags &dwThreadIdArray[i]); // returns the thread identifier assert(th); } puts("Sleeping for 15 seconds\n"); Sleep(15000); return 0; } > > jeffz@genera:~$ i586-mingw32msvc-gcc thread.c -o thread.exe > jeffz@genera:~$ time ~/git/wine/wine thread.exe > Thread 1 going into infinite loop. > Thread 0 going into infinite loop. > Sleeping for 15 seconds > > Thread 3 going into infinite loop. > Thread 2 going into infinite loop. > > real 0m15.104s > user 0m59.512s > sys 0m0.044s > I have 4 cores and you can see that 59.5 seconds of user time have elapsed in 15 seconds of wall time. All cores were kept busy doing work. If that's not what you meant, please explain.