The best thing to do is really to get the bitmaps converted to 24-bit. Even doing that once at runtime won't be bad. In short all generic bitmap code ('DIB stuff') is delegated to X11. The problem is that in general X11 needs to have the bitmaps at the same color depth X is running at. We perform software conversion back and forth but this can be bad. These days conversion is not always needed anymore when XRender is around, but I doubt XRender is hardware accelerated right now in XQuartz but still it should be better than the classic conversion things we are doing.