DPCT1059#

メッセージ#

SYCL* は、4 チャネルのイメージ形式のみをサポートしています。コードを調整します。

説明#

SYCL* は、4 チャネルのイメージ形式のみをサポートしています。この警告は、ツールがオリジナルコードに対応するサポートされていないイメージ形式のコードを生成すると出力されます。移行したコードでイメージ形式を変更できます。この回避策は、コードのパフォーマンスに影響する可能性があります。

例えば、以下は移行された SYCL* コードです。

1 // migrated SYCL code, which is using unsupported image format: 2 
3 dpct::image_wrapper<cl::sycl::uint2, 2> tex; // 2-channel image is not supported 
4 
5 void test_image(dpct::image_accessor_ext<cl::sycl::uint2, 2> acc) { 
6 cl::sycl::uint2 tex_data; 
7 tex_data = acc.read(0, 0); 
8 } 
9 int main() { 
10 ... dpct::get_default_queue().submit([&](cl::sycl::handler &cgh) { 
11 ... auto acc = tex.get_access(cgh); 
12 auto smpl = tex.get_sampler(); 
13 ... cgh.single_task<class dpct_single_kernel>([=] { 
14 test_image(dpct::image_accessor_ext<cl::sycl::uint2, 2>(smpl, acc)); 
15 }); 
16 }); 
17...18 }

このコードを手動で以下のように調整します。

1 dpct::image_wrapper<cl::sycl::uint4, 2> tex; 
2 
3 void test_image(dpct::image_accessor_ext<cl::sycl::uint4, 2> acc) { 
4 cl::sycl::uint4 tex_data; 
5 tex_data = acc.read(0, 0); 
6 } 
7 int main() { 
8 ... dpct::get_default_queue().submit([&](cl::sycl::handler &cgh) { 
9 ... auto acc = tex.get_access(cgh); 
10 auto smpl = tex.get_sampler(); 
11 ... cgh.single_task<class dpct_single_kernel>([=] { 
12 test_image(dpct::image_accessor_ext<cl::sycl::uint4, 2>(smpl, acc)); 
13 }); 
14 }); 
15 ... 16 }

修正方法の提案#

コードを修正する必要があります。