https://bugs.winehq.org/show_bug.cgi?id=57713
Francisco Casas fcasas@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fcasas@codeweavers.com
--- Comment #1 from Francisco Casas fcasas@codeweavers.com --- The game tries to compile vs_1_1 shaders that use a very large uniform array.
Simplifying, something like this:
int i; const float4x4 mats[100];
float4 main() : POSITION { return mul(mats[i], float4(1, 2, 3, 4)); }
Our current approach for loading arrays consists in basically loading all array elements. This is what pixel shaders do since they don't allow relative addressing.
But vertex shaders as soon as vs_1_1 have the a0 register which allow relative addressing.
Without relative addressing support, we are compiling huge shaders (in both instructions and temp registers) that take a long time to compile and to run (if they can even run), which results in the black screen.
I will get to work on SM1 vertex shader relative addressing.