bnpr / Malt

Render framework for NPR.
https://malt3d.com
Other
952 stars 75 forks source link

glGetError crash when selecting Malt as Render Engine #491

Open Pauan opened 1 year ago

Pauan commented 1 year ago

Malt version

blender-3.3-last-version

Blender version

3.3.1

OS

NixOS Unstable 64-bit

Hardware info

AMD Ryzen 9 5900X 12-Core | 64 GB RAM | AMD Radeon RX 6800 XT

Issue description and reproduction steps

I was able to install Malt successfully, but when I try to select Malt in the Render Engine dropdown I get this crash:

SETUP IOCapture
Process SpawnProcess-2:
Traceback (most recent call last):
  File "/nix/store/iw1vmh509hcbby8dbpsaanbri4zsq7dj-python3-3.10.10/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/nix/store/iw1vmh509hcbby8dbpsaanbri4zsq7dj-python3-3.10.10/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Bridge/__init__.py", line 21, in start_server
    from . import Server
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Bridge/Server.py", line 8, in <module>
    from Malt.GL import GL
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/GL/GL.py", line 7, in <module>
    from OpenGL.GL import *
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/.Dependencies-310/OpenGL/GL/__init__.py", line 4, in <module>
    from OpenGL.GL.VERSION.GL_1_1 import *
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/.Dependencies-310/OpenGL/GL/VERSION/GL_1_1.py", line 14, in <module>
    from OpenGL.raw.GL.VERSION.GL_1_1 import *
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/.Dependencies-310/OpenGL/raw/GL/VERSION/GL_1_1.py", line 7, in <module>
    from OpenGL.raw.GL import _errors
  File "/home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/.Dependencies-310/OpenGL/raw/GL/_errors.py", line 4, in <module>
    _error_checker = _ErrorChecker( _p, _p.GL.glGetError )
AttributeError: 'NoneType' object has no attribute 'glGetError'

Am I missing an OpenGL dependency or something? Other OpenGL programs work fine on my system.

Attachments

I can't provide a session log because Blender hard crashes, and there is no log file in /tmp

Pauan commented 1 year ago

I tested with Blender 3.4.1 and:

They all give the same error.

pragma37 commented 1 year ago

The PyOpenGL library is included with the addon download, but it's failing to load. I have no idea what could be going on and I certainly can't reproduce it myself.

If you haven't, I'd try using the official Blender version (https://www.blender.org/download/).

Pauan commented 1 year ago

It is the official Blender version, it's downloaded from https://download.blender.org/source/blender-3.4.1.tar.xz. I can run dozens of other addons fine, I can use LuxCore fine, and regular rendering with Cycles / Eevee also works fine.

I assume it's doing some sort of dynamic loading, but which folder is it loading from, and how is it loading the OpenGL library?

pragma37 commented 1 year ago

I assume it's doing some sort of dynamic loading, but which folder is it loading from, and how is it loading the OpenGL library?

The OpenGL loading is handled by PyOpenGL (the "standard" python OpenGL bindings), which is included in the BlenderMalt addon (from your log /home/pauan/.config/blender/3.3/scripts/addons/BlenderMalt/.MaltPath/Malt/.Dependencies-310/OpenGL). When Malt starts its own process it tried to import it, but it looks like some part of the PyOpenGL initialization is failing.

I guess this is some distro-related issue. You can try to follow the steps from How to Setup BlenderMalt for Development, maybe using your distro python installation (make sure it's 3.10) instead of the one that comes with Blender.

DavidRuales commented 1 year ago

I have a question, it is necessary to update hardware to use it, I think AMD patocizes Blender with that condition

Pauan commented 1 year ago

@DavidRuales I have a Radeon RX 6800 XT, it's quite recent hardware, and it is supported by Blender (I can use GPU rendering in Blender with Cycles).