1

を呼び出している clgl interop 実行可能ファイルがありますclCreateFromGLTexture2D。その呼び出しには失敗します...

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

私はGLInterceptを使用しています。ここ。だから私はここでGLInterceptによって生成されたOpengl32.dllを使用しています... OK、Nvidia GTXで動作し、AMD Radeon GPUを搭載したAMD FUSIONでインターセプトなしでスタンドアロンで正常に動作します。ただし、オープン ソースの GLIntercept を使用すると失敗します。

問題をダウンロードして再現することに関心がある場合は、clgl 相互運用テスト コードがそこに投稿されています。

誰かがそれを修正する方法を知っていますか? これが私のデバッグログからのいくつかのステートメントです...それが役立つ場合..

このために使用しているテスト サンプルの clgl 相互運用コードのダウンロードに興味がある場合は、GLIntercept コードの Web サイトで未解決の問題/チケットを作成しました...

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
4

1 に答える 1

0

テクスチャ オブジェクトに対して glTexImage2D を呼び出したことがわかりません。基本的に、テクスチャの幅、高さ、およびミップマップが未定義のままになっているため、失敗する理由は明らかです。

于 2012-05-12T04:08:25.307 に答える