Ich möchte eine Anwendung erstellen, die OpenCL verwendet, um den Farbwert jedes Pixels in einer Textur und OpenGL zum Anzeigen dieser Textur zu berechnen. Das Problem ist, dass wenn ich versuche, einen Kontext mit GL Sharing-Eigenschaften zu erstellen, das Programm einfriert. Mit der Funktion erhalte ich eine Liste [(8200, 65538), (8203, 18446744072971422270)]
. Die letzte Zahl in der Liste ist zu groß, um zu einem 64-Bit-int zu konvertieren, und ich bekomme einen Überlauffehler. Der Code Ich verwende den CL Kontext zu schaffen:PyOpenCL: gl Freigabe Kontext Erstellung fehlgeschlagen (Überlauffehler)
def cl_init():
platform = cl.get_platforms()[1]
device = platform.get_devices(cl.device_type.GPU)
from pyopencl.tools import get_gl_sharing_context_properties
print(cl.have_gl())
print(get_gl_sharing_context_properties())
print(sys.platform)
context = cl.Context(properties=[
(cl.context_properties.PLATFORM, platform)] +
get_gl_sharing_context_properties())
print("Context creation done")
queue = cl.CommandQueue(context)
Der Code nie erreicht print("Context creation done")
. Ich verwende QtPy4 und das QGLWidget, um den OpenGL-Kontext zu erstellen und die Textur anzuzeigen.
Konnten Sie das jemals zum Laufen bringen? Ich stoße gerade auf dasselbe Problem. Besonders frustrierend ist, dass 'get_gl_sharing_context_properties()' manchmal einen gültigen 64-Bit-Wert zurückgibt, aber manchmal wird es zufällig fehlschlagen ... – CodeSurgeon