2012-05-11 5 views
1

У меня есть исполняемый файл clgl interop, который звонит clCreateFromGLTexture2D. Он не подходит для этого звонка ...cl/gl interop: clCreateFromGLTexture2D с GLIntercept не работает на AMD FUSION

clCreateFromGLTexture2D(0x06691828, CL_MEM_WRITE_ONLY, GL_TEXTURE_2D, 0, 1, CL_INVALID_GL_OBJECT) = 0x00000000 

Я использую GLIntercept. Вот. Поэтому я использую Opengl32.dll, сгенерированный GLIntercept здесь ... Хорошо, он работает на Nvidia GTX и работает автономно, без перехвата на AMD FUSION с AMD Radeon GPU. Однако при использовании открытого источника GLIntercept он терпит неудачу.

clgl тест Interop код размещен там, если вы заинтересованы в загрузке и воссоздавать проблему ..

Кто-нибудь есть идеи, как это исправить? Вот некоторые высказывания из моего журнала отладки ... Если это помогает ..

Я создал открытую issue/ticket on GLIntercept code website, если вы заинтересованы в загрузке тестовый образец кода clgl Interop, который я использую для этого ...

glutInit() = 
glutInitDisplayMode(12) 
glutInitWindowSize(320, 258) 
wglChoosePixelFormat(38010929, 001EF950 PIXELFORMATDESCRIPTOR { nSize 28 nVersion 1 dwFlags 25 PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL iPixelType PFD_TYPE_RGBA cColorBits cRedBits cRedShift cGreenBits cGreenShift cBlueBits cBlueShift cAlphaBits cAlphaShift cAccumBits cAccumRedBits cAccumGreenBits cAccumBlueBits cAccumAlphaBits cDepthBits cStencilBits } 28) = 0x2 
wglGetCurrentContext() = 0x00000000 
wglGetCurrentDC() = 0x00000000 
glutCreateWindow(OpenGL-CL interraction!) = 0x1 
glClearColor(0, 0, 0, 0) 
glEnable(b71) 
glEnable(de1) 
glGenTextures(1, 0125B194 { 1} ) 
glBindTexture(de1, 1) 
glTexEnvi(2300, 2200, 1e01) 
glTexParameteri(de1, 2801, 2600) 
glTexParameteri(de1, 2800, 2600) 
glTexImage2D(de1, 0, 8058, 100, 100, 0, 1908, 1401, 00C2E858) 
glBindTexture(de1, 0) 
clGetPlatformIDs(0, NULL, 1) = CL_SUCCESS 
clGetPlatformIDs(1, 05744514, NULL) = CL_SUCCESS 
clGetDeviceIDs(05744514, CL_DEVICE_TYPE_GPU, 1, 04516F40 , NULL) = CL_SUCCESS 
clGetDeviceInfo(0x04516F40, CL_DEVICE_NAME, 400, BeaverCreek, NULL) = CL_SUCCESS 
clGetDeviceInfo(0x04516F40, CL_DEVICE_EXTENSIONS, 400, cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_khr_d3d10_sharing , NULL) = CL_SUCCESS 
wglGetCurrentContext() = 0x00020000 
wglGetCurrentDC() = 0x38010929 
wglGetCurrentContext() = 0x00020000 
clCreateContext(8200 0x20000 8203 0x38010929 4228 0x5744514, 1, 04516F40 , NULL, NULL, CL_SUCCESS) = 0x06A30828 
clCreateCommandQueue(0x06A30828, 0x04516F40, 0, CL_SUCCESS) = 0x06A69900 
clCreateProgramWithSource(0x06A30828, 1, C:\Users\inteltc\Documents\clgl_latest\Debug\clgl_1.program, CL_SUCCESS) = 0x06A6B9F8 
clBuildProgram(0x06A6B9F8, 0, NULL, NULL, NULL, NULL) = CL_SUCCESS 
clCreateKernel(0x06A6B9F8, kernel1, CL_SUCCESS) = 0x045266E0 
clCreateFromGLTexture2D(0x06A30828, CL_MEM_WRITE_ONLY, GL_TEXTURE_2D, , 0, 1, CL_INVALID_GL_OBJECT) = 0x00000000 

ответ

0

Я не вижу, что вы назвали glTexImage2D для вашего объекта текстуры, и это в основном оставляет неопределенное значение ширины, высоты и mipmaps-текстуры, поэтому совершенно очевидно, почему это не удается.

+0

На самом деле это вызвало у меня обновление вопроса с этим вызовом. Эта информация о вызове не записывалась. В любом случае я обновил вопрос с этой информацией .. – user1347494