One big caveat with GNOME Shell is that it does only unredirect fullscreen SDL windows, which covers a lot of native games, but not anything running in Wine.
I have seen a few cases where performance in a game drops to the floor because of this, so for the moment I'm patching Mutter to unredirect anything running fullscreen:
Enable unredirect for all fullscreen windows. Not just unredirect-override.
@@ -1219,7 +1219,7 @@ meta_window_actor_should_unredirect (Met
MetaScreen *screen = meta_window_get_screen (metaWindow);
MetaWindowActorPrivate *priv = self->priv;
- if (meta_window_is_override_redirect (metaWindow) && priv->opacity == 0xff && !priv->argb32)
+ if (priv->opacity == 0xff && !priv->argb32)
int screen_width, screen_height;