Hi Georg,

  The error occurs while ChimeraX is drawing the 3D scene, specifically in computing the shadows when ambient occlusion shadows are used, ie the full and soft lighting modes.  Perhaps the graphics will work if you avoid those lighting modes.  You can test this using by setting simple lighting (command "light simple") and then restart the graphics (command "graphics restart").  ChimeraX automatically chooses the initial lighting mode when you open the first molecule based on the molecule size and you can't override that.  So even if that works it won't be convenient to use.

  The specific error is the OpenGL glDrawBuffer(GL_NONE) call fails with GL_INVALID_OPERATION.  That call is saying not to render colors, only depth, when computing shadow maps.  I don't see in the OpenGL reference documentation how that is possible.  This just seems like a bug in NICE DCV.  You might want to look at what OpenGL driver ChimeraX thinks it is using with the ChimeraX command "graphics driver".

  We *strongly* recommend you don't use remote display with ChimeraX as explained in the ChimeraX system requirements

https://www.cgl.ucsf.edu/chimerax/system_requirements.html

Besides this common situation that OpenGL graphics doesn't work reliably with existing remote display technologies, a more important reason is that the interactive responsiveness when rotating a molecule and trying to get a clear view is much poorer than running ChimeraX on the same machine that controls the display screen.  We have limited time and funding to develop ChimeraX so we do not support setting it up in these crippled remote display configurations.

Tom


On Jan 5, 2024, at 3:17 AM, georg.kempf--- via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Dear ChimeraX developers and users,

we would like to use ChimeraX in a virtual session using the “NICE DCV” software. We verified that OpenGL hardware rendering is working in the virtual session (glxinfo, glxgears, nvidia-smi) but when opening a structure in ChimeraX, we get the below error. We tried it with different versions of ChimeraX (1.8.dev202311220127, 1.6.1 stable) on Ubuntu 20.04.6 LTS. Since the error doesn’t appear when using ChimeraX on the physical display of the same workstation(s) (where the DCV server is running) it must be related to the virtual session context. I was wondering if anyone knows what could be the cause of the error and in which direction to look regarding debugging?

This is the traceback from ChimeraX:

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.

GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glDrawBuffer,
cArguments = (GL_NONE,)
)

Traceback (most recent call last):
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/core/updateloop.py", line 84, in draw_new_frame
view.draw(check_for_changes = False)
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/view.py", line 188, in draw
self._draw_scene(camera, drawings)
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/view.py", line 226, in _draw_scene
shadow, multishadow = self._compute_shadowmaps(opaque_drawings, transparent_drawings, camera)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/view.py", line 626, in _compute_shadowmaps
multishadow_enabled = r.multishadow.use_multishadow_map(shadow_drawings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 1628, in use_multishadow_map
self._start_rendering_multishadowmap(center, radius, size)
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 1711, in _start_rendering_multishadowmap
fb = r.start_depth_render(self._multishadow_map_framebuffer,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 1356, in start_depth_render
if not fb.activate():
^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 2309, in activate
fbo = self.framebuffer_id
^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 2305, in framebuffer_id
self._fbo = fbo = self._create_framebuffer()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 2141, in _create_framebuffer
fbo = self._create_fbo(self.color_texture or self._color_rb,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/chimerax/usr/lib/ucsf-chimerax-daily/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 2169, in _create_fbo
GL.glDrawBuffer(GL.GL_NONE)
File "src/errorchecker.pyx", line 58, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glDrawBuffer,
cArguments = (GL_NONE,)
)

Many thanks!

Kind regards,
Georg
_______________________________________________
ChimeraX-users mailing list -- chimerax-users@cgl.ucsf.edu
To unsubscribe send an email to chimerax-users-leave@cgl.ucsf.edu
Archives: https://mail.cgl.ucsf.edu/mailman/archives/list/chimerax-users@cgl.ucsf.edu/