@@ -37,16 +37,19 @@ ur_result_t ze2urImageFormat(const ze_image_desc_t *ZeImageDesc,
37
37
switch (ZeImageFormat.layout ) {
38
38
case ZE_IMAGE_FORMAT_LAYOUT_8:
39
39
case ZE_IMAGE_FORMAT_LAYOUT_8_8:
40
+ case ZE_IMAGE_FORMAT_LAYOUT_8_8_8:
40
41
case ZE_IMAGE_FORMAT_LAYOUT_8_8_8_8:
41
42
ZeImageFormatTypeSize = 8 ;
42
43
break ;
43
44
case ZE_IMAGE_FORMAT_LAYOUT_16:
44
45
case ZE_IMAGE_FORMAT_LAYOUT_16_16:
46
+ case ZE_IMAGE_FORMAT_LAYOUT_16_16_16:
45
47
case ZE_IMAGE_FORMAT_LAYOUT_16_16_16_16:
46
48
ZeImageFormatTypeSize = 16 ;
47
49
break ;
48
50
case ZE_IMAGE_FORMAT_LAYOUT_32:
49
51
case ZE_IMAGE_FORMAT_LAYOUT_32_32:
52
+ case ZE_IMAGE_FORMAT_LAYOUT_32_32_32:
50
53
case ZE_IMAGE_FORMAT_LAYOUT_32_32_32_32:
51
54
ZeImageFormatTypeSize = 32 ;
52
55
break ;
@@ -98,7 +101,29 @@ ur_result_t ze2urImageFormat(const ze_image_desc_t *ZeImageDesc,
98
101
default :
99
102
logger::error (
100
103
" ze2urImageFormat: unexpected image format channel y: y = {}\n " ,
101
- ZeImageFormat.x );
104
+ ZeImageFormat.y );
105
+ return UR_RESULT_ERROR_INVALID_VALUE;
106
+ }
107
+ break ;
108
+ case ZE_IMAGE_FORMAT_LAYOUT_8_8_8:
109
+ case ZE_IMAGE_FORMAT_LAYOUT_16_16_16:
110
+ case ZE_IMAGE_FORMAT_LAYOUT_32_32_32:
111
+ if (ZeImageFormat.x != ZE_IMAGE_FORMAT_SWIZZLE_R &&
112
+ ZeImageFormat.y != ZE_IMAGE_FORMAT_SWIZZLE_G) {
113
+ logger::error (" ze2urImageFormat: unexpected image format channel" );
114
+ return UR_RESULT_ERROR_INVALID_VALUE;
115
+ }
116
+ switch (ZeImageFormat.z ) {
117
+ case ZE_IMAGE_FORMAT_SWIZZLE_B:
118
+ ChannelOrder = UR_IMAGE_CHANNEL_ORDER_RGB;
119
+ break ;
120
+ case ZE_IMAGE_FORMAT_SWIZZLE_X:
121
+ ChannelOrder = UR_IMAGE_CHANNEL_ORDER_RGX;
122
+ break ;
123
+ default :
124
+ logger::error (
125
+ " ze2urImageFormat: unexpected image format channel z: z = {}\n " ,
126
+ ZeImageFormat.z );
102
127
return UR_RESULT_ERROR_INVALID_VALUE;
103
128
}
104
129
break ;
@@ -303,6 +328,24 @@ ur_result_t ur2zeImageDesc(const ur_image_format_t *ImageFormat,
303
328
}
304
329
break ;
305
330
}
331
+ case UR_IMAGE_CHANNEL_ORDER_RGB:
332
+ case UR_IMAGE_CHANNEL_ORDER_RGX: {
333
+ switch (ZeImageFormatTypeSize) {
334
+ case 8 :
335
+ ZeImageFormatLayout = ZE_IMAGE_FORMAT_LAYOUT_8_8_8;
336
+ break ;
337
+ case 16 :
338
+ ZeImageFormatLayout = ZE_IMAGE_FORMAT_LAYOUT_16_16_16;
339
+ break ;
340
+ case 32 :
341
+ ZeImageFormatLayout = ZE_IMAGE_FORMAT_LAYOUT_32_32_32;
342
+ break ;
343
+ default :
344
+ logger::error (" ur2zeImageDesc: unexpected data type size" );
345
+ return UR_RESULT_ERROR_INVALID_VALUE;
346
+ }
347
+ break ;
348
+ }
306
349
default :
307
350
logger::error (" format channel order = {}" , ImageFormat->channelOrder );
308
351
die (" ur2zeImageDesc: unsupported image channel order\n " );
0 commit comments