Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#3109 closed defect (fixed)

Error drawing selection outline

Reported by: m_mlk@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Graphics Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-5.3.0-28-generic-x86_64-with-debian-buster-sid
ChimeraX Version: 0.93 (2020-04-03)
Description
Opened a PDB file.
Selected a chain.
Chimera X crashed.

Log:
UCSF ChimeraX version: 0.93 (2020-04-03)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /home/martin/Downloads/ACE2_receptor.pdb format PDB

Summary of feedback from opening /home/martin/Downloads/ACE2_receptor.pdb  
---  
warnings | Ignored bad PDB record found on line 2  
REMARK File generated by Swiss-PdbViewer 3.70b15  
  
Ignored bad PDB record found on line 3  
REMARK http://www.expasy.org/spdbv/  
  
Ignored bad PDB record found on line 22203  
SPDBVT 1.0000000000 0.0000000000 0.0000000000  
  
Ignored bad PDB record found on line 22204  
SPDBVT 0.0000000000 1.0000000000 0.0000000000  
  
Ignored bad PDB record found on line 22205  
SPDBVT 0.0000000000 0.0000000000 1.0000000000  
  
830 messages similar to the above omitted  
  
Chain information for ACE2_receptor.pdb #1  
---  
Chain | Description  
A C | No description available  
B D | No description available  
  

> select /D

6089 atoms, 6252 bonds, 1 model selected  
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.  
  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame  
