http://bugs.winehq.org/show_bug.cgi?id=13101
Summary: GLXDabDrawable when antialias ON Product: Wine Version: CVS/GIT Platform: Other OS/Version: other Status: UNCONFIRMED Severity: major Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: guilo19@free.fr
When I want to start a game with wine 1.0rc1 (the problem occurs with olderversions) it crashes with glxbaddrawable error unless antialias is set to off in nvidia panel.
guilo@linux:/windows/Stockage/Jeux/World of Warcraft$ wine wow fixme:ntoskrnl:KeInitializeSpinLock 0x4577a4 fixme:advapi:SetSecurityInfo stub fixme:ntdll:server_ioctl_file Unsupported ioctl 24000 (device=2 access=1 func=0 method=0) fixme:ntdll:server_ioctl_file Unsupported ioctl 24000 (device=2 access=1 func=0 method=0) fixme:ntdll:server_ioctl_file Unsupported ioctl 24000 (device=2 access=1 func=0 method=0) fixme:win:EnumDisplayDevicesW ((null),0,0x33ed84,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33ec74,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f2a8,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f40c,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f588,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f580,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f508,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f4f8,0x00000000), stub! X Error of failed request: GLXBadDrawable Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 586 Current serial number in output stream: 586 libxcb: WARNING! Program tries to lock an already locked connection, which indicates a programming error. There will be no further warnings about this issue.
http://bugs.winehq.org/show_bug.cgi?id=13101
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |opengl
--- Comment #1 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-10 09:27:34 --- The nvidia driver is likely doing some glxfbconfig overrides, I think the issue is there. Note that these days Wine also supports multisampling, so you can just enable it in WoW its graphic options.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #2 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-11 14:26:03 --- Try a less advanced fsaa method and also disable anistropic filtering. According to an Nvidia employee you might be out of video memory which could be causing this problem.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #3 from Guilo guilo19@free.fr 2008-05-11 16:30:18 --- What do you mean by "less advanced method" ?, i have this problem with FSAA x2
I have disabled anisotropic filtering : game launched with antialias working.
I exited. And i couldn't launch the game anymore -> GLXBadDrawable error.
It also occurs when both FSAA and anisotropic are turned ON : if i try to launch the game 10 times, it will launch, but will crash when loading the game.
May I be out of video memory ? How do i check so ? For information purposes, I've got Geforce 6600GT 128Mo and try to launch WoW
Thanks
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #4 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-11 16:36:33 --- What happens if you start WoW in a lower resolution? (and perhaps even X at a lower resolution)
http://bugs.winehq.org/show_bug.cgi?id=13101
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeffzaroyko@gmail.com
--- Comment #5 from Vitaliy Margolen vitaliy@kievinfo.com 2008-05-11 19:45:50 --- *** Bug 13144 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #6 from Jeff Zaroyko jeffzaroyko@gmail.com 2008-05-11 19:51:08 --- (In reply to comment #5)
*** Bug 13144 has been marked as a duplicate of this bug. ***
Is it a duplicate? I don't have any overrides in my nvidia panel and the X error is different. I have also just now tested setting antialias set to off using the nvidia panel and it doesn't change anything.
http://bugs.winehq.org/show_bug.cgi?id=13101
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #7 from Vitaliy Margolen vitaliy@kievinfo.com 2008-05-11 19:57:32 --- Both related to pixel format change(s) in Wine. The end result is the same - error during X_GLXMakeCurrent() call.
Please do a regression test to identify the commit which broke this. It doesn't really mater if the errors look slightly different if cause is the same (as I think it is).
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #8 from Jeff Zaroyko jeffzaroyko@gmail.com 2008-05-11 20:37:21 --- (In reply to comment #7)
Both related to pixel format change(s) in Wine. The end result is the same - error during X_GLXMakeCurrent() call.
Please do a regression test to identify the commit which broke this. It doesn't really mater if the errors look slightly different if cause is the same (as I think it is).
http://source.winehq.org/git/wine.git/?a=commit;h=ec5400b4f815da9215e11f11a4...
wined3d: Split WGL pixel format selection code off from CreateContext.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #9 from Guilo guilo19@free.fr 2008-05-12 03:17:29 --- I am used to running Wow in 1440x900. I have tried in 1024x768 but the problem is the same.
Must i do a regression test ?
Thanks
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #10 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-12 05:39:39 --- You could try to do that but still I expect that it is an Nvidia driver bug..
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #11 from Guilo guilo19@free.fr 2008-05-12 08:04:50 --- It is possible because it worked well with 100.14 but i can't roll back as 173.xx is the only one compatible with 2.6.25 kernel
http://bugs.winehq.org/show_bug.cgi?id=13101
Norbert Mihály norbert79@freemail.hu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |norbert79@freemail.hu
--- Comment #12 from Norbert Mihály norbert79@freemail.hu 2008-05-14 16:47:21 --- Ok, I have almost the same error, it occurs not for all the games, but it makes Mafia and Max Payne stop working, when I have antialising set to either to 2x or 4x. It works tough when set to 8x or 16x, but my card is not that decent, so it cannot keep it up with the framerate.
Details:
Wine version: 0.9.60
VGA: 05:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600] (rev a2)
Nvidia: 171.06.01
X.org: 11.0
Kernel: 2.6.24.5-85.fc8
Distribution: Fedora Core 8.
(Note: this is valid since Nvidia driver: 169.XX.XX)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #13 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-15 10:31:16 --- Could you retry using the latest GIT? Some bugs in this area have been fixed.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #14 from Norbert Mihály norbert79@freemail.hu 2008-05-15 13:44:03 --- Probably at the weekend only, I am very busy at the moment, so maybe on sunday. (I need around a day untill I figure out the proper way to get a Wine compiled, and installed onto FC8, as the 0.9.60 is the latest available from the repos.)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #15 from Norbert Mihály norbert79@freemail.hu 2008-05-20 21:52:39 --- Hello again!
Just installed Wine-1.0-rc1, the bug still exists. I have tested it with Mafia, and Hidden and Dangerous 2, in both cases the application refused to work on 2x and 4x antialising settings with "Nvidia Overreide Antialising" setting turned on. It works tough with 8x antialising, but as my card is not the fastest, I just turn it off. Can you help me further?
Regards: Norbert
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #16 from Norbert Mihály norbert79@freemail.hu 2008-05-21 12:41:01 --- This is what I get, when having 2x antialising on, not overriden by the Nvidia's panel.
[norbi@XXXXX HD2]$ ./HD2_SabreSquadron.exe err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded fixme:system:SystemParametersInfoW Unimplemented action: 59 (SPI_SETSTICKYKEYS) fixme:system:SystemParametersInfoW Unimplemented action: 51 (SPI_SETFILTERKEYS) fixme:system:SystemParametersInfoW Unimplemented action: 53 (SPI_SETTOGGLEKEYS) fixme:win:EnumDisplayDevicesW ((null),0,0x32e8c4,0x00000000), stub! fixme:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain The app requests more than one back buffer, this can't be supported properly. Please configure the application to use double buffering(=1 back buffer) if possible err:d3d:CreateContext Requesting MultiSampleType=2 X Error of failed request: GLXBadDrawable Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 265 Current serial number in output stream: 265 Stopped
This is when I have the override on:
[norbi@XXXXX HD2]$ ./HD2_SabreSquadron.exe err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded fixme:system:SystemParametersInfoW Unimplemented action: 59 (SPI_SETSTICKYKEYS) fixme:system:SystemParametersInfoW Unimplemented action: 51 (SPI_SETFILTERKEYS) fixme:system:SystemParametersInfoW Unimplemented action: 53 (SPI_SETTOGGLEKEYS) fixme:win:EnumDisplayDevicesW ((null),0,0x32e8c4,0x00000000), stub! fixme:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain The app requests more than one back buffer, this can't be supported properly. Please configure the application to use double buffering(=1 back buffer) if possible X Error of failed request: GLXBadDrawable Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 262 Current serial number in output stream: 262 Stopped
Almost looks the same. This is the same situation for Mafia too, not the same error messages, but is fails too.
http://bugs.winehq.org/show_bug.cgi?id=13101
dglz telcarion@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |telcarion@gmail.com
--- Comment #17 from dglz telcarion@gmail.com 2008-05-25 05:08:27 --- Same problem here with NV7600GT / Call of Duty 2 / wine from GIT (compiled yesterday) and Gentoo amd64.
- "Override App Setting" Off -> no antialiasing - "Override App Setting" On & 2x or 4x -> X freeze or GLXBadDrawable Error - "Override App Setting" On & 8x -> it works (although a bit slower, because of the antialias)
Turning off aniso doesn't help
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #18 from Norbert Mihály norbert79@freemail.hu 2008-05-26 07:57:56 --- dglz: I just have the same, so I think both of us can confirm the presence of this bug. I have recently reinstalled the older 96.43.05 driver for Nvidia, and I don't see the problem there. So the bug esxists since 169.12 in my opinion.
http://bugs.winehq.org/show_bug.cgi?id=13101
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |thunderbird2k@gmx.net
--- Comment #19 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-28 04:59:40 --- Norbert also try to test it on a 100.x.y driver release to see if the issue is in that version already or not. That might make it easier for Nvidia to locate the bug.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #20 from Guilo guilo19@free.fr 2008-05-28 16:58:54 --- The bug is stille present with the new 173.14.05 driver....
http://bugs.winehq.org/show_bug.cgi?id=13101
Edwin Smulders edwin.smulders@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |edwin.smulders@gmail.com
--- Comment #21 from Edwin Smulders edwin.smulders@gmail.com 2008-05-29 15:22:56 --- while i am not entirely sure that I have the same bug (see http://forum.winehq.org/viewtopic.php?t=1080 ), I can confirm too that I still have this with the new 173.14.05 driver
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #22 from Edwin Smulders edwin.smulders@gmail.com 2008-05-30 10:20:22 --- Ignore my comments, it turned out I didnt have opengl set up correctly!
http://bugs.winehq.org/show_bug.cgi?id=13101
Patrick Rudolph patrick1804@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |patrick1804@web.de
--- Comment #23 from Patrick Rudolph patrick1804@web.de 2008-05-30 15:54:56 --- I've had the same problem with wine1.0rc3 running hl2.exe.I added the following line to my xorg.conf because I found out that the screen refreshrate was detected incorrect by KDE and xrandr :
Option "DynamicTwinView" "False"
Now the game starts fine in fullscreen with following videomodes: -1024x768 -800x600 -640x480
All other resolutions still returned GLXBadDrawable error. (Nvidia Override Settings all set to Application-controled)
http://bugs.winehq.org/show_bug.cgi?id=13101
Patrick Rudolph patrick1804@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #24 from Patrick Rudolph patrick1804@web.de 2008-05-30 15:56:46 --- *** This bug has been confirmed by popular vote. ***
http://bugs.winehq.org/show_bug.cgi?id=13101
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rmuncrief@comcast.net
--- Comment #25 from Vitaliy Margolen vitaliy@kievinfo.com 2008-05-30 21:55:15 --- *** Bug 13566 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #26 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-31 03:07:26 --- Bug 13566 indicates that the GLXBadDrawable bug only happens on Nvidia driver versions above 100.x (e.g. 169.x, 171.x, 173.x). This means that it is a driver bug. Another report here suggested that it doesn't happen when DynamicTwinview is disabled. More of such tests would be useful, so that we can submit a well documented bug report to Nvidia. The more details the easier it is to track for them and to fix. Are there any game demos in which the issue can be seen? That would be best for testing.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #27 from Robert M. Muncrief rmuncrief@comcast.net 2008-05-31 06:43:56 --- (In reply to comment #26)
Bug 13566 indicates that the GLXBadDrawable bug only happens on Nvidia driver versions above 100.x (e.g. 169.x, 171.x, 173.x). This means that it is a driver bug. Another report here suggested that it doesn't happen when DynamicTwinview is disabled. More of such tests would be useful, so that we can submit a well documented bug report to Nvidia. The more details the easier it is to track for them and to fix. Are there any game demos in which the issue can be seen? That would be best for testing.
I agree. Unless Nvidia has released an updated API it would seem so. I have actually been characterizing this bug for three days (I wanted to upgrade to Hardy), and have been quite meticulous in following the same test procedures on both Gutsy and Hardy, changing only the Nvidia driver.
And unfortunately for Hardy users, if you install the binary 100.14.19 driver on it there are a lot of redraw errors during normal OS operation (like the text becoming a garbled mess when scrolling through tasks with the System Monitor), so something has definitely changed between driver versions.
Here are two demos you can download that illustrate the AA problem:
Call of Duty 2 Demo: http://www.download.com/Call-of-Duty-2-demo/3000-7450_4-10440599.html
Far Cry 2 Demo: http://www.download.com/Far-Cry-demo-2/3000-7452_4-10267976.html
http://bugs.winehq.org/show_bug.cgi?id=13101
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |martin@gamesplace.info
--- Comment #28 from Austin English austinenglish@gmail.com 2008-06-02 16:12:23 --- *** Bug 13611 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13101
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|GLXDabDrawable when |GLXDabDrawable when |antialias ON |antialias ON (Nvidia driver | |bug?)
--- Comment #29 from Austin English austinenglish@gmail.com 2008-06-02 16:13:01 --- Adding nvidia to summary to catch more dupes.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #30 from Martin Jürgens martin@gamesplace.info 2008-06-02 16:25:49 --- Reported to nvnews: http://www.nvnews.net/vbulletin/showthread.php?p=1670376#post1670376
http://bugs.winehq.org/show_bug.cgi?id=13101
Aneurin Price aneurin.price@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aneurin.price@gmail.com
--- Comment #31 from Aneurin Price aneurin.price@gmail.com 2008-06-02 16:58:14 --- I doubt this will be of any help, but I thought I'd add since nobody else seems to have mentioned it that this problem goes away when I'm running kompmgr - with desktop compositing enabled I can happily use 2-4x AA without crashing, so maybe that'll be a useful workaround for somebody.
BTW my graphics card identifies itself as "nVidia Corporation G71 [GeForce 7950 GT] (rev a1)", and I'm using driver version 169.12 on AMD64 in case anybody is looking for patterns.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #32 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-03 05:23:18 --- I have submitted a workaround which has been added to git to disable multisampling for now. If you want you can enable it using by setting the registry Direct3D\AllowMultisampling to enabled.
http://bugs.winehq.org/show_bug.cgi?id=13101
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Summary|GLXDabDrawable when |GLXBadDrawable when |antialias ON (Nvidia driver |antialias ON (Nvidia driver |bug?) |bug?)
--- Comment #33 from Alexandre Julliard julliard@winehq.org 2008-06-05 06:52:19 --- Fixed.
http://bugs.winehq.org/show_bug.cgi?id=13101
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #34 from Alexandre Julliard julliard@winehq.org 2008-06-06 10:39:19 --- Closing bugs fixed in 1.0-rc4.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #35 from Robert M. Muncrief rmuncrief@comcast.net 2008-06-06 20:33:53 --- Well, I would not consider this bug "fixed". First of all, simply attempting to disable antialiasing is a workaround, not a fix.
Second, the workaround can't be disabled for some games, so I can't use the current git anymore. It used to be possible to use backbuffer and AA and suffer a FPS drop in some areas of a game, but now that can't be done for some games, like FlatOut 2. For these games enabling AllowMultisampling doesn't work, so AA can't be used and the games looks horrible and jagged.
Antialiasing is critical for game play. I don't understand why it appears to have such a low priority. I understand that it may be a bug in the Nvidia drivers, but it also may not be. Everything else works with the latest drivers (glx, compositing, etc.), so I have no confidence that the cause of the error has even been identified.
If there are some type of tests I could run that would help in solving this problem I would be happy to do it. I just don't know where to begin to look, since wine simply works with one driver version, and doesn't work with others. I guess I could keep going back in time trying to find a wine version that works with the latest Nvidia drivers, but this could take many days or longer. It seems there must be some modules that could be traced with a low level debugger to discover the problem, but I would need a fair amount of instruction to do it.
In any case, please don't just disable AA and call this a fix. It's not.
http://bugs.winehq.org/show_bug.cgi?id=13101
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |REMIND
--- Comment #36 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-07 09:21:51 --- As I mentioned before the patch was a workaround. It really prevents games from using multisampling. Sure if you enable it in nvidia-settings then you of course get multisampling.
The bug is an nvidia driver bug for sure as it appears to depend on resolution and driver settings. Older drivers (<= 100.x) don't seem to have the problem. Multisampling works fine in various games on my pc.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #37 from James Hawkins truiken@gmail.com 2008-06-07 19:49:08 --- Why did you change it to remind?
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #38 from Guilo guilo19@free.fr 2008-06-08 04:28:35 --- It is NOT fixed in rc4...
Same issues
Thanks
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #39 from Robert M. Muncrief rmuncrief@comcast.net 2008-06-08 05:05:05 --- Call of Duty doesn't even install in rc4, no matter the AA setting, and the "disable" setting in many games, in both wine and the games and the driver settings doesn't always work. And the operation of wine is very Dependant upon the Nvidia driver version you use.
Antialiasing is broken in wine, and as I've said before I'd be glad to help. And I'm sure many others would be also.
But for professionals like me and many others, you can't just direct us to some obscure page telling us how the tools work.
Just tell me what modules I need to trace, and what I should look for. I will figure it out from there.
I really want to help Wine 1.0 to be the beginning of the end of Windows. But the developers have to give me some direction.
The last out-of-the-box usable version of wine for me is 1.0-rc2. I can use 1.0-rc3 by jumping through a few hopes.
1.0-rc4 is dead in the water.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #40 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-08 07:52:49 --- As I mentioned there are TWO issues. The first one is the GLXBadDrawable one which really MUST be an Nvidia driver bug. The second is some FBO related bug and only happens when you set OffscreenRenderingMethod to fbo.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #41 from Norbert Mihály norbert79@freemail.hu 2008-06-09 00:50:10 --- I might not be the pro here, but why do I only experience this bug only with Wine, and not with ELF Linux Games, like Doom 3, Unreal Tournament, etc? Even when I set 2x and 4x antalising in these games, it works fine, or with nvidia-settings forcing antialising. Are you really sure, that this is an Nvidia bug still?
(Btw: One day I experienced the same (!) effect with my current driver 98.xx.xx and Wine-1.0rc3, yet after a full killing of Wine solved it, but it was again the same problem. I don't know how to reproduce it, but I am confident, that it IS a Wine bug!)
http://bugs.winehq.org/show_bug.cgi?id=13101
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|REMIND |LATER
--- Comment #42 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-09 01:11:35 --- The key difference is that Wine its opengl rendering does one thing which normal applications don't do. In case of opengl you select a 'pixel format' (roughly speaking the color depth and some other properties) and you apply this format to a window. You can only do that ONCE for a given window. Direct3D allows you to adjust the pixel format and for that reason we have a mechanism in place to recreate an opengl window. (I explicitly say opengl window since we have a toplevel window and the opengl window is a child window of this parent X11 window)
Multisampling is also a property of the pixel format, so enabling of multisampling (in case of Direct3D) usually requires recreation of the opengl window. This works fine in most cases (we also need it outside of multisampling) but the Nvidia drivers don't seem to like it in all cases. When it doesn't work we get a GLXBadDrawable error. The window got created fine (else we would have received an error there) but somehow making it current to GLX fails.
It is an Nvidia bug because this GLXBadDrawable depends on the driver version and driver options. A possible reason for the error can be that the driver is out of video memory or so. A multisampled window requires a lot more video memory (16x as much video memory for a 4x multisampled window).
http://bugs.winehq.org/show_bug.cgi?id=13101
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|LATER |WONTFIX
--- Comment #43 from Dmitry Timoshkov dmitry@codeweavers.com 2008-06-09 01:22:22 --- This is basically a WONTFIX, not LATER.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #44 from Norbert Mihály norbert79@freemail.hu 2008-06-09 01:32:44 --- "It is an Nvidia bug because this GLXBadDrawable depends on the driver version and driver options. A possible reason for the error can be that the driver is out of video memory or so. A multisampled window requires a lot more video memory (16x as much video memory for a 4x multisampled window)."
Yet, why did it work before and why does not it work in this version? Don't come with Video Memory, because I used Multisampling and 16x antialising before, and it worked, now what I can see is, that it works with ELF binaries, but not with Wine. (I used to experiemnt a lot, when I got my videocard.)
I understand the technical point of view, but yet, this still does not explain the real reason of this error. It can't be video memory, as it worked before.
(Btw: As far as I am concerned, neither Mafia nor Hidden and Dangerous 2 uses multisampling, but antialising only!)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #45 from Norbert Mihály norbert79@freemail.hu 2008-06-09 01:38:35 ---
(Btw: As far as I am concerned, neither Mafia nor Hidden and Dangerous 2 uses multisampling, but antialising only!)
One more thing: Regarding Multisampling: I use to test Wine with Demo Scene stuff too, and multisampling used to work with Farbrausch's Popular Demo (http://www.scene.org/file.php?file=/demos/groups/farb-rausch/fr-025-final2.z...), including antalising back with Nvidia 82.xx.xx and Wine 0.9.55.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #46 from Norbert Mihály norbert79@freemail.hu 2008-06-09 01:46:05 --- We are all grateful for all your support, and we give you all our respect what you have done with Wine, so see our comments as a sign of a problem, but as we are out of ideas, tell us exactly what we have to do to help you to solve this problem! I can gladly test many applications, as many you wish (and if I own them)! Please send us exact instructions or description of different scenarios, you wish to test this problem against!
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #47 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-09 04:19:45 --- You have to distinguish between several things. First of all there are several forms of 'anti-aliasing'. The most basic way is multisampling and basically the image is rendered at a MUCH higher resolution and then scaled back (in case of 4x using 1600x1200 it would be rendered at 6400x4800!). Then there are much more efficient versions of FSAA like quincunx and others. Those also require more video memory but much, much less.
Second you can enable FSAA in nvidia-settings or a game can request Wine to enable it. When you set it using nvidia-settings it can select those much more efficient modes and those are faster and take much less memory. Nvidia-settings should in theory work regardless of Wine but it has limitations. It does some evil override and this might cause issues and second this way might not work with FBOs at all.
In case a game asks Wine to enable FSAA we use multisampling and that takes a lot of video memory. Sure your card can have 512MB but that doesn't mean the framebuffer can use all of it. Most of it is meant for texturing. The bug likely is that Nvidia doesn't like our window recreation code. It might not have released the video memory of the previous window yet and this could cause the issue.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #48 from dglz telcarion@gmail.com 2008-06-09 04:29:49 --- (In reply to comment #42)
Multisampling is also a property of the pixel format, so enabling of multisampling (in case of Direct3D) usually requires recreation of the opengl window. This works fine in most cases (we also need it outside of multisampling) but the Nvidia drivers don't seem to like it in all cases. When it doesn't work we get a GLXBadDrawable error. The window got created fine (else we would have received an error there) but somehow making it current to GLX fails.
True, I have tried World of Warcraft with the OpenGL rendering engine and I could enable 4xAA without any trouble (ingame setting). Does it only happen with DirectX games?
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #49 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-09 04:46:31 --- In opengl itself it works fine, it is just Direct3D.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #50 from Aneurin Price aneurin.price@gmail.com 2008-06-09 04:55:31 --- I'm unable to play WoW with opengl rendering either. I may have missed some combinations, but AFAICT any 2x-4x AA will trigger this problem, whether set in the game or using any of the different override methods in nvidia-settings, both with opengl and dirext3d rendering.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #51 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-09 05:50:08 --- Wine isn't doing anything magical in plain opengl. Multisampling is a propery of a pixel format. We create a window using a multisampling capable pixel format and then a game should use multisampling. Does the issue also happen in http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=46 ?
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #52 from Norbert Mihály norbert79@freemail.hu 2008-06-09 06:10:23 --- Well, it seems, that if it only shows itself with Nvidia cards, why don't we ask someone with ATI card? Anyone using ATI around here? Can we ask a possible test for 2x and 4x antialising methods?
Btw: I have also stated earlier, that the antialising works with 8x and 16x, but not with 2x 4x. Why does it work withj the higher antialising methods, and why not with the lower onces?
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #53 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-09 07:31:43 --- Please test multisampling when enabled in Wine and not through nvidia-settings. (Plain multisampling is limited to 4x on nvidia; nvidia-settings exposes upto 16x or so)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #54 from Aneurin Price aneurin.price@gmail.com 2008-06-09 17:09:24 --- Okay, I've tried numerous combinations of settings: The demo app from NeHe always works, windowed and fullscreen, regardless of the configuration in nvidia-settings.
If multisampling is disabled in WoW, then the game runs - as long as nvidia-settings isn't configured to override it.
Similarly, if nvidia-settings is used to force antialiasing to off then the game runs, regardless of the in-game configuration.
If multisampling is set in-game to anything over 1, then it crashes. This happens even if it's set to 8 or 16 in opengl mode (I'm guessing it's falling back to 4?). If it's set to 8 or 16 in d3d mode then the setting is ignored (this makes sense given your last comment), and it works, without any multisampling.
If nvidia-settings is used to override the application setting, then any 2x or 4x AA methods crash, but all the others work.
Aside from d3d ignoring the higher settings, the only difference between d3d and opengl is that in d3d I get this: ... fixme:win:EnumDisplayDevicesW ((null),0,0x33f5a0,0x00000000), stub! err:d3d:CreateContext Requesting MultiSampleType=4 X Error of failed request: GLXBadDrawable Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 579 Current serial number in output stream: 579
And in opengl I get this: ... fixme:win:EnumDisplayDevicesW ((null),0,0x33f518,0x00000000), stub! X Error of failed request: GLXBadDrawable Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 587 Current serial number in output stream: 587
The "serial number of failed request" line can be different with different AA settings. If it's any use, I can provide more detailed traces.
In short, anything which involves 2x-4x AA will crash, no matter whether it's selected in game or in nvidia-settings, both in d3d and opengl mode. This does not occur when using a compositing window manager.
I hope that provides some useful information; if you need any more, I should be able to spend some more time on this tomorrow evening.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #55 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-10 15:16:40 --- I have submitted a bug report to Nvidia. Hopefully they will fix this issue.
http://bugs.winehq.org/show_bug.cgi?id=13101
Luke Bratch l_bratch@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |l_bratch@yahoo.co.uk
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #56 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-19 04:02:35 --- Just to point out setting the Direct3D\Multisampling registry key to enabled allows you to use multisampling (if a game offers it) and this will re-enable the nvidia driver bug.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #56 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-19 04:02:35 --- Just to point out setting the Direct3D\Multisampling registry key to enabled allows you to use multisampling (if a game offers it) and this will re-enable the nvidia driver bug.
--- Comment #57 from Robert M. Muncrief rmuncrief@comcast.net 2008-06-20 00:11:40 --- (In reply to comment #56)
Just to point out setting the Direct3D\Multisampling registry key to enabled allows you to use multisampling (if a game offers it) and this will re-enable the nvidia driver bug.
Actually, I have this is not true. If you set Direct3D\AllowMultisampling some games will think AA is on, but it's not. The games will show no AA smoothing.
For example, FlatOut 2 doesn't think AA is on no matter what the AllowMultisampling setting. All the Half-Life games I have think AA is on when AllowMultisampling is enabled, but they run with no AA affects. And Far Cry 2 thinks AA is on, but if you try to set it to anything other than off the game just crashes.
But for some reason the Wine developers refuse to fix this massive breakdown in game play, choosing to blame it on Nvidia drivers without evidence. They are blaming every release after 100.14.19 for all of Wines problems with AA.
So I'm trying to figure out what went wrong on my own, but it's already been four days and I still have no good bisect. There are 10 wine versions, and 5 driver versions, to test which doesn't make my job easy. I sure wish a developer who understood Wines AA and interaction with Nvidia drivers would work on it instead of the whole lot simply refusing to fix it.
Finally, if you have an Nvidia card and want to use wine to play games you will most likely have to use Wine 1.0-rc3 and Nvidia driver 100.14.19. Anything beyond rc3 has the AllowMultisampling setting that doesn't work, and any later driver will give you the GLXBadDrawable error.
And if you run Ubuntu, Hardy will not allow you to play Far Cry 2, while an identical installation on Gutsy allows you to play Far Cry 2, with the intermittent start up crash. Just keep system monitor handy and you can kill all the hung Wine processes by passing your mouse over all tasks and killing everything that starts with a DOS drive (C:, D:, etc.).
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #58 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-20 01:38:35 --- Note that I explicitly said 'Direct3D\Multisampling' instead of 'Direct3D\AllowMultisampling'. My original patch called it 'AllowMultisampling' but Alexandre changed it to just 'Multisampling'.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #58 from Roderick Colenbrander thunderbird2k@gmx.net 2008-06-20 01:38:35 --- Note that I explicitly said 'Direct3D\Multisampling' instead of 'Direct3D\AllowMultisampling'. My original patch called it 'AllowMultisampling' but Alexandre changed it to just 'Multisampling'.
--- Comment #59 from Norbert Mihály norbert79@freemail.hu 2008-06-20 02:57:31 --- "Finally, if you have an Nvidia card and want to use wine to play games you will most likely have to use Wine 1.0-rc3 and Nvidia driver 100.14.19. Anything beyond rc3 has the AllowMultisampling setting that doesn't work, and any later driver will give you the GLXBadDrawable error."
I might disagree here, as I have FC8, Wine 1.0-rc5, and yes, the older Nvidia driver, version 96.XX.XX, and if I force antialising, it works well. This looks maybe an Nvidia driver bug to me, or still a Wine bug, as all other native 32 bit Liunux ELFs work well with any Nvidia driver.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #60 from Norbert Mihály norbert79@freemail.hu 2008-07-03 09:29:53 --- Robert,
any news from Nvidia?
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #61 from Norbert Mihály norbert79@freemail.hu 2008-07-03 09:32:46 --- Sorry, I meant Roderick.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #62 from Roderick Colenbrander thunderbird2k@gmx.net 2008-07-03 10:26:16 --- I haven't heard anything back.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #63 from Norbert Mihály norbert79@freemail.hu 2008-07-04 03:35:58 --- Roderick!
I made contact with Robert, who has done a lot of investigation on his side, and wrote me the following:
[Quote] I did a lot of experimenting with Nvidia drivers and wine versions back to 0.60. I was never able to obtain a viable bisect, and it does indeed appear that something in the Nvidia drivers changed after 100.14.19 that broke AA with wine.
However, as I said before I'm not convinced that it is necessarily a "bug", I would tend to think that it's an API change that the wine developers aren't aware of.
So what I'm doing now is using wine 1.0, with the two patches I've attached to this email, and Nvidia drivers 96.43.05. The only reason I'm not using 100.14.19 is because I use Avant Window Manager, and there's a bug with it, the 100.14.19 drivers, and Steam. If you don't use Avant I would go with the 100.14.19 drivers because there is a noticeable improvement in video quality.
By the way, I can't use wine 1.10 or the latest git because I can't install Microsoft Office service pack 3. I'm not sure why. [/Quote]
I personally made the similar conclusion, tough my investigation was a bit limited.
Robert also explained me some problems with your surface rendering, and also included two diffs; I am asking him, if he plans to submit his modifications, because you guys might be interested.
I would like to ask you kindly just at least considering the possibility, that the Wine Team might have something missed out, and this might be not really a 'bug', but maybe an API change.
Regards: Norbert
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #64 from Roderick Colenbrander thunderbird2k@gmx.net 2008-07-04 03:44:48 --- Let me quickly explain how GLX (opengl for X)/WGL (opengl for windows) work and how you set up multisampling. Then you will see that it is most likely a driver bug.
In short GLX/WGL support offer various 'pixel formats' using which OpenGL will be rendered (this is called an XVisual / GLXFBconfig in case of GLX). A pixel format defines the number of red/green/blue/alpha bits but things like double buffering and multisampling are also properties of a pixel format. Each pixel format offers only a single multisampling format.
When you set up rendering you create a window using the pixel format you want. In case you want multisampling, you select a format with multisampling and then it is activated. Before you can render to the window you need to attach it to a multisampling capable opengl context using wglMakeCurrent/glXMakeCurrent. The nvidia drivers return GLXBadDrawable. (In case of a pixel format mismatch GLXBadMatch is returned which isn't the case here)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #65 from Norbert Mihály norbert79@freemail.hu 2008-07-04 03:55:09 --- Sure, I understand this, but this does not solve the antalising problem, nor the multisampling problem. If you are so convinced, that this can be ONLY a driver problem, please answer me the following simple question: Why does this bug appear only with Wine, and does not appear on any Linux binary based OpenGL game? (Undependant of the driver version, forced or not forced, doesn't matter.)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #66 from Norbert Mihály norbert79@freemail.hu 2008-07-04 04:25:49 --- Roderick, when you sent the error log, did you also include our comments, or just have included a link to this bug? This might help them tracing of the problem. It seems, that ATI is not affected, which would make you right on this question, but what is most confusing, that native linux binaries are (as it seems) not ot be affected by this problem, but Wine.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #67 from Norbert Mihály norbert79@freemail.hu 2008-07-04 04:59:51 --- Maybe the solution lies in the fact, that something was indeed changed in X.org, which was then also followed by Nvidia, including some kernel changes. I cannot say any details, but either Nvidia has changed some API calls, or X.org changed something, but fact is, that ATI is NOT affected, the bug appears only with Nvidia drivers, and only for Wine, becuase native Linux binaries work well. (Take Nexuiz for example)
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #68 from Roderick Colenbrander thunderbird2k@gmx.net 2008-07-04 07:05:22 --- I emailed nvidia a summary of the issues with a link to this bug. Nvidia is free to change the internals of their drivers and this is most likely what they did in order to fix issues like the compiz black window bug and other issues.
Most of the time you enable multisampling from nvidia-settings as most apps don't offer such settings. Some games do offer them but those use it in a different way than Wine. First of all 'classic' GLX programs select a pixel format and create a toplevel X window using this format. In case of Wine we aren't rendering GLX to a toplevel window but to a subwindow of this toplevel window. The reason for this is that in case of GLX you need to specify the pixel format at window creation time whereas on Windows you do it afterwards. This behavior is something the Nvidia drivers might not like. Second Direct3D allows you to 'reset' the pixel format of a Window which again OpenGL doesn't offer, so we kill the subwindow and then create a new one. Perhaps again this is something the drivers don't like in all cases.
http://bugs.winehq.org/show_bug.cgi?id=13101
--- Comment #69 from Roderick Colenbrander thunderbird2k@gmx.net 2008-08-21 14:22:19 --- Nvidia has fixed this bug in 177.68: Fixed a bug that caused GLXBadDrawable errors to be generated when running more than one OpenGL application with anti-aliasing enabled on GeForce 6 and 7 GPUs, e.g. wine.
http://bugs.winehq.org/show_bug.cgi?id=13101
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified
http://bugs.winehq.org/show_bug.cgi?id=13101
William wwarsin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wwarsin@gmail.com
--- Comment #70 from William wwarsin@gmail.com 2010-04-18 21:53:38 --- *** Bug 22416 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=13101
Robert M. Muncrief rmuncrief@comcast.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|rmuncrief@comcast.net |