Re: [PyOpenGL-Users] PyOpenGL/PySide QML interaction bug
Brought to you by:
mcfletch
|
From: Mike C. F. <mcf...@vr...> - 2011-05-11 04:26:11
|
On 11-05-10 08:17 AM, Henry Gomersall wrote: ... > Right, so I've had more of a play. Using the proprietary fglrx driver, I > have no problems (using the ATI HD4350 card), as expected from Mike's > tests (btw, all tests are using Ubuntu 11.04). > > I've added another example test case to my github repository: > https://github.com/hgomersall/Blog-Code/tree/master/qml_with_simplegl_bugtest > > This adds another two files called broken_wrapper.py and > hd4350_working_wrapper.py. The external calls that are made in each case > are identical and everything I know tells me the two wrappers should do > exactly the same thing. The only difference is an extra function layer > in hd4350_working_wrapper.py. The code that is run when either wrapper > file is executed is superficially identical to the code that is run when > gl_simple.py is executed. The outcomes however are quite different: > > 1) gl_simple.py executed: Everything works as expected on both the > desktop ATI HD4350 (running r600 driver) and the laptop Intel GMA X3100 > (a red triangle and some sliders). > 2) broken_wrapper.py executed: Hangs with both the desktop and the > laptop. > 3) hd4350_working_wrapper.py executed: Runs as expected on the desktop > ATI HD4350 machine, but hangs on the laptop. > > This is the first time if teased apart a difference between the laptop > and the desktop. > > Does this suggest some kind of timing issue? The bug is starting to be > pretty unpredictable and really needs to be sorted, so assistance is > *much* appreciated. Yeah, its definitely beginning to look like some sort of timing or similar issue where the longer tear-down time of a few modules or something of that nature is causing some race condition in a thread or the like. I gather Qt is creating threads for e.g. your URL-based loading of the resource file? IIRC you did not see the same failure when using direct rendering of the widgets, so we might be seeing some tear-down problem in that thread? I see from google that there have been errors in PySide where image loading threads could cause the application to hang, it might be possible this is a similar issue, but likely more subtle in the trigger/race condition causing it. I can't test the code on my machine without the firegl driver (older radeon only has OpenGL 1.4 support with the free driver), so can't confirm behaviour on the OS driver. Afraid that's not likely much help, but good luck, Mike -- ________________________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://www.vrplumber.com http://blog.vrplumber.com |