Naar inhoud springen
GAMES · REVIEWS · DATABASE
Forum

Mesh Shaders and Primitive Shaders: Replacing Fixed-Function Vertex Pipelines: Advanced Implementation and Real-World Architecture

Home › Forums › Minecraft – Redstone, Shaders & Technical Builds › Mesh Shaders and Primitive Shaders: Replacing Fixed-Function Vertex Pipelines: Advanced Implementation and Real-World Architecture

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #117462
    User AvatarSam Edwards
    Member

    Been pushing mesh shaders heavily in my engine’s forward+ renderer, and I’m hitting some real questions about the fixed-function pipeline death. Everyone talks about geometry amplification and compute-style flexibility, but the practical trade-offs are murkier than the whitepapers suggest. When you’re culling on the GPU instead of relying on the old primitive shader discard model, how are you handling the dispatch cost for small draw batches? I’ve seen cases where mesh shader overhead actually tanks throughput on scenes with thousands of tiny objects compared to a well-tuned traditional pipeline. Are you batching by meshlet clusters or letting each draw call dispatch independently?

    On the rasterization side, I’m experimenting with micro-polygon tessellation driven by screen-space error metrics, but I’m struggling with the LOD transition seams causing visible popping during dynamic camera movement. How are you guys implementing level-of-detail culling without the hitches that kill frame times in competitive titles? Also worth noting—on current-gen GPU architectures, does the increased register pressure from large mesh shader outputs actually bottleneck occupancy, or is that a non-issue with the newer wavefront schedulers? Would love real benchmark data from anyone running head-to-head mesh vs. primitive shader comparisons across different frame budgets.

    🎮 Battlestation & Rig: i5-13600K | RTX 4070 Super | 32GB DDR5 6000 CL32 | DeepCool LT720 | Alienware AW2725DF 27″ 360Hz QD-OLED | Razer Huntsman V3 Pro TKL + Razer Viper V3 Pro + Pulsar Superglide Glasspad | Beyerdynamic DT 990 Pro (250 Ohm) + FiiO K5 Pro ESS DAC
    📍 San Jose, CA (USA)
    "Pixel response over resolution every single day."
    #118079

    Mesh and primitive shaders fundamentally restructure how geometry gets fed to the rasterizer. Instead of the old fixed-function vertex stage + optional geometry shader doing per-vertex CPU-side submission, a mesh shader runs as a dispatchable workgroup (what AMD calls a “primitive shader”) that ingests a small input patch and emits an entire mesh or primitive list directly into its own shared/local memory?

    🎮 Battlestation & Rig: Ryzen 5 7600X | RTX 4070 Super Dual | 32GB DDR5 6000 CL30 | FormD T1 SFF | Samsung Odyssey Neo G8 32″ 4K 240Hz Mini-LED | Razer Huntsman V3 Pro TKL + Razer Viper V3 Pro + Pulsar Superglide Glasspad | HyperX Cloud III Wireless + Dolby Atmos for Headphones
    📍 Helsinki (Finland)
    "Chasing the silicon lottery one megahertz at a time."
    #118990
    User AvatarElla Cooper
    Member

    The core win of mesh shaders isn’t really about generating more geometry—it’s about killing the fixed-function vertex fetch bottleneck and giving the driver explicit control over culling. In the old pipeline you paid for a mandatory vertex shader pass plus optional tessellation and geometry stages, all with rigid data flow. With mesh+task shaders you’re essentially dispatching compute workgroups that produce vertex streams on demand. The task shader handles the coarse work—culling whole draw batches, doing frustum/frustum-and-OBB tests, and generating instanced meshlet lists—while the mesh shader only produces the vertices that actually matter. On the PS5 this is especially relevant since mesh shaders execute as compute shaders on the CUs, so

    "League of Legends Master Tier (Mid/ADC) • EU West Server"
    #119692
    User AvatarSam Edwards
    Member

    Alright guys, well I never expected this to end the way it did. After three pages of you lot going deep on mesh shader task/specializer stages, persistent primitives, and the whole fixed-function pipeline death match, my stuttering framedrops during the instanced compute pass finally cleared up. Turns out it was the Resizable BAR setting in the BIOS being disabled the whole time — I flipped it on, re-ran the same draw call batch, and it just… ran. No shader rewrites, no pipeline state changes, nothing. Thanks for all the actual education on primitive shaders though, I’ll get to that eventually.

    Audio Rig:
    "– Headphones: Sennheiser HD 600"
    "– DAC/Amp: Schiit Magni & Modi Stack"
    "– Mic: Shure SM7B + GoXLR"
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Zoeken op Gamer24H

Voer minimaal 3 tekens in.

Ontdekken

WEERGAVE

Kies je kleurthema

Automatisch mode follows your device and switches to Xbox, PlayStation, or Nintendo colors on matching stories. Your manual choice stays on this device.

🌍 KIES TAAL 25 Talen
🔍