私は OpenCL/OpenGL の相互運用性についていくつかのテストを行っています。それらの 1 つは、レンダーバッファーがアタッチされた OpenGL FBO の作成で構成されます。カーネル内の関連付けられた OpenCL メモリ オブジェクト (image2d_t) にピクセルを書き込もうとしています。すべてを GPU に保持し、フレームごとに FBO をメインの OpenGL フレームバッファにブリットします。フレームバッファはサイズ変更可能なウィンドウに表示されるため、レンダバッファのサイズはさまざまです。
カーネルを実行しようとすると、幅と高さが (ローカル) ワークグループ サイズの倍数でない限り、CL_INVALID_WORKGROUP_SIZE サイズ エラーが発生します。
これは本当に必要ですか?余分なメモリをパディングしたり、幅/高さのパラメータを導入したり、回避できる場合はカーネル内に追加の境界チェックを追加したりする必要はありません...また、ワークグループサイズを 1 だけにするのも好きではありません ;-)