Updated the renderer to be a culling mesher instead of drawing each block every frame. Also I changed the hash function for the chunks to use murmur32 instead of crc32. You can see the stats for the chunk hash map on the screen, doing this I found out that the crc32 hash wasn't distributing the hash uniformly. I also implemented frustum culling of the world so only chunks that are in the camera frustum are actually generated.
I'm only at a render distance of 10 chunks so I think I still need to improve the performance if I want to reach something like 32 chunk render distance. I think that'll be changing the mesher to a greedy mesher, and speeding up the meshing code.
At the end of the video you can see where the world hasn't generated yet