I am involved in a project that had been modified to run on Apple and Linux computers, when it was originally Windows only. Specifically, Metal and Vulkan renderers have been written alongside the Direct3D one.
Something I have noticed is that there is a static startup image for 3-4 mins with the text "warming shaders", which is not there in the Windows version. This screen is not present after the first launch.
Searching online did not give me any results that shed light on this. The one SO question asked about "background prewarming" which I presume could be used to avoid a long load screen? In any case, it doesn't explain what it IS.
Simply put, what is shader warming, and why does Metal and Vulkan seem to require it? I have experience with OpenGL from many years ago where shaders were compiled from source at runtime. Is this a related concept? As I understand it, both Metal and Vulkan use binary/bytecode shaders, so compiling shouldn't be necessary.