を指していないこととJOCLポインタは、私はJavaの持つパラメータとしてイメージを持っているカーネルを使用していたオブジェクトをゼロにするためにJavaのOpenCLの
input ="12.jpg";
image = createBufferedImage(input);
image = createBufferedImage(input);
DataBufferInt dataBufferSrc = (DataBufferInt)image.getRaster().getDataBuffer();
int dataSrc[] = dataBufferSrc.getData();
inputImageMem = clCreateBuffer(context, CL_MEM_READ_ONLY| CL_MEM_USE_HOST_PTR,
dataSrc.length * Sizeof.cl_uint, Pointer.to(dataSrc), null);
clSetKernelArg(kernel, 0, Sizeof.cl_mem, Pointer.to(inputImageMem));
私はコンパイルするとき、私はエラーを取得:
Pointer may not point to null objects
それはラインの中にあります:
clSetKernelArg(kernel, 0, Sizeof.cl_mem, Pointer.to(inputImageMem));
考えられる問題は何ですか?どうすれば修正できますか?
PS:createBufferedImage
はOpenCLのclCreateBuffer documentationからJOCLサンプル http://jocl.org/
ドキュメントでは、バッファの値がNULLの場合、errcode_retに返される次のエラー値のいずれかを返してNULLに戻ります。** CL_INVALID_CONTEXT **または** CL_INVALID_VALUE **または** CL_INVALID_BUFFER_SIZE * *または** CL_INVALID_HOST_PTR **または.....ですが、私のコード内にあります。「ポインタがnullオブジェクトを指していない可能性があります」エラーを表示する方法はありますか? –
@ NasimaInfoあなた自身で行う必要があります:エラー値を含むポインタを 'clCreateBuffer'の最後の引数として渡します。私はそれがJavaでどのように動作するかは完全にはわかりません。ポインタはC/C++のものであり、javaはそれらを使用すべきではありません。 JOCL Pointerクラスは、その周りに奇妙なハックのようなものです。整数へのポインタオブジェクトを作成し、 'clCreateBuffer'の最後の引数として渡し、何らかのエラーコードと等しいかどうかを確認してください...?私は本当にJavaの専門家やポインタの専門家ではありません。 – Kilves
'あなたがPointer.to()を呼び出しているので、ポインタがnullオブジェクトの論理を指していない可能性があります。ポインタはあなたにエラーを与えるものです。しかし、ソースはclCreateBuffer()にあります – DarkZeros