Hi guys. there is error that annoys me several days.
PC info : win10 , Intel Core I5-5200U CPU with HD Graphics 5500. driver version:10.18.15.4248,driver date:6/19/2015
My program uses OpenCL and Directx9. But OpenCL doesn't interlace with Directx9, that means I use OpenCL to process image data, copy the data back to host,and then data will be processed for other method. At last the data will display with Directx9.
Program is multi-thread. For class of processing image data,there will be several thread to call the same function through overload for different methods, but there is one entity for this class. and only one method uses OpenCL. Supposed, thread A and B will execute this class,and thread B used OpenCL, and thread C will execute display with Directx9.
I find that:
1)if threadA initializes and releases OpenCL resouces, threadB uses OpenCL with creating buffer and launching kernel, thread C executes the normal code. OpenCL code executes successfully ,but if thread A and thread B exit,there is a error that display driver stopped responding and has recovered.
2) thread A and B do the same operations as above,thread C doesn't execute Directx9 code. there is no error.
3) if thread B initializes OpenCL resouces, and uses OpenCL, thread A release OpenCL resouces. thread C executes the normal code.. there is no error.
4) I change the PC ,with the same driver ,but GPU is HD 4600. for 1),there is no error.
program is the commercial product, so I can't upload the code .sorry.
I can't explain this error. Can somebody help me ? thx!