我有一个clgl interop可执行文件正在调用clCreateFromGLTexture2D
。它失败了......
clCreateFromGLTexture2D( 0x06691828, CL_MEM_WRITE_ONLY, GL_TEXTURE_2D, 0, 1, CL_INVALID_GL_OBJECT ) = 0x00000000
我正在使用GLIntercept。这里。所以我在这里使用GLIntercept生成的Opengl32.dll ... 好吧,它可以在Nvidia GTX上运行并且可以独立运行而不会拦截AMD FUSION和AMD Radeon GPU。但是,在使用开源GLIntercept时失败。
如果您对下载和重新创建问题感兴趣,可以在那里发布clgl互操作测试代码。
有没有人知道如何修复它? 以下是我的调试日志中的一些陈述......如果有帮助..
如果您有兴趣下载我正在使用的测试样本clgl互操作代码,我创建了一个开放的issue/ticket on GLIntercept code website ...
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 :(得分:0)
我没有看到你为你的纹理对象调用glTexImage2D,这基本上没有定义纹理宽度,高度和mipmaps,所以很明显它失败的原因。