Opened 8 years ago
Closed 8 years ago
#729 closed defect (nonchimerax)
ChimearX exits immediately after opening main window (Windows 7)
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Graphics | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
$ ./ChimeraX.exe --debug Initializing core Toolshed: __init__ False False None Toolshed: cache dir: C:\Users\hsosa\AppData\Local\UCSF\ChimeraX\Cache\0.1\toolshed Toolshed: data dir: C:\Users\hsosa\AppData\Local\UCSF\ChimeraX\0.1\toolshed Toolshed: site dir: C:\Users\hsosa\AppData\Local\UCSF\ChimeraX\0.1\site-packages Toolshed: loading bundles Toolshed: reload False False Toolshed: _bundle_cache False Toolshed: changing METADATA_FILENAME metadata.json Toolshed: InstalledBundleCache.load: rebuild_cache False Toolshed: InstalledBundleCache._read_cache: C:\Users\hsosa\AppData\Local\UCSF\ChimeraX\Cache\0.1\toolshed\bundle_info.cache Toolshed: _is_cache_newer Toolshed: InstalledBundleCache._read_cache: 47 bundles Toolshed: InstalledBundleCache.load: using cached data Toolshed: changing back METADATA_FILENAME pydist.json Toolshed: delay_registration info Toolshed: delay_registration listinfo Toolshed: delay_registration struts Toolshed: register_file_type cellpack Toolshed: register_file_type StereoLithography Toolshed: delay_registration device vr Toolshed: delay_registration vr Toolshed: register_file_type MMTF Toolshed: delay_registration device snav Toolshed: register_file_type IHM Toolshed: register_file_type Binary Coordinates Toolshed: delay_registration remotecontrol rest Toolshed: register_file_type Gromacs full-precision coordinates Toolshed: register_file_type Gromacs compressed coordinates Toolshed: register_file_type DCD coordinates Toolshed: delay_registration remotecontrol xmlrpc Toolshed: delay_registration debug test Toolshed: delay_registration sequence Toolshed: register_file_type FASTA Toolshed: register_file_type MSF Toolshed: register_file_type PIR Toolshed: delay_registration echo Toolshed: delay_registration log Toolshed: delay_registration crosslinks Toolshed: register_file_type STORM Toolshed: delay_registration morph Toolshed: delay_registration 2dlabels Toolshed: register_file_type VTK PolyData Toolshed: delay_registration addmissingatoms Toolshed: delay_registration mlp Toolshed: delay_registration cage Toolshed: delay_registration contacts Toolshed: delay_registration mseries Toolshed: delay_registration smoothlines Toolshed: delay_registration help Toolshed: register_file_type HTML Toolshed: delay_registration resfit Toolshed: delay_registration blastprotein Toolshed: delay_registration blastpdb Toolshed: register_file_type Directional FSC Toolshed: delay_registration ks Toolshed: delay_registration matchmaker Toolshed: delay_registration mmaker Toolshed: delay_registration ribbon Toolshed: delay_registration ribbon hide Toolshed: _get_api chimerax.exp_cmd <module 'chimerax.exp_cmd' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\exp_cmd\\__init__.py'> <chimerax.exp_cmd._MyAPI object at 0x0000000009CDDDD8> Toolshed: delay_registration ~ribbon Toolshed: delay_registration getcrd Toolshed: delay_registration debug Toolshed: delay_registration movie Toolshed: register_file_type Sybyl Mol2 Toolshed: finished loading bundles Initializing bundles Toolshed: <chimerax.core.logger.Logger object at 0x0000000002C464E0> initialize_bundles Toolshed: AvailableBundleCache.load: toolshed_url https://cxtoolshed.rbvi.ucsf.edu Toolshed: AvailableBundleCache.load: url https://cxtoolshed.rbvi.ucsf.edu/bundle/ Toolshed: _get_api chimerax.tug <module 'chimerax.tug' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\tug\\__init__.py'> <chimerax.tug._TugAPI object at 0x0000000009CEB208> Toolshed: _get_api chimerax.rest_server <module 'chimerax.rest_server' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\rest_server\\__init__.py'> <chimerax.rest_server._MyAPI object at 0x0000000009CF3588> Toolshed: _get_api chimerax.seqalign <module 'chimerax.seqalign' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\seqalign\\__init__.py'> <chimerax.seqalign._AlignmentsBundleAPI object at 0x0000000009CF3940> Toolshed: _get_api chimerax.map_series_gui <module 'chimerax.map_series_gui' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\map_series_gui\\__init__.py'> <chimerax.map_series_gui._MyAPI object at 0x0000000009CFE748> Toolshed: _get_api chimerax.match_maker <module 'chimerax.match_maker' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\match_maker\\__init__.py'> <chimerax.match_maker._MyAPI object at 0x0000000009D0E908> Toolshed: _get_api chimerax.mav <module 'chimerax.mav' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\mav\\__init__.py'> <chimerax.mav._MavBundleAPI object at 0x0000000009D15358> Starting main interface Toolshed: _get_api chimerax.shortcuts <module 'chimerax.shortcuts' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\shortcuts\\__init__.py'> <chimerax.shortcuts._MyAPI object at 0x000000000AC097F0> Toolshed: _get_api chimerax.log <module 'chimerax.log' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\log\\__init__.py'> <chimerax.log._MyAPI object at 0x000000000AC3E470> Toolshed: _get_api chimerax.model_panel <module 'chimerax.model_panel' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\model_panel\\__init__.py'> <chimerax.model_panel._MyAPI object at 0x000000000C661400> Toolshed: _get_api chimerax.mouse_modes <module 'chimerax.mouse_modes' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\mouse_modes\\__init__.py'> <chimerax.mouse_modes._MyAPI object at 0x000000000C6840F0> Toolshed: _get_api chimerax.shortcuts <module 'chimerax.shortcuts' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\shortcuts\\__init__.py'> <chimerax.shortcuts._MyAPI object at 0x000000000AC097F0> Toolshed: _get_api chimerax.cmd_line <module 'chimerax.cmd_line' from 'C:\\Program Files\\ChimeraX\\bin\\lib\\site-packages\\chimerax\\cmd_line\\__init__.py'> <chimerax.cmd_line._MyAPI object at 0x000000000C68C320> Finished initialization Toolshed: processing tool: Tempy Toolshed: processing command: sccc Toolshed: processing command: stringdb Toolshed: processing command: cytoscape Toolshed: processing tool: ISOLDE Toolshed: processing command: fps Toolshed: processing command: isolde Toolshed: processing tool: Clipper Toolshed: processing tool: Clipper Toolshed: processing tool: ISOLDE Toolshed: processing command: fps Toolshed: processing command: isolde Toolshed: processing tool: ISOLDE Toolshed: processing command: fps Toolshed: processing command: isolde Toolshed: processing tool: ISOLDE Toolshed: processing command: fps Toolshed: processing command: isolde Traceback (most recent call last): File "C:\Program Files\ChimeraX\bin\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "C:\Program Files\ChimeraX\bin\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Program Files\ChimeraX\bin\lib\site-packages\ChimeraX_main.py", line 677, in <module> exit_code = init(sys.argv) File "C:\Program Files\ChimeraX\bin\lib\site-packages\ChimeraX_main.py", line 525, in init sess.logger.info('OpenGL version: ' + r.opengl_version()) File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\core\graphics\opengl.py", line 575, in opengl_version return GL.glGetString(GL.GL_VERSION).decode('utf-8') File "C:\Program Files\ChimeraX\bin\lib\site-packages\OpenGL\platform\baseplatform.py", line 402, in __call__ return self( *args, **named ) File "zr\accelerate\src\errorchecker.pyx", line 53, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError (src\errorchecker.c:1270) OpenGL.error.GLError: GLError( err = 1280, description = b'invalid enumerant', baseOperation = glGetString, cArguments = (GL_VERSION,), result = b'3.3.12002 Core Profile Forward-Compatible Context 9.12.0.0' )
Change History (8)
comment:1 by , 8 years ago
Component: | Unassigned → Graphics |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimearX exits immediately after openin main window (Windows 7) → ChimearX exits immediately after opening main window (Windows 7) |
comment:2 by , 8 years ago
comment:3 by , 8 years ago
I've reproduced this on a very old Windows 7 box. It starts ChimeraX, shows the main window, then flashes up a dialog box that is blank and probably shows an error and immediately disappears. Unfortunately --debug at a Windows Command Prompt does not give any output. Looks like you used cygwin. This is a test lab machine that I can't install cygwin on since we use it to test without development environment.
follow-up: 4 comment:4 by , 8 years ago
Yes I ran it from a cygwin terminal window/ Hernando Sosa Dept. of Physiology and Biophysics Albert Einstein College of Medicine 1300 Morris Park Av. Bronx NY 10461 phone (718) 430-3456 FAX (718) 430-8819 email hernando.sosa@einstein.yu.edu -----Original Message----- From: ChimeraX [mailto:ChimeraX-bugs-admin@cgl.ucsf.edu] Sent: Friday, June 16, 2017 6:25 PM Cc: goddard@cgl.ucsf.edu; Hernando J Sosa Subject: Re: [ChimeraX] #729: ChimearX exits immediately after opening main window (Windows 7) #729: ChimearX exits immediately after opening main window (Windows 7) --------------------------------------+---------------------- Reporter: hernando.sosa@… | Owner: goddard Type: defect | Status: assigned Priority: normal | Milestone: Component: Graphics | Version: Resolution: | Keywords: Blocked By: | Blocking: Notify when closed: | Platform: all Project: ChimeraX | --------------------------------------+---------------------- Comment (by goddard): I've reproduced this on a very old Windows 7 box. It starts ChimeraX, shows the main window, then flashes up a dialog box that is blank and probably shows an error and immediately disappears. Unfortunately --debug at a Windows Command Prompt does not give any output. Looks like you used cygwin. This is a test lab machine that I can't install cygwin on since we use it to test without development environment. -- Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/729#comment:3> ChimeraX <http://www.rbvi.ucsf.edu/chimerax/> ChimeraX Issue Tracker
comment:5 by , 8 years ago
Testing shows that Qt gets some OpenGL error before the ChimeraX uses any OpenGL and then when we use our first OpenGL call it produces an error and causes the program to quit. If I clear that error the ChimeraX starts and can display a molecule, and rotate it. But if I turn on shadows it gets another OpenGL error caused by an incomplete framebuffer. It is possible that ChimeraX OpenGL is using something beyond OpenGL 3.3. When I ask for OpenGL 4.1 the driver cannot provide it and ChimeraX exits at startup (needs to be fixed to show message). Another possibility is that the graphics driver is not compliant with 3.3.
This will require more testing and better error handling in ChimeraX. But ultimately the problem is very likely that the graphics driver is not up to the job and you need to either update your driver or use ChimeraX on a more modern computer.
comment:6 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I put in code to report and ignore this OpenGL error on startup. On my test machine (old Windows 7 with AMD Radeon HD4850] it then ran into an error with shadows not being able to create the framebuffer. I fixed that with some extra code -- may be a driver bug, or maybe a ChimeraX bug where it wanted the new shadow framebuffer to be explicitly told it was depth only with no color buffer. After that it hit another OpenGL shader error "unexpected error" during shader compilation when using ambient shadows. Some debugging showed this could be avoided if the maximum number of shadow directions that OpenGL said it could handle (size of uniform matrix array in shader) was cut from 1024 to 512. This driver bug I have no simple way to detect. But I added new error code that will suggest updating the graphics driver when a shader compilation fails. Also added a "graphics restart" command if you turn off ambient shadows and want the graphics to come back to life.
All these improvements are aimed at giving better feedback when the computer has an inadequate graphics driver, which will be common for older (more than 3 year old) computers.
comment:7 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:8 by , 8 years ago
Resolution: | → nonchimerax |
---|---|
Status: | reopened → closed |
ChimeraX fails to start because of an OpenGL error. It is a strange message because it does not appear to be an error in the OpenGL call that is being made to get the version -- in fact that call returns that it got OpenGL 3.3. But the way OpenGL works it saves the last error until it is cleared, so apparently an OpenGL error occurred earlier. But this is the first explicit OpenGL call our code does. So the error must have been in Qt code that setup the OpenGL context. But our Qt calls to do that don't return any error.
At any rate, the problem is almost certainly a deficient system OpenGL driver. But it may be that if we ignore (just log it) that error maybe ChimeraX will function. I'm going to test on an ancient Windows 7 machine to see if I can get this error, and if we have such a machine try to put in code to check, log and clear the OpenGL error.