https://bugs.winehq.org/show_bug.cgi?id=55740
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com --- Created attachment 75336 --> https://bugs.winehq.org/attachment.cgi?id=75336 shader
Mentioned glsl errors, or assertion in spirv case, happen due to register allocation tracking bug. For range allocations variable sizes that are not multiple of register size are not tracked correctly, in this case it's an output structure:
1 struct VS_OUTPUT 2 { 3 float4 dx_Position : SV_Position; 4 float4 gl_Position : TEXCOORD2; 5 noperspective float4 v0 : TEXCOORD0; 6 noperspective float2 v1 : TEXCOORD1; 7 };
This leads to incorrect dcl_temps value, which leads to off by one register count in glsl. And that's why glsl compilation fails later with undeclared variable error. With that fixed I see proper "Hello World" text rendering.
Let's keep this open until this second issue is resolved.