I'm making this as a catch-all thread for performance and stability changes using the 14w29b snapshot, as it has several changes geared towards increasing performance. For this, please make a new world for all testing in the 14w29b snapshot using these settings:
Seed: 14w29b
Creative Mode
Default World, not Amplified or Large Biomes or any other changes.
Also, please turn all your settings to max. If that results in crashing or being unplayable, lower it to what you can play and state that you could not run at max settings. Your screenshot should show all the important settings though.
I ask that you post as much information as you can, including the following:
Operating System
Java Version
Processor Model and Speed
Graphics Card Model
RAM (and RAM allocated specifically to Minecraft)
A screenshot of your Minecraft Settings
FPS when you have VBO turned off and turned on (found in Video Settings), as well as your FPS in 1.7.10 (get all of these in the same world in the same location, wait in one place for 2-3 minutes without moving for consistency)
A comparison of how fast chunks load when flying in one direction in Creative Mode between this snapshot and 1.7.10 (again, use the same world)
Any issues or bugs you see with the new settings
Any other information you feel is relevant
Lets try and keep all the information in one place. If you don't know how to get specific information, just ask and we can help each other figure it out. If I forgot something I should include, tell me.
My Info:
Windows 7 Home Premium x64
Java Version 7 Update 51
CPU: AMD FX-8320 8 Core (3.5GHz)
Radeon HD 6950 (4GB)
8 GB RAM (1GB allocated to Minecraft)
Video Settings: http://i.imgur.com/eP4Irtl.png
FPS: 60-80 (1.7.10), ~35 (Snapshot no VBO) ~55 (Snapshot with VBO)
Chunks seem to load significantly faster in Snapshot. I could almost catch up to loading chunks in 1.7.10 when flying and now they load almost instantly.
Bugs I am experiencing: https://bugs.mojang.com/browse/MC-62225
All in all it seems to be a good performance increase. Still not running as fast as I did in 1.7.10 but that is expected on a snapshot.
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
If you're going to do this, provide a seed and tell everyone to set graphics to max with default texture pack, on a flat-world you'll get a bigger difference with vertex buffer objects than on a survival world.
If you're going to do this, provide a seed and tell everyone to set graphics to max with default texture pack, on a flat-world you'll get a bigger difference with vertex buffer objects than on a survival world.
Good point. We'll do it on a specific seed made in 14w29b. For the Seed enter: 14w29b
Default World Type, Creative.
Rollback Post to RevisionRollBack
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
Yeah I have the same issue with block updates, it is a known bug and I linked to it in the OP.
Rollback Post to RevisionRollBack
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
Operating System: Mac OSX 10.9.4
Java Version: Java 7 (Update 65)
Processor Model and speed: 1.8 GHz Intel Core i5, Ivy Bridge
Graphics Card: Intel HD Graphics 4000
RAM: 8GB (I think 1015MB is currently allocated)
Oh this is interesting, I forgot about Intel's terrible HD Graphics chips; they have a unique scenario where the GPU memory is shared with the system memory, so VBO's (Which are stored on GPU memory) would not gain any performance in terms of GPU memory clock and bandwidth gains, it's weird that it loses performance (Suggests that Intel have a stupid compatibility software mode for OpenGL 2.1 extensions).
That 1.8GHz clock wouldn't help either as the GPU calls and CPU calls are on the same clock, there would be a bottleneck where on a dedicated GPU there wouldn't be one.
The problem with "block updates" are infact not a problem with "block updates", it's a problem of the rendering threads needing to meet with the world thread and agreeing on the block state, if this meetup is not met in-time then it will have to wait for the next world update to potentially correct it, block update problems are where updates are lost entirely or sporadically occur.
(So in a sense, the block DID update, but Minecraft wasn't told quickly enough that the graphics need refreshing).
there also seems to be an issue for me with xray scenery. when removing blocks, especially into say the side of a mountain, it takes so long to load the change to the environment that i can see through all the scenery. chunk loading is not at all fast for me. ive also seen a lot of funky block related glitches. for instance i just observed what looked liked a waterfall going into my village from the middle of the sky, however there wasn't any actual water there. just what looked like kind of a veil.
this is a map created in the newest snapshot. im on a brand new laptop, plenty of ram. running same settings as i normally do and i have no issues in 1.7.
Rollback Post to RevisionRollBack
Yes i know, my spelling sucks.
Check out my You-Tube Channel (BringerofKaos) for plenty of Minecraft Content and my Lets Play series:
This is with my desktop. I'll have to try my laptop later (Core i3 1.7GHz Haswell w/ HD 4400 and 6GB RAM). I'm not sure how much it impacts performance, but shouldn't we at least list our resolution?
Windows 7 (64-bit)
Java 7 update 65 (64-bit)
Core i5 2500K (4.0GHz)
GeForce GTX 560 Ti w/ 1GB VRAM (w/ Driver Version 335.23)
16GB RAM (1GB RAM allocated)
1920 x 1200 resolution
14w29b w/ VBO On - ~49 FPS
14w29b w/ VBO Off - ~85 FPS
1.7.10 - ~155 FPS
Chunk loading is impressively quick! That's the case even considering I'm used to OptiFine's multi-core chunk loading, which itself is fast. Since I'm used to that though, I'm already used to being able to fly and not catch up with unrendered chunks (in 1.6.4, I turned the fly speed up quite a bit and the rendering didn't have much issue keeping up with me), so my impression was a bit skewed to start. Flying so slowly and having the rendering keep up usually happens anyway for me.
Unfortunately, performance is down, and this VBO feature seems to bring it down more. I'm not sure if it's meant to help lower end hardware instead, but the laptop above lost performance with VBO too, it seems. I'll have to try and remember to give this all a go on my laptop. So far, though, it seems like this is another feature I'll toss aside like I did with mip-maps (the worse part of doing this was having to look at how Minecraft looks with that feature on).
As for quirks, I did notice odd lines with the clouds (you can see them if you look close), but those were in all versions.
For a bit of an unrelated comparison, here's Minecraft 1.7.9 w/ Optifine, an extended render distance and higher FOV, CSAA + supersampling transparency AA, and to top it all off, it's in 4K resolution, so there's all sorts of stuff to drag the frame rate down. Minus the fact that it's 4K, it's otherwise how I normally run the game. It's kind of sad that it almost has as high a frame rate as 14w29b with supposed performance improvements.
Unfortunately, performance is down, and this VBO feature seems to bring it down more. I'm not sure if it's meant to help lower end hardware instead, but the laptop above lost performance with VBO too, it seems. I'll have to try and remember to give this all a go on my laptop. So far, though, it seems like this is another feature I'll toss aside like I did with mip-maps (the worse part of doing this was having to look at how Minecraft looks with that feature on).
VBOs (Vertex Buffer Objects) is a feature where the benefits are felt if the CPU isn't very good but the GPU is good, it moves the vertex geometry creation from the fixed-function CPU draw call method to an object in the GPU memory.
Ideally, this should boost performance on machines that have an optimal setup (GPU compliments CPU), if you're in the case where the CPU is powerful but the GPU is slow then VBOs won't help at all, it will bottleneck the system.
VBOs are the better way to handle 3D graphics in games and it's how all modern games do it, if you have a performance drop it's an indication that your computer is being bottlenecked by your GPU (And that Minecraft still has some poor rendering engine design choices).
As a comparison, I have an Intel i5-2400 at 3.3GHz and an AMD 6970HD 2GB, my CPU is worse than yours but my GPU is better, so VBOs for me give me a tiny performance boost (Indication that my CPU and GPU compliment each other quite well, which is exactly how I built my machine to be).
If I had a good GPU but a bad CPU, then VBOs could give a massive performance boost.
The reason is;
The original fixed-function rendering used function calls from the CPU to start telling the GPU to prepare vertices for drawing 3D objects, the GPU would be told by the CPU "I'm about to give you vertex data" and then the CPU will give the GPU data while the GPU does other stuff, then when it's finished the CPU says "I'm done now" and then there is a big delay while the GPU finishes what it was doing while you were giving it vertex data before it goes "Okay I am ready to draw that now" and then it draws it, if your CPU is fast then the overhead of talking to the GPU would be lower.
The new VBO method is so much better, the CPU says "Here are vertices for a cube, remember that" at the very start of the program, this is stored on the GPU video memory itself, the CPU can now say "Draw whatever the current VBO is" and the GPU will take whatever the bound VBO is and just draw it, no need to wait for draw lists to be completed. The CPU can tell the GPU to switch current VBOs within the GPU memory in 1 call and then draw the current VBO in 1 call, before it was something like 36 * 3 + 2 calls to the GPU to draw a cube.
So you can identify the bottlenecks; GPU memory needs to be fast, GPU bandwidth needs to be fast, CPU can be any speed but if it is faster than the GPU then the CPU and GPU will have to hold and wait for each other before a VBO can be drawn, that's the bottleneck you are suffering with.
Mojang can actually solve this on their end, they can hold the VBO in GPU memory, do lots of CPU operations, then right at the end of the update loop call the VBO draw, this means that the CPU isn't going to wait for the GPU to complete as it would have no jobs to do and the GPU has time to draw to the backbuffer while the frame is being flipped and prepared during the CPU's time updating the world. (This works weirdly because OpenGL's system will only lock and wait when the incoming commands conflict with the current commands, so you can say "draw this, then flip" and GL will happily do that while you use the CPU to do stuff, but if you said "Draw this, I'm going to do this here, then flip" GL will delay before flipping and drawing).
Honestly, much of that goes over my head, but I think I understand the basic bottom line of it; it shifts part of the load previously on the CPU to the GPU.
However, it begs the question. My graphics card may be aged a bit at roughly three years old, but it's still a mid-high end card from it's time that's plenty capable even today. If I saw a drop like this, what is Mojang expecting when the majority of PCs probably have an even less ideal balance as far as this is concerned? Think of how the common PCs tend to have okay enough CPUs with either integrated graphics or a relatively lower end drop-in graphics card.
Still, I also don't think I should be seeing the performance drop I did (close to half) with my balance if you saw a small increase, because your balance doesn't really seem that far off of mine comparatively. The CPU and GPU I have were a very common pairing at the time (I didn't make it that way from the onset, though; various parts have been upgraded over time and this is just how it is now), and if I am remembering correctly (it's been a long time though), my GPU was roughly somewhere around par with the Radeon 6870/6950, the latter of which is a model number below yours.
Would Advanced OpenGL have anything to do with this? You said elsewhere that only nVidia graphics cards can use it (I never knew that), and I know that it makes a big difference in my frame rates, so maybe that was seemingly inflating my frame rate to begin with? Actually, I'm not sure that's the case though since 14w29b even with Advanced OpenGL on performs yet almost half as bad as 1.7.10, so there has to be other stuff involved. Now my head hurts thinking about it. I just know that I'm basically looking at about a third of the performance with 14w29b w/ VBO compared to 1.7.10, and still only about half without VBO, and that's scary.
You pretty much got it with the shifting of load from CPU to GPU.
Advanced OpenGL won't change anything, it does a different (And old) technique for removing objects that aren't visible from being drawn.
And I'd say your setup is very much CPU > GPU, you mentioned you consider it on par with 6870/6950, well the 6950 is a fair bit better than the 6870, I'd say your GPU is 6870 range and your CPU is a big leap above it, so your PC is weighted towards the CPU being held back by the GPU.
Consider it a sign that you may need a new GPU, when you next build/buy a PC do a lot more research into complementary CPU and GPUs, a lot of people mistakenly pair parts that will choke each other (You said your CPU is common with your GPU, doesn't mean it's a good pair just means a lot of people don't understand the bottlenecks involved!).
I'm at an advantage as I am a game engine programmer, so I know exactly what to look for in hardware, consumers tend to buy the fastest with the biggest numbers, the better move would be research the games you want to play, understand their engine and build a machine that compliments itself and the games you want to play (So my machine doesn't perform well with certain engines that favour CPU over GPU, yours would perform better).
Make sure you also update your drivers to the latest version, for OpenGL 2.1 the VBOs is an extension, it's not part of the official OpenGL 2.1 specification, so you will need up to date drivers to be able to use it.
Mojang probably won't make changes to support everyone, they would have to do tricks depending on machine setups which is costly and annoying, an example would be in addition to Advanced OpenGL for you (As you have NVidia), the engine would be better if it spent more time on the CPU removing stuff from drawing and preparing a good frame for rendering and then drawing the VBOs at the very end.
There is also an optimisation that Mojang are missing out on still with texture switches, currently they draw based on chunk (Next snapshot they will draw based on chunk order) but they really need to sort on the CPU based on chunk and then draw based on texture, which would minimise GPU activity and focus on CPU activity.
Those kind of small things they need to do, but it's likely that they'll add them and just have them as buttons to press in the options screen as different people will have different performance results.
Chunks load a lot faster in the snapshot than in 1.7.10.. What I thought was a chunk error was actually a floating island. I'm experiencing the same bug: https://bugs.mojang.com/browse/MC-62225
I loaded up a world I have been using for snapshots for a while now. Using a texture pack, with a gigantic village I built in it. It rendered so fast in this new snapshot it made my head spin. I've never seen a world render so fast since I bought Minecraft. Keep up the good work.
Consider it a sign that you may need a new GPU, when you next build/buy a PC do a lot more research into complementary CPU and GPUs, a lot of people mistakenly pair parts that will choke each other (You said your CPU is common with your GPU, doesn't mean it's a good pair just means a lot of people don't understand the bottlenecks involved!).
I don't agree with this bit in the way you suggest (although your posts have been informative and I'm not saying anything is "wrong", per se), because there will always be a bottleneck. There's no getting around it. What that bottleneck is depends on the workload. There's no such thing as a perfect balance, as even within the same program the load varies, but different programs also have very different needs. Even if there was such a thing, this means you'd be at odds upgrading because you'd get less of the benefit. Most games especially are GPU limited, and it's probably better to have a CPU-heavy balance anyway as GPUs are usually easier and cheaper to upgrade (CPU upgrades often mean a new motherboard and sometimes RAM and CPU cooling too, which is generally more costly put together and also involves the time required of an operating system reinstall).
I don't think my PC is poorly balanced or anything, and as I said, I didn't build it as it is now. It's been a continually evolving thing. Prior to how it is now, I had a Core 2 Duo E8600 @4.0GHz paired with this video card. It made no sense to upgrade the GPU much further with that setup (let alone the GeForce 500 series was still newer so there wasn't much better anyway that didn't cost close to $400 or more). So, I upgraded my platform/CPU. The graphics card is the next obvious upgrade, but I honestly haven't had need to upgrade it yet.
Processor Model and Speed: AMD Athlon II X2 245 Processor (2.90GHz)
Graphics Card Model: NVidia GeForce 9400 GT
RAM (and RAM allocated specifically to Minecraft): 4GB (1GB for Minecraft)
A screenshot of your Minecraft Settings:
FPS when you have VBO turned off and turned on (found in Video Settings), as well as your FPS in 1.7.10 (get all of these in the same world in the same location, wait in one place for 2-3 minutes without moving for consistency): VBO ON: 120FPS. VBO OFF: 150FPS. 1.7.10: 200-230
A comparison of how fast chunks load when flying in one direction in Creative Mode between this snapshot and 1.7.10 (again, use the same world): A lot faster.
Any issues or bugs you see with the new settings: Had some chunk errors since 14w08ish, but now they are fixed. No issues for now.
Edit: No crashing after setting the options to max. Yet, obviously, my FPS drops a lot. 40-60 FPS.
My computer isn't high end to say the least (basically a hand-me-down with the only thing being upgraded the hard drive/OS):
32 bit Windows 7 Ultimate
3 GB RAM (about 600 MB used when idle)
2.2 GHz AMD Athlon 64 X2 (dual core)
Nvidia GeForce 7600 (described as for "extreme HD gaming" but that was years ago)
32 bit (obviously) Java 7, last updated a few days ago
Whatever "optimizations" they are doing they are doing them wrong as far as my computer is concerned, as the following series of screenshots show (all same settings; full screen framerate (as I usually play) isn't much different and if anything runs better than windowed, which sometimes gets lag when turning around, in any version):
1.6.4; note that I used the seed for my first main world (-123775873255737467, default), which still allows for a comparison as I loaded it in later versions; I also usually allocate 512 MB of RAM (-Xms512M -Xmx512M) but replaced it with just -Xmx1024M to see how much they actually allocate (peak memory usage), 1.6.4 may be biased high because I generated the world in it but used memory is similar though, indicating that 1.8 doesn't need (much) more memory than older versions:
1.7.10; doesn't seem much different but see below:
14w29b, without and with VBO enabled (first and second respectively):
So yeah, some "optimizations", and those don't even show the huge lag spikes and wildly fluctuating FPS, even when standing still (1.7.x also has huge lag spikes when loading new chunks, and jungles make the game seem to about to crash; by comparison, I get some lag spikes in 1.6.4 when loading a Mega Forest biome I made, which is far more resource intensive, including laggy (server-wise) chunk generation, but far less than what 1.7 gets in jungles, including server lag that takes a few minutes to subside instead of only on chunk generation). Also, the "see below" noted for 1.7.10? Well, 1.7.x has a pretty major bug for me - the "Lag Spike of Death" - which requires pausing and leaving the game for several minutes before it magically goes away, and that doesn't always fix it unless I restart the game (had to do so once to take the screenshot above to get a representative comparison when it is running good), one reason why I still mostly play in 1.6.4. Here is what Optifine's lagometer shows when I enable it (worth noting that Optifine doesn't help FPS much but does reduce lag spikes and stabilize FPS):
(the green is rendering time, which is causing the spikes)
Note the huge spikes shooting up at regular intervals; even odder is what happens when I reduce the framerate limit to 5 FPS:
The interval, and number of frames, between spikes is unchanged (they are no longer noticeable; of course, running at 5-10 FPS isn't an option for me).
I should also note that in 1.6.4 turning Advanced OpenGL on doubles FPS (all screenshots were with it on), with less of a benefit in newer versions (1.7.10 is faster with it off), so they DID do some optimizations, especially if the option isn't available for you.
In addition, I noticed that visually "Fast" graphics is no longer much different from "Fancy", which may explain part of the performance decrease, and/or there is a bug I'm seeing; when looked at from a distance leaves become transparent, with an x-ray effect when in front of a solid block:
(having said that, when using Optifine to selectively enable/disable fast/fancy for individual things "Fast" with only leaves left on "Fast" runs as well as all "Fast" when in jungle/forested biomes so the leaves are the main culprit the difference is less than with Advanced OpenGL on/off though).
Then, of course there are the chunk updating bugs; I place a torch in a cave and only the particles render for a few seconds before it finally appears and lights up, a definite deal-breaker. As for chunk loading, multithreading probably doesn't help me much (enabling multicore chunk loading in Optifine causes lag, presumably because with only two cores and each one running the internal server and client threads there isn't any room left for more without taking away CPU time from the main threads; that said, Optifine's chunk update settings improve chunk loading without reducing performance; I originally installed it to stop the "chunks not rendering near you" bug, which never happens with it; Advanced OpenGL also causes chunks to flash invisible without it).
Also, performance (FPS does rise a bit) is oddly MUCH worse in Superflat, with intense server lag (slimes very slowly "float" around, blocks take about 5 seconds to drop after breaking, sun keeps jumping backwards, etc). By "intense server lag" I mean this:
[17:52:23 INFO]: Client> [17:52:23] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 79177ms behind, skipping 1583 tick(s)
[17:53:50 INFO]: Client> [17:53:50] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 63070ms behind, skipping 1261 tick(s)
(also occasionally happens in other versions, but not when just standing still, much less in a Superflat world, and not running behind by minutes at a time)
Lag spikes in 1.7+ also correspond with warnings like this, which don't occur in 1.6.4:
[17:15:15 INFO]: Client> [17:15:15] [Client thread/INFO]: Warning: Clientside chunk ticking took 378 ms
[17:15:34 INFO]: Client> [17:15:34] [Client thread/INFO]: Warning: Clientside chunk ticking took 387 ms
[17:16:24 INFO]: Client> [17:16:24] [Client thread/INFO]: Warning: Clientside chunk ticking took 352 ms
[17:16:47 INFO]: Client> [17:16:47] [Client thread/INFO]: Warning: Clientside chunk ticking took 229 ms
[17:17:00 INFO]: Client> [17:17:00] [Client thread/INFO]: Warning: Clientside chunk ticking took 311 ms
Finally, it should be noted that they recently updated (around 1.7) the system requirements with huge increases in CPU and GPU requirements from the old requirements:
Old (from Wikipedia, which hasn't updated them yet):
Minimum Requirements:
CPU: Intel P4/Netburst Architecture or its AMD equivalent
RAM: 2GB of RAM
GPU: Intel GMA or AMD equivalent
HDD: 90 MB
Recommended Requirements:
CPU: Intel Pentium D or AMD Athlon 64 2.6 GHz
RAM: 4GB of RAM
GPU: GeForce 6xxx Series or ATI Radeon 9xxx and up with OpenGL 2 Support
HDD: 150 MB
New:
Minimum Requirements:
CPU: Intel Pentium D or AMD Athlon 64 (K8) 2.6 GHz
RAM: 2GB
GPU (Integrated): Intel HD Graphics or AMD (formerly ATI) Radeon HD Graphics with OpenGL 2.1
GPU (Discrete): Nvidia GeForce 9600 GT or AMD Radeon HD 2400 with OpenGL 3.1
HDD: At least 200MB for Game Core and Other Files
Java 6 Release 45
Recommended Requirements:
CPU: Intel Core i3 or AMD Athlon II (K10) 2.8 GHz
RAM: 4GB
GPU: GeForce 2xx Series or AMD Radeon HD 5xxx Series (Excluding Integrated Chipsets) with OpenGL 3.3
HDD: 1GB
Latest release of Java 7 from java.com
Looking at these my computer easily meets the old recommended requirements but doesn't meet even the minimum requirements now (I don't consider having 3 GB instead of 4 GB to be failing because 2 GB is plenty enough if you allocate 512 MB and don't try running other programs or have memory hogging background processes. Note also that my CPU is 2.2 GHz instead of 2.6 GHz but the Athlon 64 is single-core while mine (X2) is dual-core and the game does benefit from a dual-core CPU due to the separate sever/client threads).
Seed: 14w29b
Creative Mode
Default World, not Amplified or Large Biomes or any other changes.
Also, please turn all your settings to max. If that results in crashing or being unplayable, lower it to what you can play and state that you could not run at max settings. Your screenshot should show all the important settings though.
I ask that you post as much information as you can, including the following:
My Info:
Windows 7 Home Premium x64
Java Version 7 Update 51
CPU: AMD FX-8320 8 Core (3.5GHz)
Radeon HD 6950 (4GB)
8 GB RAM (1GB allocated to Minecraft)
Video Settings: http://i.imgur.com/eP4Irtl.png
FPS: 60-80 (1.7.10), ~35 (Snapshot no VBO) ~55 (Snapshot with VBO)
Chunks seem to load significantly faster in Snapshot. I could almost catch up to loading chunks in 1.7.10 when flying and now they load almost instantly.
Bugs I am experiencing: https://bugs.mojang.com/browse/MC-62225
All in all it seems to be a good performance increase. Still not running as fast as I did in 1.7.10 but that is expected on a snapshot.
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
http://www.minecraftforum.net/forums/minecraft-discussion/suggestions/2775557-guidelines-for-the-suggestions-forum
Good point. We'll do it on a specific seed made in 14w29b. For the Seed enter: 14w29b
Default World Type, Creative.
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
http://www.minecraftforum.net/forums/minecraft-discussion/suggestions/2775557-guidelines-for-the-suggestions-forum
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
http://www.minecraftforum.net/forums/minecraft-discussion/suggestions/2775557-guidelines-for-the-suggestions-forum
Oh this is interesting, I forgot about Intel's terrible HD Graphics chips; they have a unique scenario where the GPU memory is shared with the system memory, so VBO's (Which are stored on GPU memory) would not gain any performance in terms of GPU memory clock and bandwidth gains, it's weird that it loses performance (Suggests that Intel have a stupid compatibility software mode for OpenGL 2.1 extensions).
That 1.8GHz clock wouldn't help either as the GPU calls and CPU calls are on the same clock, there would be a bottleneck where on a dedicated GPU there wouldn't be one.
The problem with "block updates" are infact not a problem with "block updates", it's a problem of the rendering threads needing to meet with the world thread and agreeing on the block state, if this meetup is not met in-time then it will have to wait for the next world update to potentially correct it, block update problems are where updates are lost entirely or sporadically occur.
(So in a sense, the block DID update, but Minecraft wasn't told quickly enough that the graphics need refreshing).
this is a map created in the newest snapshot. im on a brand new laptop, plenty of ram. running same settings as i normally do and i have no issues in 1.7.
https://bugs.mojang.com/
Windows 7 (64-bit)
Java 7 update 65 (64-bit)
Core i5 2500K (4.0GHz)
GeForce GTX 560 Ti w/ 1GB VRAM (w/ Driver Version 335.23)
16GB RAM (1GB RAM allocated)
1920 x 1200 resolution
14w29b w/ VBO On - ~49 FPS
14w29b w/ VBO Off - ~85 FPS
1.7.10 - ~155 FPS
Chunk loading is impressively quick! That's the case even considering I'm used to OptiFine's multi-core chunk loading, which itself is fast. Since I'm used to that though, I'm already used to being able to fly and not catch up with unrendered chunks (in 1.6.4, I turned the fly speed up quite a bit and the rendering didn't have much issue keeping up with me), so my impression was a bit skewed to start. Flying so slowly and having the rendering keep up usually happens anyway for me.
Unfortunately, performance is down, and this VBO feature seems to bring it down more. I'm not sure if it's meant to help lower end hardware instead, but the laptop above lost performance with VBO too, it seems. I'll have to try and remember to give this all a go on my laptop. So far, though, it seems like this is another feature I'll toss aside like I did with mip-maps (the worse part of doing this was having to look at how Minecraft looks with that feature on).
As for quirks, I did notice odd lines with the clouds (you can see them if you look close), but those were in all versions.
For a bit of an unrelated comparison, here's Minecraft 1.7.9 w/ Optifine, an extended render distance and higher FOV, CSAA + supersampling transparency AA, and to top it all off, it's in 4K resolution, so there's all sorts of stuff to drag the frame rate down. Minus the fact that it's 4K, it's otherwise how I normally run the game. It's kind of sad that it almost has as high a frame rate as 14w29b with supposed performance improvements.
VBOs (Vertex Buffer Objects) is a feature where the benefits are felt if the CPU isn't very good but the GPU is good, it moves the vertex geometry creation from the fixed-function CPU draw call method to an object in the GPU memory.
Ideally, this should boost performance on machines that have an optimal setup (GPU compliments CPU), if you're in the case where the CPU is powerful but the GPU is slow then VBOs won't help at all, it will bottleneck the system.
VBOs are the better way to handle 3D graphics in games and it's how all modern games do it, if you have a performance drop it's an indication that your computer is being bottlenecked by your GPU (And that Minecraft still has some poor rendering engine design choices).
As a comparison, I have an Intel i5-2400 at 3.3GHz and an AMD 6970HD 2GB, my CPU is worse than yours but my GPU is better, so VBOs for me give me a tiny performance boost (Indication that my CPU and GPU compliment each other quite well, which is exactly how I built my machine to be).
If I had a good GPU but a bad CPU, then VBOs could give a massive performance boost.
The reason is;
The original fixed-function rendering used function calls from the CPU to start telling the GPU to prepare vertices for drawing 3D objects, the GPU would be told by the CPU "I'm about to give you vertex data" and then the CPU will give the GPU data while the GPU does other stuff, then when it's finished the CPU says "I'm done now" and then there is a big delay while the GPU finishes what it was doing while you were giving it vertex data before it goes "Okay I am ready to draw that now" and then it draws it, if your CPU is fast then the overhead of talking to the GPU would be lower.
The new VBO method is so much better, the CPU says "Here are vertices for a cube, remember that" at the very start of the program, this is stored on the GPU video memory itself, the CPU can now say "Draw whatever the current VBO is" and the GPU will take whatever the bound VBO is and just draw it, no need to wait for draw lists to be completed. The CPU can tell the GPU to switch current VBOs within the GPU memory in 1 call and then draw the current VBO in 1 call, before it was something like 36 * 3 + 2 calls to the GPU to draw a cube.
So you can identify the bottlenecks; GPU memory needs to be fast, GPU bandwidth needs to be fast, CPU can be any speed but if it is faster than the GPU then the CPU and GPU will have to hold and wait for each other before a VBO can be drawn, that's the bottleneck you are suffering with.
Mojang can actually solve this on their end, they can hold the VBO in GPU memory, do lots of CPU operations, then right at the end of the update loop call the VBO draw, this means that the CPU isn't going to wait for the GPU to complete as it would have no jobs to do and the GPU has time to draw to the backbuffer while the frame is being flipped and prepared during the CPU's time updating the world. (This works weirdly because OpenGL's system will only lock and wait when the incoming commands conflict with the current commands, so you can say "draw this, then flip" and GL will happily do that while you use the CPU to do stuff, but if you said "Draw this, I'm going to do this here, then flip" GL will delay before flipping and drawing).
However, it begs the question. My graphics card may be aged a bit at roughly three years old, but it's still a mid-high end card from it's time that's plenty capable even today. If I saw a drop like this, what is Mojang expecting when the majority of PCs probably have an even less ideal balance as far as this is concerned? Think of how the common PCs tend to have okay enough CPUs with either integrated graphics or a relatively lower end drop-in graphics card.
Still, I also don't think I should be seeing the performance drop I did (close to half) with my balance if you saw a small increase, because your balance doesn't really seem that far off of mine comparatively. The CPU and GPU I have were a very common pairing at the time (I didn't make it that way from the onset, though; various parts have been upgraded over time and this is just how it is now), and if I am remembering correctly (it's been a long time though), my GPU was roughly somewhere around par with the Radeon 6870/6950, the latter of which is a model number below yours.
Would Advanced OpenGL have anything to do with this? You said elsewhere that only nVidia graphics cards can use it (I never knew that), and I know that it makes a big difference in my frame rates, so maybe that was seemingly inflating my frame rate to begin with? Actually, I'm not sure that's the case though since 14w29b even with Advanced OpenGL on performs yet almost half as bad as 1.7.10, so there has to be other stuff involved. Now my head hurts thinking about it. I just know that I'm basically looking at about a third of the performance with 14w29b w/ VBO compared to 1.7.10, and still only about half without VBO, and that's scary.
Advanced OpenGL won't change anything, it does a different (And old) technique for removing objects that aren't visible from being drawn.
And I'd say your setup is very much CPU > GPU, you mentioned you consider it on par with 6870/6950, well the 6950 is a fair bit better than the 6870, I'd say your GPU is 6870 range and your CPU is a big leap above it, so your PC is weighted towards the CPU being held back by the GPU.
Consider it a sign that you may need a new GPU, when you next build/buy a PC do a lot more research into complementary CPU and GPUs, a lot of people mistakenly pair parts that will choke each other (You said your CPU is common with your GPU, doesn't mean it's a good pair just means a lot of people don't understand the bottlenecks involved!).
I'm at an advantage as I am a game engine programmer, so I know exactly what to look for in hardware, consumers tend to buy the fastest with the biggest numbers, the better move would be research the games you want to play, understand their engine and build a machine that compliments itself and the games you want to play (So my machine doesn't perform well with certain engines that favour CPU over GPU, yours would perform better).
Make sure you also update your drivers to the latest version, for OpenGL 2.1 the VBOs is an extension, it's not part of the official OpenGL 2.1 specification, so you will need up to date drivers to be able to use it.
Mojang probably won't make changes to support everyone, they would have to do tricks depending on machine setups which is costly and annoying, an example would be in addition to Advanced OpenGL for you (As you have NVidia), the engine would be better if it spent more time on the CPU removing stuff from drawing and preparing a good frame for rendering and then drawing the VBOs at the very end.
There is also an optimisation that Mojang are missing out on still with texture switches, currently they draw based on chunk (Next snapshot they will draw based on chunk order) but they really need to sort on the CPU based on chunk and then draw based on texture, which would minimise GPU activity and focus on CPU activity.
Those kind of small things they need to do, but it's likely that they'll add them and just have them as buttons to press in the options screen as different people will have different performance results.
I don't agree with this bit in the way you suggest (although your posts have been informative and I'm not saying anything is "wrong", per se), because there will always be a bottleneck. There's no getting around it. What that bottleneck is depends on the workload. There's no such thing as a perfect balance, as even within the same program the load varies, but different programs also have very different needs. Even if there was such a thing, this means you'd be at odds upgrading because you'd get less of the benefit. Most games especially are GPU limited, and it's probably better to have a CPU-heavy balance anyway as GPUs are usually easier and cheaper to upgrade (CPU upgrades often mean a new motherboard and sometimes RAM and CPU cooling too, which is generally more costly put together and also involves the time required of an operating system reinstall).
I don't think my PC is poorly balanced or anything, and as I said, I didn't build it as it is now. It's been a continually evolving thing. Prior to how it is now, I had a Core 2 Duo E8600 @4.0GHz paired with this video card. It made no sense to upgrade the GPU much further with that setup (let alone the GeForce 500 series was still newer so there wasn't much better anyway that didn't cost close to $400 or more). So, I upgraded my platform/CPU. The graphics card is the next obvious upgrade, but I honestly haven't had need to upgrade it yet.
Very bad lag, things taking up to 10 seconds or more to disappear when mining, cutting down trees, collecting crops. No Mods or texture packs used.
Edit: No crashing after setting the options to max. Yet, obviously, my FPS drops a lot. 40-60 FPS.
"Love as a principle and order as the basis; progress as the goal"
32 bit Windows 7 Ultimate
3 GB RAM (about 600 MB used when idle)
2.2 GHz AMD Athlon 64 X2 (dual core)
Nvidia GeForce 7600 (described as for "extreme HD gaming" but that was years ago)
32 bit (obviously) Java 7, last updated a few days ago
Whatever "optimizations" they are doing they are doing them wrong as far as my computer is concerned, as the following series of screenshots show (all same settings; full screen framerate (as I usually play) isn't much different and if anything runs better than windowed, which sometimes gets lag when turning around, in any version):
1.6.4; note that I used the seed for my first main world (-123775873255737467, default), which still allows for a comparison as I loaded it in later versions; I also usually allocate 512 MB of RAM (-Xms512M -Xmx512M) but replaced it with just -Xmx1024M to see how much they actually allocate (peak memory usage), 1.6.4 may be biased high because I generated the world in it but used memory is similar though, indicating that 1.8 doesn't need (much) more memory than older versions:
1.7.10; doesn't seem much different but see below:
14w29b, without and with VBO enabled (first and second respectively):
So yeah, some "optimizations", and those don't even show the huge lag spikes and wildly fluctuating FPS, even when standing still (1.7.x also has huge lag spikes when loading new chunks, and jungles make the game seem to about to crash; by comparison, I get some lag spikes in 1.6.4 when loading a Mega Forest biome I made, which is far more resource intensive, including laggy (server-wise) chunk generation, but far less than what 1.7 gets in jungles, including server lag that takes a few minutes to subside instead of only on chunk generation). Also, the "see below" noted for 1.7.10? Well, 1.7.x has a pretty major bug for me - the "Lag Spike of Death" - which requires pausing and leaving the game for several minutes before it magically goes away, and that doesn't always fix it unless I restart the game (had to do so once to take the screenshot above to get a representative comparison when it is running good), one reason why I still mostly play in 1.6.4. Here is what Optifine's lagometer shows when I enable it (worth noting that Optifine doesn't help FPS much but does reduce lag spikes and stabilize FPS):
(the green is rendering time, which is causing the spikes)
Note the huge spikes shooting up at regular intervals; even odder is what happens when I reduce the framerate limit to 5 FPS:
The interval, and number of frames, between spikes is unchanged (they are no longer noticeable; of course, running at 5-10 FPS isn't an option for me).
I should also note that in 1.6.4 turning Advanced OpenGL on doubles FPS (all screenshots were with it on), with less of a benefit in newer versions (1.7.10 is faster with it off), so they DID do some optimizations, especially if the option isn't available for you.
In addition, I noticed that visually "Fast" graphics is no longer much different from "Fancy", which may explain part of the performance decrease, and/or there is a bug I'm seeing; when looked at from a distance leaves become transparent, with an x-ray effect when in front of a solid block:
(having said that, when using Optifine to selectively enable/disable fast/fancy for individual things "Fast" with only leaves left on "Fast" runs as well as all "Fast" when in jungle/forested biomes so the leaves are the main culprit the difference is less than with Advanced OpenGL on/off though).
Then, of course there are the chunk updating bugs; I place a torch in a cave and only the particles render for a few seconds before it finally appears and lights up, a definite deal-breaker. As for chunk loading, multithreading probably doesn't help me much (enabling multicore chunk loading in Optifine causes lag, presumably because with only two cores and each one running the internal server and client threads there isn't any room left for more without taking away CPU time from the main threads; that said, Optifine's chunk update settings improve chunk loading without reducing performance; I originally installed it to stop the "chunks not rendering near you" bug, which never happens with it; Advanced OpenGL also causes chunks to flash invisible without it).
Also, performance (FPS does rise a bit) is oddly MUCH worse in Superflat, with intense server lag (slimes very slowly "float" around, blocks take about 5 seconds to drop after breaking, sun keeps jumping backwards, etc). By "intense server lag" I mean this:
(also occasionally happens in other versions, but not when just standing still, much less in a Superflat world, and not running behind by minutes at a time)
Lag spikes in 1.7+ also correspond with warnings like this, which don't occur in 1.6.4:
Finally, it should be noted that they recently updated (around 1.7) the system requirements with huge increases in CPU and GPU requirements from the old requirements:
Old (from Wikipedia, which hasn't updated them yet):
Looking at these my computer easily meets the old recommended requirements but doesn't meet even the minimum requirements now (I don't consider having 3 GB instead of 4 GB to be failing because 2 GB is plenty enough if you allocate 512 MB and don't try running other programs or have memory hogging background processes. Note also that my CPU is 2.2 GHz instead of 2.6 GHz but the Athlon 64 is single-core while mine (X2) is dual-core and the game does benefit from a dual-core CPU due to the separate sever/client threads).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
4 GB Ram
Windows OS 7
NVIDIA GeForce 6150se nForce 430
Java Version 7 update 60
1.7.10: ~60 fps, ~60 when moving