I have a quick story to share, one that will hopefully help any users that had the same problem I did.
Also, do keep in mind that I've been using Allegro for years, but I do not claim to know everything about it. Some of the stuff I say here might be absolute nonsense -- feel free to correct me!
I'm working on a game that had a very peculiar glitch: if you zoomed out, the stage would gradually fade into darkness, but the objects and HUD would remain fine. The big problem was that this only happened under Linux; it was fine under Windows.
For months, I tried to discover the problem. Eventually, I discovered that the problem would not happen if I had mipmapping off. Well, time to submit this to the Allegro forums, I thought to myself. But I decided to take it a step further, and tried to understand why that was.
The map geometry is fixed, so instead of drawing every polygon every frame, I just drew it on image buffers once, and then drew said buffers in-game. Well, if mipmapping was the problem, surely everything would be fine if I made my buffers' dimensions not be in the power of 2. ...Oh, they already aren't (800 by 800).
I eventually checked the Allegro source code. And then I noticed an interesting comment on one of the files... OpenGL, for backwards-compatibility purposes, makes it so that every texture is actually in power-of-two dimensions, by adding padding. This would explain why the problem only happens with mipmaps on, and under Linux! Linux uses OpenGL (Windows uses Direct3D by default), and mipmaps are only valid for bitmaps with powers of two -- which is actually every bitmap in Allegro's OpenGL.
...But why in the world was it fading out? If the problem was figuring out why something is or isn't using mipmapping, that'd be fine, but I still had to find out why everything went black. It was actually something simple, that should've been obvious: I first create the buffer images in their final size. They start off completely transparent. Only then do I draw my polygons on top of them. Turns out the mipmaps are generated when an image is created, so any change that happens from there on out does not get transferred to the mipmap. Because of linear interpolation while drawing, the further I zoomed out (the closer the image buffers were to taking less space on-screen, and hence, the closer the next mipmap level was), the darker everything became!
I fixed it by copying my buffer onto a different bitmap, with al_copy_bitmap, which recreated the image's mipmaps.
So in conclusion, the map was fading because the buffer map images were being mipmapped into nothingness, which was only the case because mipmaps don't update as you update your image, and mipmaps were only valid for those bitmaps in the first place because of OpenGL backwards compatibility.
It was a crazy ride, but for the first time in ages, I was actually pleased about solving that bug. You know those glitches you spend ages finding the solution for, only for it to be a typo? That's so disappointing! For this bug, I actually investigated, read source codes, and experimented, and in the end, I came up with a pretty satisfying explanation.
I hope this helps anyone else that is wondering why mipmaps are going crazy under Linux (or Windows).