ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
642 stars 74 forks source link

TF2 on Linux: Latency problems #176

Closed Bash-Tsk closed 7 years ago

Bash-Tsk commented 11 years ago

See attached picture with Latency table. Latency_Table My system: MB: ASUS M4A87TD Processor: Athlon II X3 455 3300MHz Video: Radeon 5570 1GB 4GB of RAM HDD: WDC WD1001FALS-00J7B1 (ext4)

konsole output data: a) TF2 launch:

Generating new string page texture 149: 256x256, total string texture memory is 2,67 MB
Game update: AppID 440 "Team Fortress 2", ProcID 2589, IP 0.0.0.0:0

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.
saving roaming config store to 'sharedconfig.vdf'
roaming config store 2 saved successfully
SDL video target is 'x11'
SDL video target is 'x11'
This system supports the OpenGL extension GL_EXT_framebuffer_object.
This system supports the OpenGL extension GL_EXT_framebuffer_blit.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.
This system DOES NOT support the OpenGL extension GL_APPLE_fence.
This system DOES NOT support the OpenGL extension GL_NV_fence.
This system supports the OpenGL extension GL_ARB_sync.
This system supports the OpenGL extension GL_EXT_draw_buffers2.
This system supports the OpenGL extension GL_EXT_bindable_uniform.
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.
This system supports the OpenGL extension GL_ARB_map_buffer_range.
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.
This system supports the OpenGL extension GL_ARB_occlusion_query.
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.
This system supports the OpenGL extension GL_ARB_framebuffer_object.
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.
This system DOES NOT support the OpenGL extension GL_ARB_debug_output.
This system supports the OpenGL extension GL_EXT_direct_state_access.
This system DOES NOT support the OpenGL extension GL_NV_bindless_texture.
This system supports the OpenGL extension GL_AMD_pinned_memory.
This system DOES NOT support the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.
This system DOES NOT support the OpenGL extension GL_NVX_gpu_memory_info.
This system supports the OpenGL extension GL_ATI_meminfo.
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system DOES NOT support the OpenGL extension GLX_EXT_swap_control_tear.
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_EXT_texture_sRGB_decode: AVAILABLE
Installing breakpad exception handler for appid(gameoverlayui)/version(20130223124517_client)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0_client)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0_client)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0_client)
[0224/145536:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation
Using breakpad crash handler
Setting breakpad minidump AppID = 440
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198000083155 [API loaded yes]
Steam_SetMinidumpSteamID:  Setting Steam ID:  76561198000083155
Did not detect any valid joysticks.
GL_NVX_gpu_memory_info: UNAVAILABLE
GL_ATI_meminfo: AVAILABLE
GL_ATI_meminfo: GL_TEXTURE_FREE_MEMORY_ATI: Total Free: 903925, Largest Avail: 693568, Total Aux: 1696909, Largest Aux Avail: 2200
GL_MAX_SAMPLES_EXT: 8
[0224/145538:ERROR:resource_bundle.cc(411)] Failed to load /home/bash/.local/share/Steam/SteamApps/_masher_/Team Fortress 2/cef_gtk.pak
Some features may not be available.
[0224/145538:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation
CShaderDeviceMgrBase::GetRecommendedConfigurationInfo: CPU speed: 3300 MHz, Processor: AuthenticAMD
GlobalMemoryStatus: 4229955584
CShaderDeviceMgrBase::GetRecommendedConfigurationInfo: CPU speed: 3300 MHz, Processor: AuthenticAMD
GlobalMemoryStatus: 4229955584
IDirect3DDevice9::Create: BackBufWidth: 1680, BackBufHeight: 1050, D3DFMT: 3, BackBufCount: 1, MultisampleType: 0, MultisampleQuality: 0
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
#LL (30 sec)
Loaded program cache file "glbaseshaders.cfg", total keyvalues: 266, total successfully linked: 266
ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
#LL (1 min 20 sec)
Loaded program cache file "glshaders.cfg", total keyvalues: 1169, total successfully linked: 1169
Precache: Took 114095 ms, Vertex 1022, Pixel 2731
Game.so loaded for "Team Fortress"
#LL (30 sec) - After that the Main menu is loaded

b) TF2 Exit:

Unable to remove /home/bash/.local/share/Steam/SteamApps/_masher_/Team Fortress 2/tf/textwindow_temp.html!
#LL (21 sec)
Game removed: AppID 440 "Team Fortress 2", ProcID 2595 
saving roaming config store to 'sharedconfig.vdf'
roaming config store 2 saved successfully

Remarks: 1) #LL between lines means Long Latency. 2) The following lines do not affect the Latencies:

ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred

Additional konsole output data: c) Steam launch:

bash@Home-PC:~$ export SDL_AUDIODRIVER=alsa; /usr/bin/steam %U
Running Steam on ubuntu 12.10 32-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
[2013-02-24 14:53:05] Проверка установки...
unlinked 0 orphaned pipes
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
[0224/145308:WARNING:proxy_service.cc(646)] PAC support disabled because there is no system implementation
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
PulseAudio connect failed (used only for Mic Volume Control) with error: Нет доступа
Process 2413 created /bash-ValveIPCSharedObjects3
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
Generating new string page texture 2: 48x256, total string texture memory is 49,15 KB
Generating new string page texture 3: 384x256, total string texture memory is 442,37 KB
Installing breakpad exception handler for appid(steam)/version(1361654131_client)

