gerddie / ginkgocadx

Advanced DICOM viewer
131 stars 38 forks source link

IsShownOnScreen() assert failing #28

Closed Niujk closed 7 years ago

Niujk commented 7 years ago

Trying to open a DICOM file using the trusty main PPA version I got this error message:

../src/common/glcmn.cpp(59): assert "IsShownOnScreen()" failed in SetCurrent(): can't make hidden GL canvas current

Assert backtrace here.

Then, inside the application, 'series' preview on the left side are buggy.

gerddie commented 7 years ago

I was able to reproduce the assertion fault, but it was within a virtual machine that uses the Virtualbox video driver which doesn't seem to implement the required extensions, end hence, OpenGL is not properly set up and creating the OpenGL context fails or is incomplete. The buggy display of the output is probably a fall-out of this problem.

When you run the program from a terminal do you see any OpenGL related error messages?

Niujk commented 7 years ago

I will test that tomorrow (I'm half-time employed) and will report back editing here. Thanks.

Edit: Tried opening from console/terminal. Getting the exact same issues. No extra OpenGL related error messages so far.

gerddie commented 7 years ago

Could you post the output on the terminal and the output of the command glxinfo (If not available it is in the mesa-utils package).

Niujk commented 7 years ago
us-pal-prv@PC-PAL-PRV:/bin$ sudo ginkgocadx 
[sudo] password for us-pal-prv: 
calling InitWX(argc, argv);
12:01:34: Debug: User config file: /home/us-pal-prv/.GinkgoUser
12:01:34: Debug: Global config file: /usr/bin/ginkgocadx.ini
12:01:34: Debug: Machine config file: /usr/bin/GinkgoMachine.ini
I: Starting Ginkgo CADx 3.8.4 32 bits

(ginkgocadx:7911): IBUS-WARNING **: The owner of /home/us-pal-prv/.config/ibus/bus is not root!
12:01:34: Debug: pTopLevel:isMaximized=1
12:01:34: Debug: Set windows size:(0, 0)
../src/common/glcmn.cpp(59): assert "IsShownOnScreen()" failed in SetCurrent(): can't make hidden GL canvas current
gerddie commented 7 years ago

Why do you sudo? What happens when you run it as normal user?

Niujk commented 7 years ago

Oh, I'm just used to it. Outputs with and without sudo are exactly the same (if we ignore the "IBUS-WARNING about root not being the owner, ofc).

calling InitWX(argc, argv);
12:12:33: Debug: User config file: /home/us-pal-prv/.GinkgoUser
12:12:33: Debug: Global config file: /usr/bin/ginkgocadx.ini
12:12:33: Debug: Machine config file: /usr/bin/GinkgoMachine.ini
I: Starting Ginkgo CADx 3.8.4 32 bits
12:12:33: Debug: pTopLevel:isMaximized=1
12:12:33: Debug: Set windows size:(0, 0)
../src/common/glcmn.cpp(59): assert "IsShownOnScreen()" failed in SetCurrent(): can't make hidden GL canvas current
gerddie commented 7 years ago

Well, as a general Unix hint for security reasons you should only sudo if really needed.

As for the bug, it seems that the bug seems to stem from the fact that on Trusty wxWidgets is in version 3.0.0, and there the assertion is used, but actually too tight as discussed here.

Since I have trusty only in a virtual machine, I can not really test this because of other errors, but there is a build of wxWidgets 3.0.2 available that you should be able to install, and this should replace the old wx libraries with the new ones. Just add this ppa and run apt-get update; apt-get upgrade and you should get version 3.0.2,

If this solves your problem, then please close the issue.

gerddie commented 7 years ago

Actually, I've copied the wxWidgets packages over to the ginkgocadx packport PPA and updated ginkgocadx to force the dependency on this newer version. So a simple apt update; apt upgrade should give you the new version.

Niujk commented 7 years ago

Okay, assert error is solved. I am able to enter Ginkgo CADx v3.8.4 with no prompts.

Series preview are still buggy. Should I close this issue and open a new one about that? Edit: I do that, seems the most reasonable thing.

Cheers.