Hello, everyone,
I have a problem when using CL_MEM_USE_HOST_PTR. 1. I want to use CL_MEM_USE_HOST_PTR to create a buffer of self-defined structure. After operated by GPU, I will reuse the memory in host. The main method I use is: ... ... clCreateBuffer(..., (void*)p, ...); ... ... clSetKernelArg(); clEnqueueNDRangeKernel(); clFinish(); MyFunction(...,p, ...); //reuse the memory derectly pointed by p ... clReleaseContext(context); // Failed to release test userptr object! (9) i915 kernel driver may not be sane! ... Problem: clReleaseContext() return CL_SUCCESS, but hints "Failed to release test userptr object! (9) i915 kernel driver may not be sane!", and then, continue to run. 2. "./utest_run runtime_use_host_ptr_buffer" is OK, and I have read sample code runtime_use_host_ptr_buffer.cpp, main difference is: mycode:|sample of beignet: |pp = clEnqueueMapBuffer() clFinish();|MyFunction(..., pp, ...); MyFunction(..., p, ...);|clEnqueueUnmapMemObject(..., pp, ...); Question: Does this shared buffer must be used in host program just by pp, returned by map function, but not p? Does this mean that, if I put the memory to GPU, I cannot control this memory again, but just via map function? Does have some other methods, that I can get the right to control this memory in host again? Hope for helps! Thank you very much!! :-)
_______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
