OpenGL: Mesh shaders in the current year
Minecraft and Why Mesh Shaders Matter for OpenGL
- Minecraft is repeatedly mentioned because a popular mod uses
GL_NV_mesh_shaderon NVIDIA; the new cross‑vendorGL_EXT_mesh_shaderwould let AMD/others run similar mods. - Minecraft is cited as one of the few large real‑world apps still using desktop OpenGL heavily, making new GL extensions practically relevant there.
- The mod in question does GPU‑driven culling and generates terrain triangles via mesh shaders, significantly cutting vertex size and draw overhead versus vanilla.
State of OpenGL vs Vulkan/Metal/WebGPU
- Many assume OpenGL is “dead,” but comments note:
- No new core spec since 4.6 (2017), yet implementations (e.g., Mesa) are still actively maintained.
- It remains widely deployed for legacy CAD, older games, and as WebGL in browsers.
- Vulkan is viewed as the official successor in spirit (“OpenGL Next”), but its verbosity and complexity are a recurring complaint, especially from hobbyists.
- Some argue Vulkan 1.3/1.4 plus newer extensions have reduced boilerplate and are now “lean and mean”; others say it still forces “maximum complexity” and effectively ties you to vendor quirks and extension hell.
- Metal is praised for offering both a simple “default device” path and more advanced control, but also criticized for heavy OO overhead.
- WebGPU is seen as conceptually cleaner than WebGL but feature‑poor and lagging hardware capabilities, with little incentive for existing WebGL apps to port.
Mesh Shaders and Related Techniques
- Mesh shaders are framed as a more flexible, compute‑like replacement for the traditional vertex/geometry/tessellation stages, operating on “meshlets” for better culling and generation.
- Current main benefit: fine‑grained GPU culling and bandwidth savings, especially for dense or voxel/voxel‑like scenes.
- Discussion touches on older OpenGL features like
NV_shader_buffer_load/buffer device addresses, which enable pointer‑style access to vertex data and very large single‑draw workflows; some lament lack of cross‑vendor support.
OpenGL API Ergonomics and Longevity
- One camp calls OpenGL a pleasant, medium‑level, cross‑platform API; another highlights decades of “sediment layers” and footguns (global state, confusing functions like
glVertexAttribPointer). - There is cautious optimism that GL will persist (often implemented over Vulkan via projects like Zink), even if no major new core versions appear.