https://bugs.winehq.org/show_bug.cgi?id=57713
Bug ID: 57713 Summary: Tom Clancy's Rainbow Six: Lockdown leads to a black screen on launch Product: vkd3d Version: 1.14 Hardware: x86-64 URL: https://www.moddb.com/games/tom-clancys-rainbow-six-lo ckdown/downloads/rainbow-six-lockdown-demo OS: Linux Status: NEW Keywords: download Severity: minor Priority: P2 Component: hlsl Assignee: wine-bugs@winehq.org Reporter: andrey.goosev@gmail.com Distribution: ---
Continuation of bug 56855.
0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/vsdiffusepmsmsemdynlit.hlsl:499:20: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/vsdiffusepmsmsemdynlit.hlsl:549:25: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/vsdiffusepmsmsemdynlit.hlsl:550:25: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 ... 0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/skinfragments.hlsl:510:20: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/skinfragments.hlsl:632:6: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 c:/program files/ubisoft/red storm entertainment/rainbow six lockdown demo/data/shaders/skinfragments.hlsl:666:22: W5300: Implicit truncation of vector type. 0024:err:d3dcompiler:D3DCompile2 vkd3d:0024:fixme:fold_cast Cast from float to float4. vkd3d:0024:fixme:fold_cast Cast from float to float3.
1.14-325-g5bfcd811
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.