How to reduce "warm-up lag" to minimmum?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
User avatar
salemus
Level 2
Level 2
Posts: 16
Joined: Thu Oct 01, 2009 11:40 am

How to reduce "warm-up lag" to minimmum?

Post by salemus »

Hello there

I've been struggling with something i called "warm-up lag" for many years now. It is very strange kind of lag, every time something "new" appears in game it lags. Let's say I play Diablo III, first time attack - lag, every next time - totally smooth, first time cast some spell - lag, every next time - totally smooth. Although it is not that big of a pain in the ass it still is very annoying (especially in multiplayer when you jump in in the middle of the game and you get ultra-lag for few seconds).

I've been trying a lot of things like setting GLSL to disabled which actually helps a lot but it still is not perfect AND you disable GLSL causing some games to have graphical glitches (which in most cases are even more annoying then "warm-up" lag).

If anyone knows or even has a little clue how to fix this please let me know.
oiaohm
Level 8
Level 8
Posts: 1020
Joined: Fri Feb 29, 2008 2:54 am

Re: How to reduce "warm-up lag" to minimmum?

Post by oiaohm »

salemus you are calling it the wrong thing. But I can understand why.
If you have Nvidia use __GL_THREADED_OPTIMIZATIONS

Graphical effects required complier to convert generic into usable. http://wiki.winehq.org/DirectX-Shaders

If game supports opengl use opengl. Why it changes something key. Direct X shaders in wine get translated to GLSL then GLSL by video card drivers is turned into what the video card knows. Good thing this caches so complier hit is only once. This is what you are calling warm up lag. Its shader complier lag.

Some games do all there shader builds at starts of levels so the lag is not a issue. Other games like Diablo III do it on demand and except the complier to be fast. Wine still has slow points.

Disabling GLSL throws you back to software implementation of shaders that 1 is is bugger 2 refuses to do some effects at all. So not all are exactly graphical glitches.
User avatar
salemus
Level 2
Level 2
Posts: 16
Joined: Thu Oct 01, 2009 11:40 am

Re: How to reduce "warm-up lag" to minimmum?

Post by salemus »

Thank you for explaining it so well, I heard it had something to do with shaders but didn't know what it is exactly so I came up with my own name for this problem :P

I actually happen to have nvidia card and I found this command:

Code: Select all

LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1
Is it the thing you were talking about? And if yes then how to use it? Is it one-time command or do I have to use it every time I start a game?

Thanks in advance :)

[EDIT]

OK i did a little research and I know how to use it :)

If anyone is interested :

Let's say your games exe is game .exe. The only thing you have to do is to place threaded optimization command before it:

Code: Select all

LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 wine game.exe 
Thank you very much for your help, although I didn't try it yet posts I found report it works very well.
oiaohm
Level 8
Level 8
Posts: 1020
Joined: Fri Feb 29, 2008 2:54 am

Re: How to reduce "warm-up lag" to minimmum?

Post by oiaohm »

salemus the LD_PRELOAD="libpthread.so.0 libGL.so.1" is only for older versions of Nvidia drivers. Newer versions don't require this any more.

__GL_THREADED_OPTIMIZATIONS=1 wine game.exe
So yes a little shorter version. Yes that is all.
oiaohm
Level 8
Level 8
Posts: 1020
Joined: Fri Feb 29, 2008 2:54 am

Re: How to reduce "warm-up lag" to minimmum?

Post by oiaohm »

salemus __GL_THREADED_OPTIMIZATIONS=1 wine game.exe is every run of the program.

Why some programs don't work correctly due to defects in drivers and other parts that have not been fixed yet with threading the drivers. One day nvidia drivers should not require the flag and threading be default.

Sorry I missed answering 1 of your questions in the first response.
Locked