DPCT1074#
メッセージ#
SYCL* イメージクラスは、オリジナルコードで使用されている一部のフラグをサポートしていません。サポートされないフラグは無視されます。SYCL* イメージから読み取られたデータは、元のコードで指定されるように正規化できませんでした。
説明#
SYCL* イメージから読み取ったデータを、標準の SYCL* API を使用して (0, 1] の範囲の浮動小数点に正規化することができません。オリジナルコードで使用されているフラグは、座標正規化モードを除いてすべて無視されます。
修正方法の提案#
コードを手動で調整してください。
例えば、以下のオリジナル CUDA* コードについて考えてみます。
1 cuSetTexFlags(tex, CU_TRSF_NORMALIZED_COORDINATES); // Need manually fix the read code if the flag CU_TRSF_READ_AS_INTEGER is unset. 2 ... 3 result = tex2D(tex, 0.5f, 0.5f);
このコードは、以下の SYCL* コードに移行されます。
1 tex.set(sycl::coordinate_normalization_mode::normalized);
2 ... 3 result = tex.read(0.5f, 0.5f); // data normalization does not match original code
このコードを以下のように手動で調整します。
1 tex.set(sycl::coordinate_normalization_mode::normalized);
2 ... 3 result = normalization(tex.read(0.5f, 0.5f)); // Implement the function "normalization" to normalize the result data as required.