Voxel Turf

Voxel Turf

View Stats:
huw 30 Sep, 2017 @ 10:50am
Linux - something is seriously wrong with performance with shaders
Specs:

Opensuse Tumbleweed 64-bit
AMD quad CPU 4.2GHz
8GB RAM
Radeon R7 370
Mesa 17.2.1

Following the discussion on the latest patch notes, I upgraded to a newer version of Mesa. I have also selected the "bare minimum" graphics settings.

I am consistently getting framerates below 10 fps as reported by Steam. This surely can't be right? I've looked at the log files in the logs directory but nothing seems amiss (to my admittedly untrained eye). Any ideas?

Edit: To test I just tried Rocket League with all options set to high and didn't go below 60 fps.

Edit edit: It's something to do with the shaders; enabling them produces a spectacular framerate decline. When disabled I still get the tedious freezes when new parts of the city are being loaded, but it's at least playable.
Last edited by huw; 30 Sep, 2017 @ 12:21pm
< >
Showing 1-15 of 18 comments
SnapperTheTwig  [developer] 30 Sep, 2017 @ 5:28pm 
Did this happen to you before 1.0.8?

Also upgrade your ati drivers, Steve had the same problem that went away when he did that.

EDIT: I am blind, you are running the latest version of Mesa. Have you tried the proprietary drivers?
Last edited by SnapperTheTwig; 30 Sep, 2017 @ 6:25pm
huw 30 Sep, 2017 @ 6:35pm 
I'm sorry but I don't think I tried shaders on before today so I can't answer your first question.

I haven't tried the proprietary drivers. It isn't trivial to switch on a Linux system, besides my card is a GCN 1.0 card which AMD stopped supporting a few months after it was released. It's Mesa or nothing for me.

I guess I'll just do without shaders.
Last edited by huw; 30 Sep, 2017 @ 6:36pm
SnapperTheTwig  [developer] 30 Sep, 2017 @ 6:37pm 
Also:
Can you run the game with:
./vtclient --steam --vml >> logs/clientoutput.txt

And email me said .txt to voxelturf@gmail.com

This enables verbose logging and outputs STDOUT to clientoutput.txt
If you are getting shader compile warnings it'll tell me there. Though from experience shaders typically just decide to run slow without spitting out warnings. Hopefully mesa would be more verbose than ATI.

Before 1.0.8 shaders ran slow on ATI drivers because I was sending normals as byte vec3s instead of byte vec4s (and this is literately not documented anywhere on the internet that this would cause a slowdown). Making the vec3 -> vec4 switch fixes this with windows ATI drivers.
SnapperTheTwig  [developer] 1 Oct, 2017 @ 5:02am 
Hi again, thanks so much for the email.

Looking at the logs:

-# Initalising shaders...
Compling Shader PARTICLES...
-# Compiling Shader PARTICLES IN
-# Vertex shader PARTICLES compile log:
Vertex shader PARTICLES compile log:
-# Fragment shader PARTICLES compile log:
Fragment shader PARTICLES compile log:
-# Shader program PARTICLES link info V:
Shader program: PARTICLES link info V:
-# Shader program PARTICLES link info F:
Shader program: PARTICLES link info F:
-# Compiling Shader PARTICLES OUT!
Compling Shader TEXTURES...
-# Compiling Shader TEXTURES IN
-# Vertex shader TEXTURES compile log:
Vertex shader TEXTURES compile log:
-# Fragment shader TEXTURES compile log:
Fragment shader TEXTURES compile log:
-# Shader program TEXTURES link info V:
Shader program: TEXTURES link info V:
-# Shader program TEXTURES link info F:
Shader program: TEXTURES link info F:
-# Compiling Shader TEXTURES OUT!
Compling Shader TEXTURES_PF...
-# Compiling Shader TEXTURES_PF IN
-# Vertex shader TEXTURES_PF compile log:
Vertex shader TEXTURES_PF compile log:
-# Fragment shader TEXTURES_PF compile log:
Fragment shader TEXTURES_PF compile log:
-# Shader program TEXTURES_PF link info V:
Shader program: TEXTURES_PF link info V:
-# Shader program TEXTURES_PF link info F:
Shader program: TEXTURES_PF link info F:
-# Compiling Shader TEXTURES_PF OUT!
Compling Shader TEXTURES_NL...
-# Compiling Shader TEXTURES_NL IN
-# Vertex shader TEXTURES_NL compile log:
Vertex shader TEXTURES_NL compile log:
-# Fragment shader TEXTURES_NL compile log:
Fragment shader TEXTURES_NL compile log:
-# Shader program TEXTURES_NL link info V:
Shader program: TEXTURES_NL link info V:
-# Shader program TEXTURES_NL link info F:
Shader program: TEXTURES_NL link info F:
-# Compiling Shader TEXTURES_NL OUT!
Compling Shader TEXTURES_NL_PF...
-# Compiling Shader TEXTURES_NL_PF IN
-# Vertex shader TEXTURES_NL_PF compile log:
Vertex shader TEXTURES_NL_PF compile log:
-# Fragment shader TEXTURES_NL_PF compile log:
Fragment shader TEXTURES_NL_PF compile log:
-# Shader program TEXTURES_NL_PF link info V:
Shader program: TEXTURES_NL_PF link info V:
-# Shader program TEXTURES_NL_PF link info F:
Shader program: TEXTURES_NL_PF link info F:
-# Compiling Shader TEXTURES_NL_PF OUT!
Compling Shader SHADOWS...
-# Compiling Shader SHADOWS IN
-# Vertex shader SHADOWS compile log:
Vertex shader SHADOWS compile log:
-# Fragment shader SHADOWS compile log:
Fragment shader SHADOWS compile log:
-# Shader program SHADOWS link info V:
Shader program: SHADOWS link info V:
-# Shader program SHADOWS link info F:
Shader program: SHADOWS link info F:
-# Compiling Shader SHADOWS OUT!

