SolidWorks and more generally OpenGL CAD apps...

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
denisb
Level 2
Level 2
Posts: 14
Joined: Mon Jul 14, 2008 9:34 am

SolidWorks and more generally OpenGL CAD apps...

Post by denisb »

Hello everybody,

During the past three years, I regularly tested SolidWorks http://appdb.winehq.org/objectManager.p ... n&iId=8983 with Wine. At the beginning, it was just for fun, as it was really far from working. But now, things has changed : the application installs out of the box and is really close to work. There are some bugs remaining, but the situation is not worse than it was for Autocad a few months ago, for example. But there is is still a big problem with OpenGL http://bugs.winehq.org/show_bug.cgi?id=13195 , that prevents any use. Without this bug, the application will be rated bronze or maybe silver !

The OpenGL problem was partially solved from times to time by some patches, but 0.9.47 introduced a big regression. Now OpenGL is definitely broken, with two blocking bugs. The problems are related to Pixelformat choice, child windows management, and offscreen rendering.

I tried to investigate it by myself, but unfortunately I know about nothing of OpenGL and wgl in wine, so I was just able to file bug reports, and some partial workarounds allowing the application to run, but with big display issues ( see bug 13195).

So my question is : is SolidWorks the only application impacted by these OpenGL issues ?
I understand that most of the games are using only one OpenGL window so they are not impacted, but there are many other OpenGL apps with multiple windows/viewports. I dig Appdb and bugzilla, and found nothing recent related. So if some other users can report to bugzilla similar problems with different GL apps, it may help to narrow the problem !

Thanks
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

The main problem you may find is that applications that are not open source and written for windows are mostly using DirectX instead of OpenGL. How do you also define that an application is using OpenGL or DirectX apart from the errors?

Sometimes you are also using both, like my application (actually a dual application) where the installer is using OpenGL, half of the dual application seems fine with OpenGL/is written in Java (apart from child window management and a buggy refreshing rate) and the other half is a script application and at the time being crashing because of a DirectX error.
denisb
Level 2
Level 2
Posts: 14
Joined: Mon Jul 14, 2008 9:34 am

Post by denisb »

Most of the professional 3D CAD/CAM apps. are pure OpenGL. But I agree, there are few open-source ones. So it is quite difficult to find something useful for debugging. An option should be to write testcases, but it is out of my skills...
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

What should your test case do? Maybe I could get my husband to write something in Java and since Java is using OpenGL it may be of some help. He keeps telling me that he can't do anything in Wine because he only has a Java development environment and doesn't know anything about unix (at least not enough to be of help).

Maybe I could ask him to write a small exe that runs OK on his windows.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

A test case from use won't help you much I'm afraid because I do not have the software to analyze it.

I got the positive answer that we will try to reproduce the child window problem in a case but nothing is granted (It may not be written in Java too.
qwertymn
Level 4
Level 4
Posts: 236
Joined: Thu Mar 27, 2008 3:42 am

Post by qwertymn »

Hi, i think it would help if the wine-developers could try this app themselves,but apparently the app is not free.

I found however swviewer (http://dl-ak.solidworks.com/secure/sw20 ... 9&ext=.exe) and i found this sample http://blogs.solidworks.com/teacher/fil ... eaf.SLDPRT, and did some testing.

I can confirm the weird crash while resizing the window (X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 143 (GLX)
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
)

Maybe you could try if your bugs are also present in this freely downloadable app, so wine-developers could try it themselves, and have better chance to solve the bugs. I didn't see actually other openGL apps crash like this, so somehow solidworks triggers wine in a special way to crash like this.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

At the moment we took another option.

I will get today a java editor that my husband wrote a couple of years ago in C. I will check if the child window is correct (and if minimizing the child window is getting it as a tab or disappearing) and there is an issue my husband could peek in the source code to help wine developers fix it.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

A test for the child window problem may take some time. It's likely it has nothing to do with OpenGl itself but probably a threading issue (thread handling and window handling).
denisb
Level 2
Level 2
Posts: 14
Joined: Mon Jul 14, 2008 9:34 am

Post by denisb »

Testing with freely downloadable SW viewer is really interesting, as it seems to suffer the same bug. I'm going to check it and update bugs reports.

For the Java application, it may be interesting, but i guess that it is more complicated that a simple child windows issue :
if you look at this screenshot
http://appdb.winehq.org/screenshots.php ... ionId=8983
, you can see that the window is divided in two parts, and the problem is that there is clearly a mismatch between the left panel, where the tree is displayed ( GDI, i guess ), and the left graphics window, which is openGL graphics, with a 2D layer on top, and maybe some compositing

I guess that this type of window has to be contructed to expose the bug. I may be quite difficult in Java. For threading, the traces shows that the same thread is used for all the drawing, so I don't think that it is a threading issue.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

My problem is another. It looks like that the child window is not inheriting the template or whatever it is and it sets itself back to a standard Windows window.

Problem is however when no such standard window had been planed, maybe you end up with a window without anything around it and making you unable to move or resize it, let alone open it if this was minimized.

I have this bug in an editor with a mainframe and another frame for the text file whereby you have the possibility to maximize the test file and it ends up with only one window.

I just checked an open source editor and the frame was missing, it froze with everything around it.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

Now I need your help:

I just got a test case with a window in window in Java.

There are
DesktopFrame.class
DesktopTest.java

And it's crashing with an exception if I do

wine java DesktopTest.java
Exception in thread "main" java.lang.NoClassDefFoundError: DesktopTest/java

How should I call it?
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

Getting our test will take some more time, we are sorting out why the test is working on the development environment but we can't get it work with the command line.
Timeout
Level 4
Level 4
Posts: 183
Joined: Sat Feb 23, 2008 12:45 pm

Post by Timeout »

Here the test if you have a development environment until we sort out what to add to make it work from the command line:

www.uebersetzen.at/Wine/test.tar

Basically it's a short java test, when you launch (from the directory where you extracted the file) - it it is a window calling a class with a second window (child window).
It's working properly on Windows but my expectation from it is that the class (child window) is going to be partially represented or not at all under Wine.

If both windows are appearing properly, then we have to look elsewhere for the child window issue.
Locked