https://bugs.winehq.org/show_bug.cgi?id=43781
--- Comment #7 from Henri Verbeet hverbeet@gmail.com --- It's mostly that doing a good job of compiling complex GLSL is expensive, and draw-time isn't the ideal time to do that. Unfortunately it's not always possible to do it at any other time. The shader cache is in fact intended to mitigate that problem, but it only helps for shaders the driver has seen before. I.e., it should improve the experience the second time you encounter a particular scene in a game, but the first-run experience is still going to be poor.
There are a few things we could pursue on our side to improve things, but unfortunately none of those are particularly easy.