It literally compiles all the shaders with no errors or warnings.

I do run mesa on my daily driver, but I run intel graphics with nvidia optimus switching. Shaders do not cause a slowdown on my machine (in-fact they give a 1-2fps INCREASE in performance on integrated graphics)

From my glxinfo:
OpenGL version string: 3.0 Mesa 11.0.4
OpenGL shading language version string: 1.30
Last edited by SnapperTheTwig; 1 Oct, 2017 @ 5:02am
huw 1 Oct, 2017 @ 8:24am 
Weird. I wonder whether there's a regression in the latest Mesa which affects Voxel Turf? I've played a number of other voxel-based games without issue. Perhaps things will improve with the next Mesa release.

Or you never know, perhaps pigs will fly and AMD will remember that a lot of their customers have GCN 1.0 cards and wouldn't mind a driver that works.
huw 3 Oct, 2017 @ 12:28pm 
Well this is all I can really say in summary. With shaders on, even at bare minimum settings, I get 10fps at most, usually less. With shaders off it's spectacularly better FPS-wise, but I keep getting those micro-freezes. Either way the game is unplayable. :(

From my glxinfo:
OpenGL version string: 3.0 Mesa 17.2.1
OpenGL shading language version string: 1.30
Last edited by huw; 3 Oct, 2017 @ 12:28pm
SnapperTheTwig  [developer] 3 Oct, 2017 @ 5:05pm 
1.0.15 should help with those microfreezes, as VRAM usuage (and hence bandwidth) has been reduced by 30%.

Those microfreezes may also be due to lighting recalculations (which have to be done on the cpu and uploaded to the gpu due to shaders being disabled). You can avoid doing lighting recalculations by using the /midday cheat (doesn't count as a cheat for achievements)

huw 3 Oct, 2017 @ 10:37pm 
OK I'll give that a try. Thank you!
SnapperTheTwig  [developer] 4 Oct, 2017 @ 6:22am 
I've set 1.0.15 live in the Experimental branch.
(Select Betas->Experimental)

This should greatly reduce your VRAM usage, it may also help your shader performance as each vertex uses less memory
huw 4 Oct, 2017 @ 10:25am 
I really appreciate your continued support, Snapper.

However I downloaded the experimental build and now it's worse than ever. With or without shaders, bare minimum settings, I get a constant <10 fps. I reverted back to the live build and things went back to how they were before.

I'm sorry to be the cause of so much trouble!

Edit: /midday doesn't help with the micro-freezes either, but my CPU is never at 100% when I play. This is maddening. Some part of my hardware doesn't seem to like this game!
Last edited by huw; 4 Oct, 2017 @ 11:01am
SnapperTheTwig  [developer] 5 Oct, 2017 @ 3:14am 
I've uploaded a patch 1.0.15a to experimental. This should make things not as broken as they were in 1.0.15 on your end. I have tested this on my AMD machine and it does make the game run good again on my (propriety) drivers.
huw 5 Oct, 2017 @ 7:56am 
I'm afraid the patch didn't make the slightest difference on my PC. With and without shaders, bare minimum settings, low textures, I still get <10fps in game. :(
SnapperTheTwig  [developer] 5 Oct, 2017 @ 11:08pm 
I've uploaded 1.0.15b to experimental. This reverts data packing on the GPU to 1.0.14 behaviour as it appears that ATI doesn't support half-floats properly.

You should be able to play this.
huw 6 Oct, 2017 @ 7:00pm 
I don't expect you to devote any more time to this particular issue since mine seems to be an extreme edge case, but just so you know, 1.0.16 is back to "normal": Without shaders I get high fps but with micro freezes, and with shaders it's <10fps all the way. :/
SnapperTheTwig  [developer] 7 Oct, 2017 @ 12:20am 
I'm getting stutter on my AMD card too. I've got another approach to this problem that I'm having a go at. It may be another day or two before I have a (possible) solution uploaded
< >
Showing 1-15 of 18 comments
Per page: 1530 50