Comments (3)
Hi, thanks for the help, I've ended up using a dedicated render process which works quite nicely. I'll close this issue as resolved.
from moderngl.
Upon further testing a similar issue seems to occur when calling ctx.simple_vertex_array(self.prog, self.vert_buff, 'in_vert', 'in_color')
in a thread (resulting in the following error: _moderngl.Error: cannot create vertex array
). This is after having successfully called ctx.program
from the main thread.
from moderngl.
if you are using threads you must handle opengl context switching,
the opengl context can be current only in one thread.
there are some methods (begin, end) in glcontext, but not sure if you need those.
with raw api call it looks like the following:
wglMakeCurrent(...)
# can call moderngl code here
wglMakeCurrent(NULL, NULL)
check the docs what happens when another thread calls wglMakeCurrent
while the context is active in some other thread. you may have to add some mutexes.
also please do keep in mind that due to the Python GIL you have no real benefits of using threads unless those are idling on IO without the GIL being held.
the OpenGL driver is not multithreaded so whatever you do with it on multiple threads it will land in sync calls one after the other.
PS:
If you want to put rendering on a dedicated thread, that may be totally reasonable and you should make the opengl context current there and leave it like that.
from moderngl.
Related Issues (20)
- Some functions have no signature in the docs
- Converting large variables from type Int(32) to LongLong(64) HOT 2
- x11 error HOT 1
- Ubuntu 22.04 Exception:(standalone) cannot create context HOT 7
- Stencil buffer support HOT 1
- Incorrect annotation on varargs for `simple_vertex_array` HOT 1
- Problems after Robustness (after Framebuffer refactoring) HOT 5
- Exception: requested device index 0, but found 0 devices
- in-GPU-memory interoperability with Machine Learning frameworks? HOT 6
- use case for framebuffer with multiple color attachments? HOT 2
- support for clearing integer-valued textures?
- support for rendering to integer-valued textures? EDIT: Must specify `binding=` in layout clause of shader code HOT 5
- moderngl with pygame-ce fps drop HOT 3
- missing sdist for moderngl-window 2.4.6 release on pypi HOT 1
- How to access the data within a Shader Storage Buffer Object? HOT 1
- Unable to change color_mask of framebuffer when using additional color attachments HOT 1
- How to configure distinct blend_func for multiple color-attachments ?
- Context.gc() crashes with "AttributeError: 'InvalidObject' object has no attribute 'release'"
- Can't pip install moderngl HOT 3
- Problems when migrating PyOpenGL code to ModernGL HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moderngl.