|
10 | 10 |
|
11 | 11 | #include "common.hpp" |
12 | 12 |
|
13 | | -#include <unordered_map> |
14 | | - |
15 | | -const std::unordered_map<ur_image_channel_order_t, cl_channel_order> |
16 | | - ChannelOrderMap = { |
17 | | - {UR_IMAGE_CHANNEL_ORDER_A, CL_A}, |
18 | | - {UR_IMAGE_CHANNEL_ORDER_R, CL_R}, |
19 | | - {UR_IMAGE_CHANNEL_ORDER_RG, CL_RG}, |
20 | | - {UR_IMAGE_CHANNEL_ORDER_RA, CL_RA}, |
21 | | - {UR_IMAGE_CHANNEL_ORDER_RGB, CL_RGB}, |
22 | | - {UR_IMAGE_CHANNEL_ORDER_RGBA, CL_RGBA}, |
23 | | - {UR_IMAGE_CHANNEL_ORDER_BGRA, CL_BGRA}, |
24 | | - {UR_IMAGE_CHANNEL_ORDER_ARGB, CL_ARGB}, |
25 | | - {UR_IMAGE_CHANNEL_ORDER_ABGR, CL_ABGR}, |
26 | | - {UR_IMAGE_CHANNEL_ORDER_INTENSITY, CL_INTENSITY}, |
27 | | - {UR_IMAGE_CHANNEL_ORDER_LUMINANCE, CL_LUMINANCE}, |
28 | | - {UR_IMAGE_CHANNEL_ORDER_RX, CL_Rx}, |
29 | | - {UR_IMAGE_CHANNEL_ORDER_RGX, CL_RGx}, |
30 | | - {UR_IMAGE_CHANNEL_ORDER_RGBX, CL_RGBx}, |
31 | | - {UR_IMAGE_CHANNEL_ORDER_SRGBA, CL_sRGBA}, |
32 | | -}; |
33 | | - |
34 | | -const std::unordered_map<ur_image_channel_type_t, cl_channel_type> |
35 | | - ChannelTypeMap = { |
36 | | - {UR_IMAGE_CHANNEL_TYPE_SNORM_INT8, CL_SNORM_INT8}, |
37 | | - {UR_IMAGE_CHANNEL_TYPE_SNORM_INT16, CL_SNORM_INT16}, |
38 | | - {UR_IMAGE_CHANNEL_TYPE_UNORM_INT8, CL_UNORM_INT8}, |
39 | | - {UR_IMAGE_CHANNEL_TYPE_UNORM_INT16, CL_UNORM_INT16}, |
40 | | - {UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565, CL_UNORM_SHORT_565}, |
41 | | - {UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555, CL_UNORM_SHORT_555}, |
42 | | - {UR_IMAGE_CHANNEL_TYPE_INT_101010, CL_UNORM_INT_101010}, |
43 | | - {UR_IMAGE_CHANNEL_TYPE_SIGNED_INT8, CL_SIGNED_INT8}, |
44 | | - {UR_IMAGE_CHANNEL_TYPE_SIGNED_INT16, CL_SIGNED_INT16}, |
45 | | - {UR_IMAGE_CHANNEL_TYPE_SIGNED_INT32, CL_SIGNED_INT32}, |
46 | | - {UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8, CL_UNSIGNED_INT8}, |
47 | | - {UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16, CL_UNSIGNED_INT16}, |
48 | | - {UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32, CL_UNSIGNED_INT32}, |
49 | | - {UR_IMAGE_CHANNEL_TYPE_HALF_FLOAT, CL_HALF_FLOAT}, |
50 | | - {UR_IMAGE_CHANNEL_TYPE_FLOAT, CL_FLOAT}, |
51 | | -}; |
52 | | - |
53 | | -cl_image_format mapURImageFormatToCL(const ur_image_format_t &PImageFormat) { |
54 | | - cl_image_format CLImageFormat = {UR_IMAGE_CHANNEL_ORDER_FORCE_UINT32, |
55 | | - UR_IMAGE_CHANNEL_TYPE_FORCE_UINT32}; |
56 | | - |
57 | | - auto channelOrderIt = ChannelOrderMap.find(PImageFormat.channelOrder); |
58 | | - if (channelOrderIt != ChannelOrderMap.end()) { |
59 | | - CLImageFormat.image_channel_order = channelOrderIt->second; |
60 | | - } |
61 | | - |
62 | | - auto channelTypeIt = ChannelTypeMap.find(PImageFormat.channelType); |
63 | | - if (channelTypeIt != ChannelTypeMap.end()) { |
64 | | - CLImageFormat.image_channel_data_type = channelTypeIt->second; |
65 | | - } |
66 | | - |
67 | | - return CLImageFormat; |
68 | | -} |
69 | | - |
70 | | -ur_image_format_t mapCLImageFormatToUR(const cl_image_format *PImageFormat) { |
71 | | - ur_image_format_t URImageFormat = {UR_IMAGE_CHANNEL_ORDER_FORCE_UINT32, |
72 | | - UR_IMAGE_CHANNEL_TYPE_FORCE_UINT32}; |
73 | | - |
74 | | - auto reverseChannelOrderIt = |
75 | | - std::find_if(ChannelOrderMap.begin(), ChannelOrderMap.end(), |
76 | | - [PImageFormat](const auto &pair) { |
77 | | - return pair.second == PImageFormat->image_channel_order; |
78 | | - }); |
79 | | - if (reverseChannelOrderIt != ChannelOrderMap.end()) { |
80 | | - URImageFormat.channelOrder = reverseChannelOrderIt->first; |
81 | | - } |
82 | | - |
83 | | - URImageFormat.channelOrder = (reverseChannelOrderIt != ChannelOrderMap.end()) |
84 | | - ? reverseChannelOrderIt->first |
85 | | - : UR_IMAGE_CHANNEL_ORDER_FORCE_UINT32; |
86 | | - |
87 | | - auto reverseChannelTypeIt = std::find_if( |
88 | | - ChannelTypeMap.begin(), ChannelTypeMap.end(), |
89 | | - [PImageFormat](const auto &pair) { |
90 | | - return pair.second == PImageFormat->image_channel_data_type; |
91 | | - }); |
92 | | - if (reverseChannelTypeIt != ChannelTypeMap.end()) { |
93 | | - URImageFormat.channelType = reverseChannelTypeIt->first; |
94 | | - } |
95 | | - |
96 | | - return URImageFormat; |
97 | | -} |
98 | | - |
99 | 13 | cl_image_format mapURImageFormatToCL(const ur_image_format_t *PImageFormat) { |
100 | 14 | cl_image_format CLImageFormat; |
101 | 15 | switch (PImageFormat->channelOrder) { |
@@ -260,12 +174,6 @@ cl_int mapURMemImageInfoToCL(ur_image_info_t URPropName) { |
260 | 174 | return CL_IMAGE_HEIGHT; |
261 | 175 | case UR_IMAGE_INFO_DEPTH: |
262 | 176 | return CL_IMAGE_DEPTH; |
263 | | - case UR_IMAGE_INFO_ARRAY_SIZE: |
264 | | - return CL_IMAGE_ARRAY_SIZE; |
265 | | - case UR_IMAGE_INFO_NUM_MIP_LEVELS: |
266 | | - return CL_IMAGE_NUM_MIP_LEVELS; |
267 | | - case UR_IMAGE_INFO_NUM_SAMPLES: |
268 | | - return CL_IMAGE_NUM_SAMPLES; |
269 | 177 | default: |
270 | 178 | return -1; |
271 | 179 | } |
@@ -489,14 +397,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urMemImageGetInfo(ur_mem_handle_t hMemory, |
489 | 397 | CL_RETURN_ON_FAILURE(ClResult); |
490 | 398 | if (pPropSizeRet) { |
491 | 399 | *pPropSizeRet = CheckPropSize; |
492 | | - } else { |
493 | | - if (propName == UR_IMAGE_INFO_FORMAT) { |
494 | | - ur_image_format_t format = mapCLImageFormatToUR( |
495 | | - reinterpret_cast<const cl_image_format *>(pPropValue)); |
496 | | - return ReturnValue(format); |
497 | | - } |
498 | 400 | } |
499 | | - |
500 | 401 | return UR_RESULT_SUCCESS; |
501 | 402 | } |
502 | 403 |
|
|
0 commit comments