http://bugs.winehq.org/show_bug.cgi?id=29168
Alex alexzk@mail.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexzk@mail.ru
--- Comment #239 from Alex alexzk@mail.ru 2013-03-15 14:26:54 CDT --- Game still suffers from pereodic lags.
If you will open CPU graph over time on 2nd monitor, you will see that there are "downpeaks" when lagg happens. CPU usage drops from 80% on my machine to 20% and inside game fps drops from 40 to 0-5. Looks like game takes sleep() somewhere atm.
So I decided to try 1st patch from here (proof of conecept). It gave me downpeaks like each couple seconds. Dedicated thread (last patch) gives downpeaks each 45 seconds about.
So I combined them: dedicated thread + critical section: thread.c: static void update_shared_data_time(void) ->>> void update_shared_data_time(void)
and
critsection.c
extern struct _KUSER_SHARED_DATA *user_shared_data; extern void update_shared_data_time(void); ....... NTSTATUS WINAPI RtlEnterCriticalSection( RTL_CRITICAL_SECTION *crit ) { update_shared_data_time();
That looks much better. I don't see downpeaks last 30 minutes at all. May be somebody smarter can improve idea and put more calls to function somewhere else ? Also it works with 1.5.20 couldn't run with 1.5.25.