http://bugs.winehq.org/show_bug.cgi?id=17832
Summary: FEAR 1.08: Pixelshader compilation fails with ARB backend Product: Wine Version: 1.1.17 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: liquid.acid@gmx.net CC: hverbeet@gmail.com
Tested FEAR 1.08 with the ARB backend and noticed the console filling with: fixme:d3d_draw:drawStridedFast >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glDrawElements @ drawprim.c / 224
Reason seems to be that a multitude of the pixelshaders the game tries to compile are incorrectly translated by wined3d: fixme:d3d_shader:shader_arb_generate_pshader HW PixelShader Error at position 1758: "line 76, column 11: error: invalid operand variable\n"
The main problems seems to be the RCP opcode which pops up in company with an Ax (A0. A1, etc.) register. Sadly no such Ax is ever declared in the fragment shader.
Example: RCP R0.w, A1.w;
As far as I can see it's really only the RCP opcode and nothing else. There a lot pixelshaders that fail compilation but it's always because of something like in the example.
CCing the experts (aka Stefan and Henri)
http://bugs.winehq.org/show_bug.cgi?id=17832
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefandoesinger@gmx.at
http://bugs.winehq.org/show_bug.cgi?id=17832
--- Comment #1 from Tobias Jakobi liquid.acid@gmx.net 2009-03-28 15:28:41 --- I have to state that this doesn't look like a regression bug.
I was also telling nonsense on IRC. I can't reproduce this problem with HL2, the only application I can trigger the bug is FEAR at the moment.
The source of the problem is this original D3D asm line: rcp r0.w, t1.w
That's from a ps_2_0 program, it's converted to "RCP R0.w, A1.w".
According to stefand this has to do with aliasing of the Ax registers.
http://bugs.winehq.org/show_bug.cgi?id=17832
--- Comment #2 from Tobias Jakobi liquid.acid@gmx.net 2009-03-28 16:04:47 --- Created an attachment (id=20171) --> (http://bugs.winehq.org/attachment.cgi?id=20171) IRC discussion with stefand
http://bugs.winehq.org/show_bug.cgi?id=17832
--- Comment #3 from H. Verbeet hverbeet@gmail.com 2009-03-29 06:45:32 --- Essentially the ARB backend is a mess. Either way, 2.x shaders aren't really supported there, we only report 1.1 for vshaders and 1.4 for pshaders. We should enforce that, actually.
http://bugs.winehq.org/show_bug.cgi?id=17832
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #4 from Tobias Jakobi liquid.acid@gmx.net 2009-04-26 08:59:33 --- The shader compilation errors no longer occur with wine-1.1.20
Resolving this one to FIXED. Looks like the ARB cleanup done by Henri also removed the problem :)
http://bugs.winehq.org/show_bug.cgi?id=17832
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org 2009-05-08 12:50:28 --- Closing bugs fixed in 1.1.21.