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:
> 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
> 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 C. Fletcher
Designer, VR Plumber, Coder