From my former colleagues at Feral I believe both ‘Deus Ex Mankind Divided’ and ‘Rise of the Tomb Raider’ use and require tessellation.
If you’d ever worked on a modern game engine you would know that these features are fully embedded and perform few but critical functions. They are impossible to remove from the API standards now.
UE4 uses geometry shaders for a range of volumetric effects and the workarounds for Metal have non-zero performance costs and are hacks that are intermittently a maintenance nightmare. Unfortunately we *need* to do things this way as it is the only way to leverage all the dedicated silicon on modern desktop GPUs. Compute solutions for this tend to be more complicated and less efficient unless you build a heck of a lot of infrastructure - I think only Frostbite is really at that level.
In future when we make use of the DrawIndirect, MultiDrawIndirect and ExecuteIndirect functions it will not be possible to suppprt Metal tessellation as it stands today. That’s because Apple’s approach require that the CPU allocate a separate temporary buffer for each tessellated draw call, which you just don’t when using Indirect functions as in that case the draw command data is known only to the GPU. There is no way to fix this that won’t cripple performance or result in some objects just not rendering at all or consuming many times the video memory of PC, any of which would be unacceptable.
I’ll also admit that this is a change in stance for me, the growing use of DrawIndirect/MultiDrawIndirect/ExecuteIndirect has shown me the future. They really highlight problems that I hadn’t really been thinking about before.