I have only tried OpenArena, which is ioquake3.
A workaround for the triangle mess is to start the game with "LIBGL_ALWAYS_INDIRECT=1 openarena". It reportedly also fixes other games, like vdrift.
Unfortunately, it crashes from time to time when using LIBGL_ALWAYS_INDIRECT. It didn't use to crash in the direct mode (but then it's unplayable).