view.draw(check_for_changes = False)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 166, in draw  
self._draw_scene(camera, drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 235, in _draw_scene  
r.outline.set_outline_mask() # copy depth to outline framebuffer  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/graphics/opengl.py", line 1734, in set_outline_mask  
cfb.copy_to_framebuffer(mfb, color=False)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/chimerax/graphics/opengl.py", line 2167, in copy_to_framebuffer  
GL.glBlitFramebuffer(0, 0, w, h, 0, 0, w, h, what, GL.GL_NEAREST)  
File "/usr/lib/ucsf-chimerax/lib/python3.7/site-
packages/PyOpenGL-3.1.5-py3.7.egg/OpenGL/platform/baseplatform.py", line 415,
in __call__  
return self( *args, **named )  
File "src/errorchecker.pyx", line 58, in
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError  
OpenGL.error.GLError: GLError(  
err = 1282,  
description = b'invalid operation',  
baseOperation = glBlitFramebuffer,  
cArguments = (  
0,  
0,  
1272,  
692,  
0,  
0,  
1272,  
692,  
256,  
GL_NEAREST,  
)  
)  
  




OpenGL version: 3.3 (Core Profile) Mesa 19.2.8
OpenGL renderer: llvmpipe (LLVM 9.0, 256 bits)
OpenGL vendor: VMware, Inc.
Manufacturer: innotek GmbH
Model: VirtualBox
OS: Ubuntu 18.04 bionic
Architecture: 64bit ELF
CPU: 1 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Cache Size: 6144 KB
Graphics:
	00:02.0 VGA compatible controller [0300]: VMware SVGA II Adapter [15ad:0405]
	Subsystem: VMware SVGA II Adapter [15ad:0405]
	Kernel driver in use: vmwgfx

Change History (10)

comment:1 by pett, 5 years ago

Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionError drawing selection outline

Reported by Martin Mielke

comment:2 by Tom Goddard, 5 years ago

This ChimeraX error is a problem specific to your graphics driver.

OpenGL version: 3.3 (Core Profile) Mesa 19.2.8
OpenGL renderer: llvmpipe (LLVM 9.0, 256 bits)
OpenGL vendor: VMware, Inc.

I believe it occurs when any green selection outline is drawn by ChimeraX. It is probably caused because the offscreen and onscreen framebuffers having different color or depth formats. But I don't have a machine with this driver to test on. You could try making ChimeraX use off-screen rendering in all cases with the following command that forces 16 bit color depth.

graphics quality colorDepth 16

If that fixes the selection outline drawing let me know. I can put some work-around in the code that always forces off-screen rendering for your graphics driver.

in reply to:  3 ; comment:3 by m_mlk@…, 5 years ago

Hi Tom,

I trust you are fine.

Apologies for the time it took me to reply. I lost the Ubuntu 18 VM I 
was used when I reported the error and I needed to find some free time 
to set it up again.

FYI - your proposed workaround fixed the issue and I can now select 
whichever chain I like.


Thanks,

Martin


On 2020-04-27 19:46, ChimeraX wrote:

in reply to:  4 ; comment:4 by goddard@…, 5 years ago

And just to verify with your new Ubuntu 18 VM you still get the error when you select if the work-around is not used?

in reply to:  5 ; comment:5 by goddard@…, 5 years ago

Would be good if you submit the error again with the new Ubuntu VM so I can see what OpenGL driver it is using.  I will make the work-around automatic by enabling offscreen rendering if the specific faulty OpenGL driver is being used.

in reply to:  6 ; comment:6 by goddard@…, 5 years ago

One more request.  Could you try ChimeraX command

graphics driver verbose true

and tell me the "depthbits" value reported in the Log panel?  I think the error drawing selection outlines is because this Linux VMware graphics driver is using some unusual depth buffer and the outline drawing wants a 24-bit depth buffer.    If this is the problem I could more reliably fix it rather than putting in a special VMware work-around.  Thanks for your help.

comment:7 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

Another reporter of this problem (ticket #3125) verified that the VMware driver gave a 32-bit depth buffer despite ChimeraX asking for 24-bit. Added code to test for this and work around it.

in reply to:  8 ; comment:8 by m_mlk@…, 5 years ago

In the new Ubuntu 18 VM I still get the same error when the work-around 
is NOT used.

Please see trace when it crashes when selecting the chain D:

---] START OF PASTED TEXT

select /D6089 atoms, 6252 bonds, 1 model selected
An error occurred in drawing the scene. Redrawing graphics is now 
stopped to avoid a continuous stream of error messages. To restart 
graphics use the command "graphics restart" after changing the settings 
that caused the error.

Traceback (most recent call last):
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/chimerax/core/updateloop.py", 
line 73, in draw_new_frame
view.draw(check_for_changes = False)
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/chimerax/graphics/view.py", 
line 166, in draw
self._draw_scene(camera, drawings)
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/chimerax/graphics/view.py", 
line 235, in _draw_scene
r.outline.set_outline_mask() # copy depth to outline framebuffer
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/chimerax/graphics/opengl.py", 
line 1734, in set_outline_mask
cfb.copy_to_framebuffer(mfb, color=False)
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/chimerax/graphics/opengl.py", 
line 2167, in copy_to_framebuffer
GL.glBlitFramebuffer(0, 0, w, h, 0, 0, w, h, what, GL.GL_NEAREST)
File 
"/usr/lib/ucsf-chimerax/lib/python3.7/site-packages/PyOpenGL-3.1.5-py3.7.egg/OpenGL/platform/baseplatform.py", 
line 415, in __call__
return self( *args, **named )
File "src/errorchecker.pyx", line 58, in 
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glBlitFramebuffer,
cArguments = (
0,
0,
1272,
692,
0,
0,
1272,
692,
256,
GL_NEAREST,
)
)

---] END OF PASTED TEXT



On 2020-04-30 22:09, ChimeraX wrote:

in reply to:  9 ; comment:9 by m_mlk@…, 5 years ago

Hi Tom,

this is what I get right after starting Chimera X and executing 
"graphics driver verbose true" as requested

---] START OF PASTED TEXT

graphics driver verbose truevendor: VMware, Inc.
renderer: llvmpipe (LLVM 9.0, 256 bits)
version: 3.3 (Core Profile) Mesa 19.2.8
GLSL version: 3.30
rgba bits: 8,8,8,0
depth bits: 32

[...]
---] END OF PASTED TEXT


Regards,

Martin

On 2020-05-01 03:25, ChimeraX wrote:

in reply to:  10 ; comment:10 by goddard@…, 5 years ago

Thanks.  The current ChimeraX daily build should fix the problem.
Note: See TracTickets for help on using tickets.