Groovy has been using D3D9EX for years as its default backend. You don't even have to write anything under 'video' in the mame.ini
Calamity attempted a switch to BGFX but it turned out still too laggy, so back to 9EX until further developments.
And there's no need for other lag reduction features when frame_delay's efficiency is tested and proven, with it we can drop delay down to pcb-level or close.
(in most games with few exceptions, and depending how good is your PC, of course)
edit: it could be replaced by a different method in the future, like the obscure frame_slice. who knows about the likeliness tho? not me.
If you seek to reduce even the game's built-in natural delay (breaking emulation accuracy and gameplay legitimacy though) see with RetroArch and its often nonsensitical mishmash of backends and features that include the lossy Run-Ahead.