
It's still very far from optimal and it'd absolutely require a bit of photoshopping to keep the current high quality standards... which I cannot afford right now, unfortunately.
Just to name a few criticalities, I had to decompress to TGA and compress back to build the mipmapped DDS texture atlas.
I didn't add proper padding at edges to avoid bleeding artifacts either.
The grass texture you'll see in foreground in my screenshots is especially bad and problematic, having basically no solid areas. That will cause sorting issues with units. So it's advisable to replace that with several smaller (and possibly almost spherical) clumps, translucent just at contours and providing a good solid mask to assure depth writing/sorting.
But the list goes on...
In all cases, even this brute force approach shows evident speed gains.
It basically involves one texture atlas and two draw calls in total, one for the alpha test rendering pass first, and only then blending (ZWrite off) to sharpen the edges.


There's one "giant" static vertex buffer and a smaller dynamic index buffer (staged/no_overwrite locking technique, but uses 32-bit indices instead of the common 16-bits, though).
The visible subset is streamed in after SIMD-accelerated sphere frustum culling performed at the original shrubbery grid level (16x16 tiles, each one extending 16384 map units). Testing each quad doesn't make a lot of sense in this case imho. Testing only chunks is much cheaper overally.
Notice that there's no maximum drawing distance and fading implemented yet.
So waaay more billboards showing up compared to any vanilla scene (look at the horizon)...
https://i.imgur.com/BAf8P0t.jpg (original, steady 15fps)
https://i.imgur.com/zwa8LWM.jpg (patched, steady 29fps)
The count of draw calls in the histogram "slightly" diverging from the order of magnitude we got used to (tens of thousands)...
https://i.imgur.com/SoyeLlc.jpg (original)
https://i.imgur.com/vB0mJcb.jpg (patched)
Both taken from a debug build of the DLL.
The second one is also outdated and instrumented by NVidia Nsight, so FPS are certainly underestimated.
My video card is a rather old GTX770 (released on May 2013).
With some FXAA added from the NVidia Driver Panel, I think I'll be happy with the results for next 24 hours.

Seriously, it's just a base from which to start.
That’s all for now.

Bye everyone.