
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

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/

Hello As stated, this is not supported, ymmv, .. Maybe we are just lucky our combination is not crashing on startup. Chimerax 1.7.0 and 1.7.1 for ubuntu22.04 (ucsf-chimerax_1.7.1ubuntu22.04_amd64.deb) are working fine both directly connected and remotely with DCV 2022 on debian12 x86_64. tru@nutlin:~$ uname -a Linux nutlin 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux tru@nutlin:~$ dcv version NICE DCV 2022.2 (r14521) ... tru@nutlin:~$ nvidia-smi Thu Feb 8 23:49:33 2024 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.147.05 Driver Version: 525.147.05 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA RTX A6000 On | 00000000:AC:00.0 Off | Off | | 30% 41C P2 74W / 300W | 892MiB / 49140MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ ... tru@nutlin:~$ chimerax WARNING: Replacing fetcher for 'pdb_nmr' and format NMRSTAR from NMRSTAR bundle with that from NMRSTAR bundle [2607218:7:0209/001048.104267:ERROR:command_buffer_proxy_impl.cc(125)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer. Data from the bug report window: OpenGL version: 4.5 (Core Profile) Mesa 22.3.6 OpenGL renderer: llvmpipe (LLVM 15.0.6, 256 bits) OpenGL vendor: Mesa/X.org Python: 3.11.2 Locale: en_US.UTF-8 Qt version: PyQt6 6.3.1, Qt 6.3.1 Qt runtime version: 6.3.2 Qt platform: xcb XDG_SESSION_TYPE=x11 DESKTOP_SESSION= XDG_SESSION_DESKTOP= XDG_CURRENT_DESKTOP=GNOME DCV_GL_DISPLAY=:0.0 DISPLAY=:0 Manufacturer: Dell Inc. Model: Precision 7960 Tower OS: Debian GNU/Linux 12 bookworm Architecture: 64bit ELF Virtual Machine: none CPU: 24 Intel(R) Xeon(R) w5-3423 Cache Size: 30720 KB Memory: total used free shared buff/cache available Mem: 250Gi 126Gi 7.0Gi 189Mi 119Gi 124Gi Swap: 119Gi 48Mi 119Gi Graphics: 0000:ac:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1) Subsystem: Dell GA102GL [RTX A6000] [1028:1459] Kernel driver in use: nvidia Installed Packages: <snip> Cheers Tru -- Tru Huynh (PhD) | mailto:tru@pasteur.fr | tel +33 1 45 68 87 37 https://research.pasteur.fr/en/team/structural-bioinformatics/ Institut Pasteur, 25-28 rue du Docteur Roux, 75724 Paris CEDEX 15 France

Looks like a bug in NICE DCV's OpenGL support. I suggest you contact them for help. Error 1282 is GL_INVALID_OPERATION. And glDrawBuffer(GL_NONE) is legal. See https://registry.khronos.org/OpenGL-Refpages/gl4/html/glDrawBuffer.xhtml. -- Greg On 1/5/2024 3:17 AM, georg.kempf--- via ChimeraX-users 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/

We could solve it with the help of DCV support. The solution was: In /etc/dcv/dcv-gl.conf the following lines needed to be added: [gl] use-sample-queries=false
participants (5)
-
Georg Kempf
-
georg.kempf@fmi.ch
-
Greg Couch
-
Tom Goddard
-
Tru Huynh