2016-04-06 6 views
0

Verknüpfen, um herauszufinden, was das Problem (und der Fehlercode) für diesen Aufruf ist. Erstens, das funktioniert prima bei AMD, es hat nur Probleme mit nVidia.nVidia-GPU gibt 1000 zurück für clEnqueueWriteImage

unsigned char *buffer; 
... 
cl_int status; 
cl::size_t<3> origin; 
cl::size_t<3> region; 

origin[0]=0; 
origin[1]=0; 
origin[2]=0; 

region[0]=m_width; 
region[1]=m_height; 
region[2]=1; 

status=clEnqueueWriteImage(m_commandQueue, m_image, CL_FALSE, origin, region, 0, 0, buffer, 0, NULL, NULL); 

Der Status gibt -1000 zurück, was kein standardmäßiger OpenCl-Fehlercode ist. Alle anderen Funktionen, die mit dem Öffnen des Geräts, des Kontexts und der Befehlswarteschlange verbunden sind, sind alle erfolgreich. Der Kontext ist mit openGl verknüpft und auch dies ist bei AMD allesamt funktional.

Antwort

1

Für zukünftige Referenz scheint der Fehler passiert, wenn das Bild mit einer OpenGL-Textur interopiert ist und der Aufruf erfolgt, bevor das Bild mit clEnqueueAcquireGLObjects erworben wird. Ich hatte das Bild später verwendet, wenn Bilder verwendet wurden, aber nicht direkt bevor das Bild erstellt wurde. Amds Fahrer scheint sich um dieses kleine Detail nicht zu kümmern.

Verwandte Themen