http://bugs.winehq.org/show_bug.cgi?id=9888
Summary: Transformers (Game): No Pixel Shaders 1.1 support! Product: Wine Version: 0.9.46. Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: test AssignedTo: wine-bugs@winehq.org ReportedBy: dark.guy.2008@gmail.com
Created an attachment (id=8381) --> (http://bugs.winehq.org/attachment.cgi?id=8381) Wine's console output
On a working box with Windows XP which can run Transformers very happily, it won't even start on WINE, saying there's no pixel shaders 1.1 support.
The game requires d3dx9_31.dll and xinput1_3 to be copied on the game's root folder (or wine's c windows\system32) in order to keep running (else it says it can't find those files).
After that's done, the following errors occur (shown in attachment).
http://bugs.winehq.org/show_bug.cgi?id=9888
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|test |wine-directx-d3d
--- Comment #1 from Vitaliy Margolen vitaliy@kievinfo.com 2007-10-03 23:15:25 --- What video card and drivers? Sounds like either your drivers are not installed properly, or your hardware just does not have suitable drivers with shader support.
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #2 from DARKGuy dark.guy.2008@gmail.com 2007-10-03 23:21:22 --- (In reply to comment #1)
What video card and drivers? Sounds like either your drivers are not installed properly, or your hardware just does not have suitable drivers with shader support.
GeForce4 Ti 4200 AGP8X 128Mb. I have the latest drivers available for this card (NVIDIA 9639) installed through the official installer. Compiz, WoW, Stolen, NFS and almost any other game works flawlessly, even my own OpenGL game development, so I don't think it's my card or drivers either.
The game works and is fully playable on Windows though, so I don't see how my card couldn't handle it on Linux if it does on Windows?
http://bugs.winehq.org/show_bug.cgi?id=9888
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |minor
--- Comment #3 from Vitaliy Margolen vitaliy@kievinfo.com 2007-10-04 00:49:16 --- Probably some CAPs issue. Your hardware & drivers should support PS1.1
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #4 from DARKGuy dark.guy.2008@gmail.com 2007-10-04 01:28:24 --- (In reply to comment #3)
Probably some CAPs issue. Your hardware & drivers should support PS1.1
Please excuse my ignorance - CAPs issue? and is there any way I can be of help to help solve this bug? any additional info you need? :)
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #5 from H. Verbeet hverbeet@gmail.com 2007-10-04 14:51:13 ---
Probably some CAPs issue. Your hardware & drivers should support PS1.1
Actually, no, GF4 does not support ARB_fragment_program or ARB_fragment_shader. You currently need at least one of those for pixel shader support. While PS1.1 could in theory be implemented using register combiners as well, wine doesn't currently do that, and probably won't in the short term.
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #6 from DARKGuy dark.guy.2008@gmail.com 2007-10-05 02:17:06 --- (In reply to comment #5)
Probably some CAPs issue. Your hardware & drivers should support PS1.1
Actually, no, GF4 does not support ARB_fragment_program or ARB_fragment_shader. You currently need at least one of those for pixel shader support. While PS1.1 could in theory be implemented using register combiners as well, wine doesn't currently do that, and probably won't in the short term.
In that, you're correct, since I can't use CF's water/blur plugins which need it, but if it works on Windows it should work on WINE too... there must be something that Windows/D3D does that allows my card to run it (very happily at 1024x768 if I can add) and I don't think WINE should be no exception.
Again, and sorry for repeating myself... is there anything I can do to help fix this?
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #7 from H. Verbeet hverbeet@gmail.com 2007-10-19 05:21:48 ---
Again, and sorry for repeating myself... is there anything I can do to help fix this?
Other than implementing pixel shaders on top of register combiners or getting a newer card, probably not.
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #8 from DARKGuy dark.guy.2008@gmail.com 2007-10-19 08:03:22 --- (In reply to comment #7)
Again, and sorry for repeating myself... is there anything I can do to help fix this?
Other than implementing pixel shaders on top of register combiners or getting a newer card, probably not.
It's unlogical to get a new card when the game works perfectly on Windows (reached hoover dam already), so it's obvously a driver or WINE problem - I'd say WINE, because I have working shaders in WoW... how come?.
Someone once told me in #winehq something I understood this way: You WINE guys want to do the job well, the right way. What's holding back to do this, then? lack of knowledge? if it's so I could at least try to encourage others with PS knowledge to come and help?...
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #9 from H. Verbeet hverbeet@gmail.com 2007-10-20 01:09:16 --- It appears to me you're missing some background information, and misunderstood my comment #5 and its logical conclusion, comment #7.
The first step is understanding what PS 1.1 actually means. MSDN has some information on that topic: http://msdn2.microsoft.com/en-us/library/bb219842.aspx http://msdn2.microsoft.com/en-us/library/bb219851.aspx http://msdn2.microsoft.com/en-us/library/bb172917.aspx http://msdn2.microsoft.com/en-us/library/bb219849.aspx
What wined3d has to do is map that Direct3D functionality to equivalent OpenGL functionality. The direct equivalents of Direct3D pixel shaders in OpenGL are fragment programs and GLSL fragment shaders: http://www.opengl.org/registry/specs/ARB/fragment_program.txt http://www.opengl.org/registry/specs/ARB/fragment_shader.txt http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf
If either of those is present wined3d can currently use that to implement support for Direct3D pixel shaders. Unfortunately, as you can see at http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_fragment_pr... and http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_fragment_sh..., your graphics card supports neither of those. You can also verify this by looking at the output of "glxinfo".
However, the register combiners OpenGL extensions provides much of the functionality that PS 1.1 provides, (http://www.opengl.org/registry/specs/NV/register_combiners.txt & http://www.opengl.org/registry/specs/NV/register_combiners2.txt) and these extension are supported by your graphics card: http://www.delphi3d.net/hardware/extsupport.php?extension=GL_NV_register_com... http://www.delphi3d.net/hardware/extsupport.php?extension=GL_NV_register_com...
The problem is that because the interface provided by register combiners is quite different from the one provided by Direct3D pixel shaders, it will take a significant amount of work to implement pixel shaders on top of register combiners within wined3d. This makes it somewhat unlikely anyone will implements this anytime soon.
http://bugs.winehq.org/show_bug.cgi?id=9888
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |loacoon@hotmail.com
--- Comment #10 from Roderick Colenbrander thunderbird2k@gmx.net 2008-02-27 10:08:29 --- *** Bug 11752 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=9888
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|minor |enhancement Priority|P2 |P5 Summary|Transformers (Game): No |No Pixel Shaders 1.1 support |Pixel Shaders 1.1 support! |on Geforce3/4 and Radeon | |8500/9000 hardware
--- Comment #11 from Roderick Colenbrander thunderbird2k@gmx.net 2008-02-27 10:10:00 --- Changed the title and made 11752 a duplicate of this bug. Further this bug is very low priority.
http://bugs.winehq.org/show_bug.cgi?id=9888
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |monomakh@mail.ru
--- Comment #12 from Stefan Dösinger stefandoesinger@gmx.at 2008-04-07 05:59:13 --- *** Bug 11527 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=9888
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefandoesinger@gmx.at Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #13 from Stefan Dösinger stefandoesinger@gmx.at 2008-04-07 06:03:46 --- Just a small update: I have implemented fixed function fragment processing via GL_ATI_fragment_shader, the extension on ATI r200 cards. This doesn't give pixel shader support yet, but the infrastructure is there now. Implementing pixel shaders on this card is now only a matter of coding the needed code, no design changes are needed any more.
For the Nvidia couterpart it is a bit harder, because the functionality is fragmented across different extensions and they work quite differently than d3d pixel shaders.
http://bugs.winehq.org/show_bug.cgi?id=9888
Andrew randrik@mail.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |randrik@mail.ru
--- Comment #14 from Andrew randrik@mail.ru 2008-07-31 17:09:52 --- (In reply to comment #13)
Just a small update: I have implemented fixed function fragment processing via GL_ATI_fragment_shader, the extension on ATI r200 cards. This doesn't give pixel shader support yet, but the infrastructure is there now. Implementing pixel shaders on this card is now only a matter of coding the needed code, no design changes are needed any more.
For the Nvidia couterpart it is a bit harder, because the functionality is fragmented across different extensions and they work quite differently than d3d pixel shaders.
I found this link some time ago:
http://nifelheim.dyndns.org/~cocidius/ps14toATIfs/
And Stefan, thank you for all your hard work!
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #15 from Stefan Dösinger stefandoesinger@gmx.at 2008-07-31 17:57:44 --- I think this code itself is not very useful as is, but it is probably a good guideline. There are a few differences between what the code does and what Wine needs:
* This code uses GL_ATI_text_fragment_shader, whereas the open source dri driver has GL_ATI_fragment_shader only. The concept is the same, but the programming interface slightly different(actually, the docs say so. The code uses GL_ATI_fragment_shader)
* The code parses assmbly shaders, in WineD3D you have the shader bytecode(which is easier to read in a program though)
* Also watch out with the license. It is not LGPL, but I think you are free to use the code if you keep the copyright notices intact.
If anyone wants to implement pixel shaders, feel free to ask me any question. This is roughly what you have to do:
-> Provide a shader_backend_t structure which implements the functions using atifs. For the start don't care about vertex shaders. The structure will have to borrow code from the arb program code for vertex shaders.
-> The bytecode format is not documented(it was, docs were removed), but the arb_program_shader.c and glsl_shader.c files have code parsing the tokens. The format is a pretty simple collection of flags though
-> For documentation how to use the atifs extension, refer to the specification of the extension, and see how the fixed function pipeline implementation makes use of it.
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #16 from Austin English austinenglish@gmail.com 2009-01-29 11:44:23 --- Is this still an issue in current (1.1.13 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #17 from joaopa jeremielapuree@yahoo.fr 2009-01-29 13:22:33 --- Yes. Anyway, it was the last's year SOC. And no candidate applied for it :(
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #18 from Austin English austinenglish@gmail.com 2009-07-30 11:57:16 --- Is this still an issue in current (1.1.26 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=9888
--- Comment #19 from Stefan Dösinger stefandoesinger@gmx.at 2009-07-31 06:44:16 --- Yes it is, and I don't think it will ever get fixed. These cards are just too old for me(ie, as part of my job at codeweavers) to care about, so unless a volunteer steps forward this bug is probably a WONTFIX or LATER.
http://bugs.winehq.org/show_bug.cgi?id=9888
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WONTFIX
--- Comment #20 from Austin English austinenglish@gmail.com 2009-07-31 11:13:28 --- (In reply to comment #19)
Yes it is, and I don't think it will ever get fixed. These cards are just too old for me(ie, as part of my job at codeweavers) to care about, so unless a volunteer steps forward this bug is probably a WONTFIX or LATER.
Marking WONTFIX then.
http://bugs.winehq.org/show_bug.cgi?id=9888
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Dmitry Timoshkov dmitry@codeweavers.com 2009-08-01 02:04:27 --- Closing.