@@ -695,6 +695,54 @@ inline pi_result ur2piUSMAllocInfoValue(ur_usm_alloc_info_t ParamName,
695
695
return PI_SUCCESS;
696
696
}
697
697
698
+ // Translate UR program build info values to PI info values
699
+ inline pi_result ur2piProgramBuildInfoValue (ur_program_build_info_t ParamName,
700
+ size_t ParamValueSizePI,
701
+ size_t *ParamValueSizeUR,
702
+ void *ParamValue) {
703
+ ConvertHelper Value (ParamValueSizePI, ParamValue, ParamValueSizeUR);
704
+
705
+ if (ParamName == UR_PROGRAM_BUILD_INFO_BINARY_TYPE) {
706
+ auto ConvertFunc = [](ur_program_binary_type_t UrValue) {
707
+ switch (UrValue) {
708
+ case UR_PROGRAM_BINARY_TYPE_NONE:
709
+ return PI_PROGRAM_BINARY_TYPE_NONE;
710
+ case UR_PROGRAM_BINARY_TYPE_COMPILED_OBJECT:
711
+ return PI_PROGRAM_BINARY_TYPE_COMPILED_OBJECT;
712
+ case UR_PROGRAM_BINARY_TYPE_LIBRARY:
713
+ return PI_PROGRAM_BINARY_TYPE_LIBRARY;
714
+ case UR_PROGRAM_BINARY_TYPE_EXECUTABLE:
715
+ return PI_PROGRAM_BINARY_TYPE_EXECUTABLE;
716
+ default :
717
+ die (" ur_program_binary_type_t: unhandled value" );
718
+ }
719
+ };
720
+ return Value.convert <ur_program_binary_type_t , pi_program_binary_type>(
721
+ ConvertFunc);
722
+ }
723
+
724
+ if (ParamName == UR_PROGRAM_BUILD_INFO_STATUS) {
725
+ auto ConvertFunc = [](ur_program_build_status_t UrValue) {
726
+ switch (UrValue) {
727
+ case UR_PROGRAM_BUILD_STATUS_NONE:
728
+ return PI_PROGRAM_BUILD_STATUS_NONE;
729
+ case UR_PROGRAM_BUILD_STATUS_ERROR:
730
+ return PI_PROGRAM_BUILD_STATUS_ERROR;
731
+ case UR_PROGRAM_BUILD_STATUS_SUCCESS:
732
+ return PI_PROGRAM_BUILD_STATUS_SUCCESS;
733
+ case UR_PROGRAM_BUILD_STATUS_IN_PROGRESS:
734
+ return PI_PROGRAM_BUILD_STATUS_IN_PROGRESS;
735
+ default :
736
+ die (" ur_program_build_status_t: unhandled value" );
737
+ }
738
+ };
739
+ return Value.convert <ur_program_build_status_t , pi_program_build_status>(
740
+ ConvertFunc);
741
+ }
742
+
743
+ return PI_SUCCESS;
744
+ }
745
+
698
746
inline ur_result_t
699
747
mapPIMetadataToUR (const pi_device_binary_property *pi_metadata,
700
748
ur_program_metadata_t *ur_metadata) {
@@ -2481,10 +2529,12 @@ inline pi_result piProgramGetBuildInfo(pi_program Program, pi_device Device,
2481
2529
die (" piProgramGetBuildInfo: not implemented" );
2482
2530
}
2483
2531
}
2532
+
2533
+ size_t SizeInOut = ParamValueSize;
2484
2534
HANDLE_ERRORS (urProgramGetBuildInfo (UrProgram, UrDevice, PropName,
2485
2535
ParamValueSize, ParamValue,
2486
2536
ParamValueSizeRet));
2487
-
2537
+ ur2piProgramBuildInfoValue (PropName, ParamValueSize, &SizeInOut, ParamValue);
2488
2538
return PI_SUCCESS;
2489
2539
}
2490
2540
0 commit comments