I'm running a Java app built for Windows (therefore needs Wine), and on a machine with Nvidia graphics it crashes when it tries to draw the main window. The exact same application and OS configuration on a different machine with Intel graphics works fine.
It crashes in wined3d, although the application is only drawing plain windows and dialogs - it looks like Java awt always calls d3d9 which call wined3d :(.
Relevant console output from wine is shown below, plus the stack from the app's error log.
OS is Ubuntu 8.10, Wine ver. 1.1.16 on both machines. On the faiing machine the graphics is Nvidia GPU 5200 series, screen size 1280x1024. I have tried both with the accelerated Nvidia driver v.173, and with the standard Linux driver, it makes no difference.
The machine that works is an Asus Eee 901 netbook, Intel graphics on 1024x600 screen. Both machines have 2GB RAM.
Wine console output:
fixme:d3d:WineD3D_ChoosePixelFormat Add OpenGL context recreation support to SetDepthStencilSurface fixme:heap:RtlCompactHeap (0x110000, 0x0) stub fixme:d3d:WineD3D_ChoosePixelFormat Add OpenGL context recreation support to SetDepthStencilSurface fixme:d3d:WineD3D_ChoosePixelFormat Add OpenGL context recreation support to SetDepthStencilSurface # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7d9c25c2, pid=8, tid=37 # # Java VM: Java HotSpot(TM) Client VM (11.2-b01 mixed mode, sharing windows-x86) # Problematic frame: # C [wined3d.dll+0x725c2]
Stack trace:
Stack: [0x03890000,0x03990000], sp=0x0398de48, free space=1015k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [wined3d.dll+0x725c2] C [wined3d.dll+0xaf2a0] C [d3d9.dll+0x12957] C [awt.dll+0xad577] C [awt.dll+0x9c60c] C [user32.dll+0xb06aa] C [user32.dll+0xb0afa] ...
I've heard that wined3d and Nvidia don't play well together, but I don't know why this problem only shows up when running a Java app. Everything else I use works fine.
If anyone would like more info let me know.
It is next to impossible to tell what is going wrong here. I'm afraid someone will have to dig into the GL calls and try to reproduce the crash in a stand-alone app and report it to Nvidia. That can be a quite nasty task. You might be able to get your app running by disabling d3d9.dll(d3d9="" in winecfg).
WineD3D works pretty well with Nvidia cards in general. It's the non-nvidia drivers that make most troubles, the open source ones and to a smaller amount the ATI binary driver(getting better and better each release).
--On Friday, March 13, 2009 23:24:56 +0100 StefanDösinger stefan@codeweavers.com wrote:
¦ It is next to impossible to tell what is going wrong here. I'm afraid someone ¦ will have to dig into the GL calls and try to reproduce the crash in a ¦ stand-alone app and report it to Nvidia. That can be a quite nasty task. You ¦ might be able to get your app running by disabling d3d9.dll(d3d9="" in ¦ winecfg).
Sometimes the simplest things can be the least obvious. I've just tried disabling d3d9 in Configure Wine and it works! I just hadn't thought of doing that - I guess I assumed that because it was calling d3d9 it needed it.
That'll do for now, the app isn't actually doing any 3D rendering. In fact I'll try the same on the netbook where it's already working, it might improve the screen response which isn't wonderful at the moment.
Thanks!
Am Samstag, 14. März 2009 00:35:25 schrieb Rick Jones:
Sometimes the simplest things can be the least obvious. I've just tried disabling d3d9 in Configure Wine and it works! I just hadn't thought of doing that - I guess I assumed that because it was calling d3d9 it needed it.
I guess Java initializes d3d just in case the app needs it for some features. Its like Wine using OpenGL. It will always check if it is available. If it isn't, Wine will go on. If the Windows app needs D3D or GL however, bang. Something similar is likely going on here.
2009/3/14 Rick Jones rick@activeservice.co.uk:
I'm running a Java app built for Windows (therefore needs Wine), and on a machine with Nvidia graphics it crashes when it tries to draw the main window. The exact same application and OS configuration on a different machine with Intel graphics works fine.
OS-specific Java programming is disgusting. Get the developer to produce a non-Windows-specific version. :)