I've never used ChromeOS and can't offer any support for it. That error message suggests that Playscii failed to create an OpenGL draw context, which is the most basic initialization step after the window itself is created. I don't have a clear understanding of what the OpenGL/driver environment is like in ChromeOS and thus don't know why it would fail. If you're running "python playscii.py" from a terminal (which would be the correct way to run from source), are you seeing any logged lines prior to that error? Playscii logs every step of its initialization and it would be good to know how what it reports up to that point.
Thank you for replying so quickly! Here's the full terminal log, following my inputting of "python3 playscii.py":
UserWarning: Using SDL2 binaries from pysdl2-dll 2.28.2
Playscii v9.17.1
Loading config from /home/spak0002/.config/Playscii/playscii.cfg...
Config loaded.
Detecting hardware...
CPU: x86_64
GPU: Mesa/X.org - virgl (Mesa DRI Intel(R) UHD Graphics 600 (GLK 2))
OpenGL detected: 3.1 Mesa 21.2.6
GLSL detected: 1.40
Vertex Array Object support found.
Maximum supported texture size: 16384 x 16384
Detected screen resolution: 128 x 128, window: 102 x 102
Detecting software environment...
OS: Linux-5.15.117-19680-g54e910f94133-x86_64-with-glibc2.31
Python: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] (64bit)
Modules: PySDL2 0.9.16, numpy 1.25.2, PyOpenGL 3.1.7, appdirs 1.4.4, PIL 9.5.0
SDL: 2.28.0 SDL-release-2.28.2-0-g031912c4b, SDLmixer: 2.6.1
/home/spak0002/Organised/playscii/playscii.py:429: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use LANCZOS or Resampling.LANCZOS instead.
img = img.resize((32, 32), Image.ANTIALIAS)
Traceback (most recent call last):
File "/home/spak0002/Organised/playscii/playscii.py", line 1170, in <module>
app = Application(config_dir, documents_dir, cache_dir, logger,
File "/home/spak0002/Organised/playscii/playscii.py", line 315, in __init__
self.gw = GameWorld(self)
File "/home/spak0002/Organised/playscii/game_world.py", line 118, in __init__
self.grid = GameGrid(self.app)
File "/home/spak0002/Organised/playscii/renderable_line.py", line 60, in __init__
GL.glVertexAttribPointer(self.pos_attrib, self.vert_items,
File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/latebind.py", line 63, in __call__
return self.wrapperFunction( self.baseFunction, *args, **named )
File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer
contextdata.setValue( key, array )
File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue
context = getContext( context )
File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
Hmm, I'm not sure what to make of that error. So this crash occurs as you're launching the program? It looks like you're meeting the minimum required version #s for OpenGL and GLSL support. The only thing odd from that log output is your "detected screen resolution" of 128x128 and window size of 102x102 - Playscii tries to enforce a minimum window size of 320x240, as various things get weird below that. I'm not sure that that's the cause of this crash though. Without a ChromeOS device handy I'm really not sure how to go about troubleshooting it. I searched for ChromeOS (and Chrome, and "virgl") on the PyOpenGL mailing list to see if anyone had ever confirmed it even ran on that system, and didn't find anything... but PyOpenGL is also an old and very quiet project at this point.
Sorry I can't do more to help! If you're an experienced Python programmer you might try running some of the PySDL2 (the library that creates the window, handles input, and does other stuff) and PyOpenGL (the library that issues commands to the OpenGL context) examples (or write your own if they don't exist), just to see if those respective modules can even run on your hardware.
Sure, I’ll try running some of those, and do some Googling in that respect, as well.
But, if that isn’t fruitful, I’m just gonna have to settle for using Playscii exclusively on my PC, is my feeling. Which is perfectly fine, of course; Playscii’s super interesting, and having it only on one device isn’t going to remotely discourage me from using it.
Thank you for the help!