QEMU X2: The Threat (2003) Demo & Age of Mythology (2002) -- WineD3D with GLon12
Intel GPUs OpenGL implementation can sometimes be disappointing for WineD3D, especially for Direct3D8. Thankfully, the "mesa-dist-win" project provides alternative OpenGL implementation using Microsoft contributions to MESA open-source that layered Gallium3D OpenGL over D3D12 for WSL. This helped saving Intel OpenGL from many embarrassing rendering errors with WineD3D. The troubles of Intel OpenGL with WineD3D OpenGL backend has been a long standing issue from Haswell till Iris Xe Graphics that I was testing. The rendering errors are exactly the same and 100% reproducible native or from QEMU MESAGL on Windows 10/11 host. Linux does not suffer the same issues as Intel GPUs always use MESA open-source Gallium3D OpenGL implementation.
The list of games/demos that are affected:
- 3DMark 2001SE
- Grand Prix 4
- Shadow of Memories
- Age of Mythology
- X2: The Threat
GLon12 fixed all those games for Intel GPUs. Intel Iris Xe Graphics is quite capable but unfortunately WineD3D and Intel Graphics did not talk to each other. Nevertheless, QEMU MESAGL with GLon12 remains experimental and unstable. It makes QEMU crash-prone. It cannot handle WineD3D DDRAW.DLL for games based on DirectX 7.0 and below. This still needs to be worked on, partly due to SDL2 isn't quite happy with GLon12.
Other limitation with GLon12 is WineD3D version. Wine-5.0.5 seems to be the best. If the games requires more recent Wine versions, then GLon12 suffers a huge performance hit with later versions of Wine. Similar performance hit can be observed on Linux, too. It seems that WineHQ spent very little efforts in performance validation in delivering WineD3D.
While the good thing about GLon12 is full-screen rendering. Unlike real OpenGL, the D3D12 backend stretched and matched QEMU in full-screen simply with the "Ctrl-Alt-F" shortcut.
Kudos to "mesa-dist-win" project for providing up-to-date, prebuilt MESA 3D drivers for Windows.
https://github.com/pal1000/mesa-dist-win