Config setting for disabling debug console output

Post Reply
User avatar
darkhog
Member
Posts: 19
Joined: Sat May 28, 2011 13:35

Config setting for disabling debug console output

by darkhog » Post

I failed to rid of this myself and I am pretty sure this is causing fps loss on my machine (especially "Pointing at: <coords>" messages), so could you make possible to disable it (and make disabled by default) in config settings?

This is serious, since outputting thing (especially to file, which would be debug.txt, I believe) take away CPU cycles which can be used for something else like calculating world, or so and directs to low framerate.

User avatar
Kray
New member
Posts: 4
Joined: Tue May 31, 2011 07:29

by Kray » Post

No, it does not.
Outputting small amounts of text costs practically no CPU cycles when compared to the real game. And anyway, if you are running just a client, your bottleneck is not your CPU, but your GPU, which can't output data any faster.

User avatar
darkhog
Member
Posts: 19
Joined: Sat May 28, 2011 13:35

by darkhog » Post

Yeah, right. Since my GPU is GeForce9600 GT which can run Crysis on highest details without any problems I doubt it's that. Plus I have newest nVidia closed drivers (don't use any shit like nouveau) so I don't think it is a problem. Also other linux games which have better graphics than this (Nexuiz, openArena, ManiaDrive, VDrift to name few) also run on hihest detail without any fps loss.

So no, I don't think my GPU is a problem.

User avatar
Kray
New member
Posts: 4
Joined: Tue May 31, 2011 07:29

by Kray » Post

Define "better graphics". Minetest (and any other similar block game) is just a pure torture test for GPU. The frame rate entirely depends on the amount of textured triangles (those cubes consist of quads, which are rendered as two triangles) your GPU can output to the screen. It is something completely different than those games you define to have better graphics do - and they are lightweight for the GPU when compared to what Minetest could take out of it if possible.

Also, I find it really amusing you even think that outputting a few lines of log messages now and then actually need processing power - it does not. The impact is just like peeing to ocean - impossible to notice.

User avatar
darkhog
Member
Posts: 19
Joined: Sat May 28, 2011 13:35

by darkhog » Post

Too bad that Crysis has average >5000 triangles on screen while Minetest rarely has 500. Same for nexuiz and others. Also from my experience with Stencyl I know it HAS impact. Sometimes it's only additional millisecond, sometimes 5, but when counting it, it CAN slowdown framerate.

User avatar
Kray
New member
Posts: 4
Joined: Tue May 31, 2011 07:29

by Kray » Post

Where did you pull these numbers from?
If you just look at a wall larger than 16x16 blocks, that already has more than 500 triangles drawn. If we look at, for example, this screenshot, it has easily over 25000 triangles drawn on every single frame. I don't know about Crysis, but I doubt it has as much triangles drawn - where it needs performance is all the post-processing, which is quite constant time.
Last edited by Kray on Tue May 31, 2011 09:41, edited 1 time in total.

User avatar
darkhog
Member
Posts: 19
Joined: Sat May 28, 2011 13:35

by darkhog » Post

Got rid of this debuginfo business (in really hackish and clumsy way, but got rid of) and guess what? Steady 60FPS, even with fancy trees, smooth light and disabled fog. See for yourself http://dl.dropbox.com/u/210143/celeron5 ... f579bc.zip (zip file with sources and linux executables in bin folder).

I think it was most fault of printing to console where player is ponting at for no apparent reason. As I said, see for yourself, FPS will be bigger than earlier.

User avatar
Kray
New member
Posts: 4
Joined: Tue May 31, 2011 07:29

by Kray » Post

I tested your modifications and went to see the exact same view as in that screenshot - and guess what, steady 20 fps instead of your steady 60.

My guess is that you just went ahead and checked that "ok, frame rate 60, good!" with almost no chunks loaded and visible. Guess what, I get steady 60 fps also on the non-modified client when I have almost nothing loaded.

User avatar
celeron55
Administrator
Posts: 476
Joined: Tue Apr 19, 2011 10:10
GitHub: celeron55
IRC: celeron55

by celeron55 » Post

The problem here is that your "yber fast" GPU is not made to support something like Minetest. It has been optimized to render huge amounts of static vertices stored on the GPU with huge amounts of shader stuff going on. That's what Crysis and other similar games are designed to do.

Minetest doesn't store vertex data on the GPU and doesn't use shaders at all. The speed at which minetest runs depends solely on how fast your machine can throw geometry at the GPU. (On very low-end cards like the 945GM the bottleneck might be actually rendering them.)

The performance is somewhat random, only some of the new GPUs seem to be strangely slow, others do just fine. If I had to buy a GPU for running Minetest, I'd go for some lower-mid-range NVidia.

Also, in the case of Minetest, some other "slower" drivers might actually be faster, the only way you can know is to test them. On Windows it sometimes helps to set it to use the direct3d9 backend if the drivers have a shitty OpenGL implementation. (see wiki about the config file.)

User avatar
darkhog
Member
Posts: 19
Joined: Sat May 28, 2011 13:35

by darkhog » Post

So why you don't store vertices in gpu? I think Manic Digger is doing it and it just run fine? Low performance is only fault on your coding. Few optimization suggestions:

- When several blocks of same type make cuboid like here:
Image
draw them as single quad instead of quad per block.
- Cache terrain geometry in GPU if you're able to. This will allow you to make it run even faster.

User avatar
celeron55
Administrator
Posts: 476
Joined: Tue Apr 19, 2011 10:10
GitHub: celeron55
IRC: celeron55

by celeron55 » Post

I don't listen to optimization or design advice from people who have not studied the code (or made a minecraft clone themselves).

Also, you're wrong. There has to be nine quads in there to allow the nice lighting effect you're seeing right there to happen.

User avatar
celeron55
Administrator
Posts: 476
Joined: Tue Apr 19, 2011 10:10
GitHub: celeron55
IRC: celeron55

by celeron55 » Post

And about storing stuff on the GPU: Currently stuff is handled separately for each 16x16x16 chunk of blocks (block of nodes, in minetest terms) which is too low to bring any performance benefit from storing on the GPU. They would need to be combined to even larger parts, which I might try some day, but it's not too high on my priority list.

Feel free to implement that, though; just remember the design philosphy and the brand new contribution policy. 8)

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests