http://bugs.winehq.org/show_bug.cgi?id=10423
Summary: shader_glsl_lit() glitch Product: Wine Version: CVS/GIT Platform: All OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: wine-directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: chris@chris-wilson.co.uk
Created an attachment (id=9117) --> (http://bugs.winehq.org/attachment.cgi?id=9117) Restore the src.x>0 conditional
Some objects in Civ4 (and other games) are rendered incorrectly as a solid colour (using the nvidia 100.14.19 driver). A git bisection identified commit 468309e055b5e14f6da919b173eb199954b65ef1 Author: Stefan Dösinger stefan@codeweavers.com Date: Sun Oct 28 21:21:24 2007 +0100
wined3d: Get rid of the conditionals in the glsl lit implementation.
as the first bad commit. Applying the reverted patch to head confirms that it is the same issue. Reading the patch it would appear to be an incorrect transformation if the GLSL specification of pow() defines 0^0 as 1 (my edition of the orange book does not specify its behavior).
http://bugs.winehq.org/show_bug.cgi?id=10423
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefandoesinger@gmx.at Severity|major |normal
--- Comment #1 from Lei Zhang thestig@google.com 2007-11-12 13:46:40 --- CCing Stefan
What other games are affected by this?
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #2 from Stefan Dösinger stefandoesinger@gmx.at 2007-11-12 13:59:56 --- Hmm indeed, lit defines 0^0 as 1, while glsl leaves it undefined. Does it also work to test for power == 0.0 instead of src0.x?
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #3 from Stefan Dösinger stefandoesinger@gmx.at 2007-11-19 04:05:01 --- I wrote a test for the 0^0 behavior of lit on windows, and software vertexprocessing returns 0.0. Hardware VP returns 1.0 however. My driver(nvidia 100.14.19) on a geforce 7400 returns 1.0 as well. Since Windows behaves differently from implementation to implementation games are unlikely to depend on this. Propably what you see is a different bug?
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #4 from Stefan Dösinger stefandoesinger@gmx.at 2007-11-19 04:07:36 --- I forgot to add, I tried CIV 4 myself(version from Steam), and I could not see any issues. Can you attach some screenshots showing the problem?
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #5 from Stefan Dösinger stefandoesinger@gmx.at 2007-11-19 04:22:01 --- Created an attachment (id=9245) --> (http://bugs.winehq.org/attachment.cgi?id=9245) Testing patch
Can you try this patch? It reinstalls the check in a slightly different way, and also contains a d3d9 shader test. The test currently tests for 0.0, and it succeeds on Windows because we use Software Vertex processing in our visual tests. If you change the D3DCREATE_SOFTWARE_VERTEXPROCESSING to D3DCREATE_HARDWARE_VERTEXPROCESSING in dlls/d3d9/tests/visual.c the test will most likely fail.
http://bugs.winehq.org/show_bug.cgi?id=10423
killertux killertux@suomi24.fi changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, regression
--- Comment #6 from killertux killertux@suomi24.fi 2008-03-21 21:36:35 --- I added few keywords... and btw this also happens in Painkiller SP Demo 3 when some turret and armor textures are partly white(only those)... reverting that bad commit fixed it in Wine 0.9.58
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #7 from Stefan Dösinger stefandoesinger@gmx.at 2008-03-22 06:40:14 --- Killertux, which driver are you using? Its kinda interesting that this breaks anything because with my changes lit now shows the same behavior as with hardware vertex processing on windows and ARB shaders.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #8 from killertux killertux@suomi24.fi 2008-03-22 08:35:45 --- GeForce 6600 GT nVidia binary blob 100.14.19
next I try that Testing patch... and try 169.12 driver.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #9 from killertux killertux@suomi24.fi 2008-03-30 13:00:33 --- Wine 0.9.58-303-g8529a3c and nVidia binary blob 169.12
Seems like it worked same as with 100.14.19 with Testing patch armor and turret models looked correct and without it looked partly white... this was with Painkiller Demo 3... and quick look I did not notice any disadvantage with the Testing patch.
http://bugs.winehq.org/show_bug.cgi?id=10423
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=10423
Clerc Mathias tlarhices@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tlarhices@gmail.com
--- Comment #10 from Clerc Mathias tlarhices@gmail.com 2008-05-12 20:06:33 --- I just ran in the same problem with painkiller on today's GIT. I didn't tried reverting the original patch, but applying the one attached here didn't do anything to the problem (but still applied without error).
http://bugs.winehq.org/show_bug.cgi?id=10423
jim jimportal@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jimportal@gmail.com
--- Comment #11 from jim jimportal@gmail.com 2008-07-02 21:32:30 --- Is this still a problem in Painkiller with a recent Wine and nVidia drivers?
I could not duplicate even with high detail levels (Some slow downs but no white or single colored textures that I could see).
I'm using the 173.14.09 drivers (GeForce 7950 GX2), wine-1.1.0, and Painkiller 1.64.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #12 from Clerc Mathias tlarhices@gmail.com 2008-07-02 21:45:30 --- For me this bug does not appear with NVidia graphic card but is still present when I switch back to my Intel graphic card.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #13 from Austin English austinenglish@gmail.com 2008-12-30 10:11:58 --- Is this still an issue in current (1.1.11 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=10423
SexyBoBo bobothn@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bobothn@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=10423
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified
--- Comment #14 from Austin English austinenglish@gmail.com 2009-01-18 03:46:53 --- Removing deprecated CVS/GIT version tag. Please retest in current git. If the bug is still present in today's wine, but was not present in some earlier version of wine, please update version field to earliest known version of wine that had the bug. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=10423
Georgy Yunaev gyunaev@ulduzsoft.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyunaev@ulduzsoft.com
--- Comment #15 from Georgy Yunaev gyunaev@ulduzsoft.com 2009-12-15 23:24:06 --- I can confirm that this bug is still reproduced on wine-1.1.34. Tested with NVidia proprietary video driver 190.42-9.
http://bugs.winehq.org/show_bug.cgi?id=10423
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #16 from Austin English austinenglish@gmail.com 2009-12-16 03:47:20 --- Confirming then.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #17 from Henri Verbeet hverbeet@gmail.com 2010-09-02 07:46:06 CDT --- - Does this still happen? - Does reverting that change still help? - What's a good way to reproduce this? Painkiller demo? Any specific steps?
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #18 from Wylda wylda@volny.cz 2010-09-04 17:34:02 CDT --- Created an attachment (id=30560) --> (http://bugs.winehq.org/attachment.cgi?id=30560) Screen shot from painkiller sp demo 3 under wine-1.3.2
- Does this still happen?
- Does reverting that change still help?
- What's a good way to reproduce this? Painkiller demo? Any specific steps?
Hi Henri, yes it still happens in wine-1.3.2. I was not able to revert that commit. Attached screen shot shows the problem. The best way to reproduce is to use save which i'm going to attach soon.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #19 from Wylda wylda@volny.cz 2010-09-04 17:41:42 CDT --- Created an attachment (id=30561) --> (http://bugs.winehq.org/attachment.cgi?id=30561) savegame
The savegame SHOULD show you the problem. Just climb up the ladder and on top of it you should see the incorrectly-white turret...
There is one interesting thing which took me a while. I could not give you save where you are standing in front of turret, because such save after loading show the turret OK. The key is to start the save game below the the turret and that's the reason you need to climb up to see the problem.
http://bugs.winehq.org/show_bug.cgi?id=10423
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.fileplanet.com/1 | |46597/140000/fileinfo/Paink | |iller-Single-Player-Demo- CC| |wylda@volny.cz Version|unspecified |0.9.49. Summary|shader_glsl_lit() glitch |Painkiller Single-Player | |Demo #3: change in | |shader_glsl_lit() caused | |white turrets
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #20 from Wylda wylda@volny.cz 2010-09-04 18:03:41 CDT ---
Also noticed now. When you are up and see the turret completely white, you have a chance to jump on elevated ground. Here jump again, so you are for a short time above the turret. It will partially lost the white and it gets partially painted. Then running towards the turret and standing just in front of it, you have a chance getting slightly underneath the turret. So it becomes white again :)
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #21 from Wylda wylda@volny.cz 2010-09-09 06:49:59 CDT ---
This regression (bisected) is still present in wine-1.3.2-115-gd822555.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #22 from Wylda wylda@volny.cz 2010-09-18 15:19:29 CDT ---
This regression (bisected) is still present in wine-1.3.3.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #23 from Wylda wylda@volny.cz 2010-12-11 16:20:50 CST ---
This regression (bisected) is still present in wine-1.3.9.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #24 from Wylda wylda@volny.cz 2011-01-22 17:53:57 CST ---
This regression (bisected) is still present in wine-1.3.12.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #25 from Wylda wylda@volny.cz 2011-06-20 16:33:14 CDT ---
This regression (bisected) is still present in wine-1.3.22-255-g4c0c0d3.
http://bugs.winehq.org/show_bug.cgi?id=10423
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |468309e055b5e14f6da919b173e | |b199954b65ef1
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #26 from Stefan Dösinger stefandoesinger@gmx.at 2011-08-22 09:18:11 CDT --- I can reproduce this bug(OSX 10.6, Geforce 9600). The game uses a HAL device with HARDWAREVERTEXPROCESSING | PUREDEVICE as flags, so there's no software vertex processing involved.
Testing various versions of the change it looks like it doesn't matter what the 0.0^0.0 case returns, as long as it is not NaN. But apparently that's what at least my GPU returns for pow(0.0, 0.0). Even Inf is OK. The ARB backend works as well, but I haven't checked what its LIT returns in this case.
I'll write a test for LIT that makes sure that the result in this special case is anything but NaN and fix the GLSL LIT implementation.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #27 from Stefan Dösinger stefandoesinger@gmx.at 2011-08-22 17:17:56 CDT --- Looks like newer GPUs(Geforce 9600, Radeon HD 57xx) return 0.0 for 0.0^0.0 in lit. I'll send a fix tomorrow.
http://bugs.winehq.org/show_bug.cgi?id=10423
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |ec0ac720bfc0a981f841bf917d9 | |4cac8a2919577 Status|NEW |RESOLVED CC| |stefan@codeweavers.com Resolution| |FIXED
--- Comment #28 from Stefan Dösinger stefan@codeweavers.com 2011-10-15 11:53:53 CDT --- Should be fixed by ec0ac720bfc0a981f841bf917d94cac8a2919577
http://bugs.winehq.org/show_bug.cgi?id=10423
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #29 from Alexandre Julliard julliard@winehq.org 2011-10-21 13:49:12 CDT --- Closing bugs fixed in 1.3.31.
http://bugs.winehq.org/show_bug.cgi?id=10423
--- Comment #30 from Wylda wylda@volny.cz 2011-12-02 14:05:42 CST ---
Should be fixed by ec0ac720bfc0a981f841bf917d94cac8a2919577
Yes, fixed for me too. Thank you!
http://bugs.winehq.org/show_bug.cgi?id=10423
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Platform|All |Other
--- Comment #31 from Austin English austinenglish@gmail.com 2012-02-23 15:25:33 CST --- Removing deprecated 'All' Platform.