Skip to content

Commit 37bb6a2

Browse files
authored
[SYCL][PI][UR] Fix pi2ur sampler return info (#9693)
pi2ur was missing a conversion from UnifiedRuntime sampler info values to valid PI sampler Info values. This PR implements a valid conversion between these values.
1 parent 2ab86f1 commit 37bb6a2

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

sycl/plugins/unified_runtime/pi2ur.hpp

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,54 @@ inline pi_result ur2piDeviceInfoValue(ur_device_info_t ParamName,
381381
return PI_SUCCESS;
382382
}
383383

384+
inline pi_result ur2piSamplerInfoValue(ur_sampler_info_t ParamName,
385+
size_t ParamValueSizePI,
386+
size_t *ParamValueSizeUR,
387+
void *ParamValue) {
388+
389+
ConvertHelper Value(ParamValueSizePI, ParamValue, ParamValueSizeUR);
390+
switch (ParamName) {
391+
case UR_SAMPLER_INFO_ADDRESSING_MODE: {
392+
auto ConvertFunc = [](ur_sampler_addressing_mode_t UrValue) {
393+
switch (UrValue) {
394+
case UR_SAMPLER_ADDRESSING_MODE_CLAMP:
395+
return PI_SAMPLER_ADDRESSING_MODE_CLAMP;
396+
case UR_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE:
397+
return PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE;
398+
case UR_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT:
399+
return PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT;
400+
case UR_SAMPLER_ADDRESSING_MODE_NONE:
401+
return PI_SAMPLER_ADDRESSING_MODE_NONE;
402+
case UR_SAMPLER_ADDRESSING_MODE_REPEAT:
403+
return PI_SAMPLER_ADDRESSING_MODE_REPEAT;
404+
405+
default:
406+
die("UR_SAMPLER_ADDRESSING_MODE_TYPE: unhandled value");
407+
}
408+
};
409+
return Value
410+
.convert<ur_sampler_addressing_mode_t, pi_sampler_addressing_mode>(
411+
ConvertFunc);
412+
}
413+
case UR_SAMPLER_INFO_FILTER_MODE: {
414+
auto ConvertFunc = [](ur_sampler_filter_mode_t UrValue) {
415+
switch (UrValue) {
416+
case UR_SAMPLER_FILTER_MODE_LINEAR:
417+
return PI_SAMPLER_FILTER_MODE_LINEAR;
418+
case UR_SAMPLER_FILTER_MODE_NEAREST:
419+
return PI_SAMPLER_FILTER_MODE_NEAREST;
420+
default:
421+
die("UR_SAMPLER_FILTER_MODE: unhandled value");
422+
}
423+
};
424+
return Value.convert<ur_sampler_filter_mode_t, pi_sampler_filter_mode>(
425+
ConvertFunc);
426+
}
427+
default:
428+
return PI_SUCCESS;
429+
}
430+
}
431+
384432
// Translate UR device info values to PI info values
385433
inline pi_result ur2piUSMAllocInfoValue(ur_usm_alloc_info_t ParamName,
386434
size_t ParamValueSizePI,
@@ -3821,6 +3869,7 @@ inline pi_result piSamplerGetInfo(pi_sampler Sampler, pi_sampler_info ParamName,
38213869
auto hSampler = reinterpret_cast<ur_sampler_handle_t>(Sampler);
38223870
HANDLE_ERRORS(urSamplerGetInfo(hSampler, InfoType, SizeInOut, ParamValue,
38233871
ParamValueSizeRet));
3872+
ur2piSamplerInfoValue(InfoType, ParamValueSize, &ParamValueSize, ParamValue);
38243873
fixupInfoValueTypes(SizeInOut, ParamValueSizeRet, ParamValue);
38253874

38263875
return PI_SUCCESS;

0 commit comments

Comments
 (0)