Quick update. I converted the planet to use the planet patches. It still looks really with absolutely no subdivisions. The first two images show the planet in medium quality (9 vertices per edge) and second two are at the highest quality (129 vertices per edge). The new system handles 524288 triangles with ease (131072 for planet, same for atmosphere and the second pass rendering of edges). Since the data stays on the card it's very optimal. I can probably pump it up a lot and it won't hitch. The other great thing is that this system is extremly fast at setting up the structure, the overall triangle structure is easier to deal with since I don't have to deal with situations where where a triangle is subdivided but it's points aren't updated yet.

One issue that you can notice a bit in the second picture is that the new system don't distribute the triangles as evenly around a sphere and the old system did. I'm not very worried about that since it shouldn't matter once the patches are subdivided a bit.

First win: I did some stress testing of the new patches. It seems to be almost 20% faster!! Before I could get just under 80 million Triangles per second and that was with one draw call per 131072 triangles. Now I'm getting around 95 million triangles and that's with around 32 draw calls per planet, each draw call is limited to 16384 triangles (max patch resolution). I do the testing by adding planets until the framerate begins to drop below 60 so these are the number of triangles while maintaining 60FPS, also they are textured, I haven't been able to figure out why it's rendering black.

Second win: Since the triangle hierarchy is a lot shallower the generation time for the triangles is incresed probably atleast a thousand fold. Before it would take around 10 minutes to generate a planet with a resolution of 131072 triangles. To do the same doesn't even affect framerate anymore.

Third win: The code is amazingly simpler. Before I had cases where a triangle's point may not all be updated which could cause cracking and I had to take a lot of special care to make sure everything subdivided smoothly. Now I just have to worry that no patch is more than 1 level of subdivision different than it's neighbours.

Finally: I was also able to see the cost of the atmoshperic shader. I can keep 60FPS at max resolution using 3 textured planets (1.5 million triangles total). At max resolution the proper planet and it's atmosphere will drop the framerate down to 30fps (1 million triangles). This approximately says that the Vertex shader I'm using is 3 times as expensive as the fixed pipeline (1.5mil at 60fps = 3 mil at 30fps) which actually doesn't sound that bad now that I think about it.

Quick picture description: First two are the planet at medium resolution (9x9x9), second two are at max resolution (128x128x128), The last two are the stress test, first without the shader, second with it.