If you use Screen.DrawShape, and pass in a DTA_Alpha, it will not change, even if the alpha value changes between frames.
Here is a small example. To run it, just start a game on any map with any IWAD. The squares at each corner should fade in to full opacity, but they don't.
I've noticed this issue with the OpenGL, Vulkan, AND Softpoly renderers BTW.