(steam:2413): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «oxygen-gtk»,

(steam:2413): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «oxygen-gtk»,
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
`menu_proxy_module_load': /home/bash/.local/share/Steam/ubuntu12_32/steam: undefined symbol: menu_proxy_module_load

(steam:2413): Gtk-WARNING **: Failed to load type module: (null)

Installing breakpad exception handler for appid(steam)/version(1361654131_client)
Adding license for package 0
Adding license for package 219
Adding license for package 502
Adding license for package 609
Adding license for package 4314
Adding license for package 15740
Adding license for package 18029
Adding license for package 25841
Adding license for package 25842
roaming config store loaded successfully - 2542 bytes.
migrating temporary roaming config store
ExecCommandLine: "/home/bash/.local/share/Steam/ubuntu12_32/steam %U"
Generating new string page texture 76: 1024x256, total string texture memory is 1,49 MB                                            
Generating new string page texture 77: 128x256, total string texture memory is 1,62 MB                                             
Generating new string page texture 78: 256x256, total string texture memory is 262,14 KB
Generating new string page texture 79: 256x256, total string texture memory is 1,88 MB
Generating new string page texture 80: 128x256, total string texture memory is 393,22 KB
Generating new string page texture 81: 32x256, total string texture memory is 1,92 MB
Generating new string page texture 82: 64x256, total string texture memory is 1,98 MB

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.

(steam:2413): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.
Generating new string page texture 94: 24x256, total string texture memory is 2,01 MB
Generating new string page texture 95: 128x256, total string texture memory is 2,14 MB
Generating new string page texture 96: 256x256, total string texture memory is 2,40 MB
Generating new string page texture 104: 8x256, total string texture memory is 2,41 MB
Installing breakpad exception handler for appid(steam)/version(1361654131_client)
System startup time: 24,67 seconds
Running Steam on ubuntu 12.10 32-bit
STEAM_RUNTIME has been set by the user to: /home/bash/.local/share/Steam/ubuntu12_32/steam-runtime
ExecCommandLine: "/home/bash/.steam/root/ubuntu12_32/steam steam://open/driverhelperready"
ExecSteamURL: "steam://open/driverhelperready"

d) Play on server and disconnecting from server:

Game update: AppID 440 "Team Fortress 2", ProcID 2595, IP 82.193.149.53:27017
warning: Unknown nb_ctl request:  4
warning: Unknown nb_ctl request:  4
warning: Unknown nb_ctl request:  4
warning: Unknown nb_ctl request:  4
warning: Unknown nb_ctl request:  4
warning: Unknown nb_ctl request:  4
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0_client)
Installing breakpad exception handler for appid(steam)/version(1361654131_client)

P.S. As I know, TF2 use the same Engine with CS: Source. But only the last one works well, without long latencies.

MrSchism commented 11 years ago

I don't see anything wrong with the table you've presented; that information seems on par with most current, fresh installs of TF2. I managed to cut most loading time in half on my XP install with a clean install, which is why I say "current, fresh."

On mint 14.1 64-bit, I get a similar time. XP is performing about the same. TF2 has always taken a long time to load.

Bash-Tsk commented 11 years ago

It's too long. On Windows 7 everything was much quicker.

MrSchism commented 11 years ago

Can you elaborate? What are your Win7 times?

Also, is your Win7 32- or 64-bit?

Bash-Tsk commented 11 years ago

Windows 7 32 bit

I can't tell exact time. I don't use Windows anymore. But everything occurred in times quicker. The scale of loading didn't stops for a long time at recieving data from the server as it occurs now on Linux. Loading of the menu was in times quicker. The exit and disconnecting from server were almost instantly, with a small latency.

P.S. Sorry for my English. :)

MrSchism commented 11 years ago

Your English is fine. I understand what you're saying.

I just find it hard to imagine times much lower than the ones you've presented; they always took that long for me.

Bash-Tsk commented 11 years ago

As for me, I started feel myself uncomfortable after moving to Linux from Windows. This is the first thing I noticed: too long latencies in TF2. I thought it was in beta of Steam, release will fix it. :)

MrSchism commented 11 years ago

If you were experiencing shorter times before, there's a good chance that in the future, you'll see the same times you had with Win7.

Don't lose hope in Linux. It's a bit of a change, but it's for the better.

Bash-Tsk commented 11 years ago

Do you think that problem is in Linux architecture? What about CS: Source? Why I have no latency problems with it?

MrSchism commented 11 years ago

I don't think it has to do with linux exactly. Not sure entirely what it is. Like I said, I've never seen speeds better than what you showed. However, if it is slower, then odds are that in the future, it will become faster.

Bash-Tsk commented 11 years ago

Then launch TF2 on Windows 7. And you'll see all by your own eyes.

It will become faster? By itself, without the participation of developers?

Can you answer on two following questions: CS:Source Engine = TF2 Engine? What is the difference?

MrSchism commented 11 years ago

No. They're working on making it faster.

They both use the same Source engine (which is why they're both under the same issue tracker).

As for playing it on Windows 7, I have. About the same times as what you posted in your table.

Bash-Tsk commented 11 years ago

Check it on several PC configuration. TF2 on Windows was really faster.

I think, If the latencies were as in the table, Windows users would have already made some noise.

MrSchism commented 11 years ago

They have complained. For a long time. Just google "TF2 load times" and you'll see how long.

I'll admit, your initial load-up times of 2:40 are long. That's one result I can't replicate. The others are all about the same.

Bash-Tsk commented 11 years ago

Ok. Read this then http://forums.steampowered.com/forums/showthread.php?t=2724116 10-15 seconds — normal. 3 minutes is problem.

bdeen-valve commented 11 years ago

@Bash-Tsk Load times should improve dramatically soon: http://www.pcgamer.com/2013/02/20/steampipe-valve

awedsa commented 11 years ago

@Bash-Tsk 2:40 for startup loading??!! My PC is worse than yours and TF2 loads up in less than 15s. And I'm also using Linux (Arch Linux specifically).

Bash-Tsk commented 11 years ago

@bdeen-valve Folder changing can really help?

@awedsa about 3 minutes, 2:40 - after Valve logo. I checked on rpm-based distributives (such as Mandriva) and there was the same problem.

awedsa commented 11 years ago

@Bash-Tsk That's a lot of time, my TF2 takes less than 15s to load after the Valve logo. This also could be a hardware problem. Are you sure that your hardware is OK? maybe you should check the CPU temperature or your hard disk health.

Bash-Tsk commented 11 years ago

@awedsa

Are you sure that your hardware is OK?

Yes, with my hardware all OK. As I said CS: Source have no any latency problems. The same troubles on my notebook ASUS F7Se

jorgenpt commented 11 years ago

@Bash-Tsk, do you see these load time every time, even if you start TF2, join a game, quit, then start TF2 again and join a new game - is the second time as slow?

In your logs there's a line that says:

Precache: Took 114095 ms, Vertex 1022, Pixel 2731

That's related to how long it takes for the video driver to load the shaders we give it, and accounts for most of your startup time (almost 2 minutes). We've seen that AMD's drivers take a bit longer to load these than NVIDIA's drivers, so we're hoping that AMD's drivers will be improved in this regard in the future.

In addition, whenever you update TF2 or change drivers, these times get a lot longer for one startup.

Bash-Tsk commented 11 years ago

@jorgenpt

do you see these load time every time, even if you start TF2, join a game, quit, then start TF2 again and join a new game - is the second time as slow?

Yes, the second and all next times too.

That's related to how long it takes for the video driver to load the shaders we give it, and accounts for most of your startup time (almost 2 minutes). We've seen that AMD's drivers take a bit longer to load these than NVIDIA's drivers, so we're hoping that AMD's drivers will be improved in this regard in the future.

I have tested TF2 on Linux with Nvidia GTX 550 Ti card, but latency was much longer then on Windows 7.

In addition, whenever you update TF2 or change drivers, these times get a lot longer for one startup.

But on Windows 7 I had no this problem.

jorgenpt commented 11 years ago

@Bash-Tsk

I have tested TF2 on Linux with Nvidia GTX 550 Ti card, but latency was much longer then on Windows 7.

How long was the loading time on the GTX 550 Ti? Did it happen each time there too? When you say "much longer than on Windows 7", do you have actual numbers on how long it took on there?

But on Windows 7 I had no this problem.

That is probably because the Windows version uses DirectX, and shader loading & compiling works very differently on DirectX (among other things).

Bash-Tsk commented 11 years ago

@jorgenpt

How long was the loading time on the GTX 550 Ti? Did it happen each time there too? When you say "much longer than on Windows 7", do you have actual numbers on how long it took on there?

Feels like not faster than with the AMD card. I changed the Nvidia card to AMD in hope that something will change. But nothing has changed.

That is probably because the Windows version uses DirectX, and shader loading & compiling works very differently on DirectX (among other things).

CS: Source don't use any shaders? Why this game have no latency problems?

johndrinkwater commented 11 years ago

CS: Source don't use any shaders? Why this game have no latency problems?

It does, it’s just that CS:S was written with DirectX in mind, and OpenGL has different behaviour to it. In a port like this its using DirectX-like call ordering and processes, with a translation layer to opengl.

Bash-Tsk commented 11 years ago

@johndrinkwater I asked about CS:S on Linux, not on Windows. Why CS:S have no any latency problems on linux?

Bash-Tsk commented 11 years ago

After last TF2 updates I have the following latencies. tf2 latencies Also Portal (Beta) and Half-Life 2: Lost Coast (Beta) have no any latency problems.

kisak-valve commented 7 years ago

Closing as general video driver quality from 2013 is no longer relevant. OpenGL drivers that do no support an on-disk shader cache are expected to have this kind of delay while compiling shaders during the startup of TF2.