@@ -194,6 +194,9 @@ inline ur_result_t printFlag<ur_map_flag_t>(std::ostream &os, uint32_t flag);
194194template <>
195195inline ur_result_t printFlag<ur_usm_migration_flag_t>(std::ostream &os, uint32_t flag);
196196
197+ template <>
198+ inline ur_result_t printFlag<ur_exp_device_2d_block_array_capability_flag_t>(std::ostream &os, uint32_t flag);
199+
197200template <>
198201inline ur_result_t printFlag<ur_exp_image_copy_flag_t>(std::ostream &os, uint32_t flag);
199202
@@ -325,6 +328,7 @@ inline std::ostream &operator<<(std::ostream &os, [[maybe_unused]] const struct
325328inline std::ostream &operator<<(std::ostream &os, enum ur_execution_info_t value);
326329inline std::ostream &operator<<(std::ostream &os, enum ur_map_flag_t value);
327330inline std::ostream &operator<<(std::ostream &os, enum ur_usm_migration_flag_t value);
331+ inline std::ostream &operator<<(std::ostream &os, enum ur_exp_device_2d_block_array_capability_flag_t value);
328332inline std::ostream &operator<<(std::ostream &os, enum ur_exp_image_copy_flag_t value);
329333inline std::ostream &operator<<(std::ostream &os, enum ur_exp_sampler_cubemap_filter_mode_t value);
330334inline std::ostream &operator<<(std::ostream &os, enum ur_exp_external_mem_type_t value);
@@ -2643,6 +2647,9 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) {
26432647 case UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP:
26442648 os << "UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP";
26452649 break;
2650+ case UR_DEVICE_INFO_2D_BLOCK_ARRAY_CAPABILITIES_EXP:
2651+ os << "UR_DEVICE_INFO_2D_BLOCK_ARRAY_CAPABILITIES_EXP";
2652+ break;
26462653 default:
26472654 os << "unknown enumerator";
26482655 break;
@@ -4425,6 +4432,19 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
44254432
44264433 os << ")";
44274434 } break;
4435+ case UR_DEVICE_INFO_2D_BLOCK_ARRAY_CAPABILITIES_EXP: {
4436+ const ur_exp_device_2d_block_array_capability_flags_t *tptr = (const ur_exp_device_2d_block_array_capability_flags_t *)ptr;
4437+ if (sizeof(ur_exp_device_2d_block_array_capability_flags_t) > size) {
4438+ os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_exp_device_2d_block_array_capability_flags_t) << ")";
4439+ return UR_RESULT_ERROR_INVALID_SIZE;
4440+ }
4441+ os << (const void *)(tptr) << " (";
4442+
4443+ ur::details::printFlag<ur_exp_device_2d_block_array_capability_flag_t>(os,
4444+ *tptr);
4445+
4446+ os << ")";
4447+ } break;
44284448 default:
44294449 os << "unknown enumerator";
44304450 return UR_RESULT_ERROR_INVALID_ENUMERATION;
@@ -9376,6 +9396,64 @@ inline ur_result_t printFlag<ur_usm_migration_flag_t>(std::ostream &os, uint32_t
93769396}
93779397} // namespace ur::details
93789398///////////////////////////////////////////////////////////////////////////////
9399+ /// @brief Print operator for the ur_exp_device_2d_block_array_capability_flag_t type
9400+ /// @returns
9401+ /// std::ostream &
9402+ inline std::ostream &operator<<(std::ostream &os, enum ur_exp_device_2d_block_array_capability_flag_t value) {
9403+ switch (value) {
9404+ case UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD:
9405+ os << "UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD";
9406+ break;
9407+ case UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE:
9408+ os << "UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE";
9409+ break;
9410+ default:
9411+ os << "unknown enumerator";
9412+ break;
9413+ }
9414+ return os;
9415+ }
9416+
9417+ namespace ur::details {
9418+ ///////////////////////////////////////////////////////////////////////////////
9419+ /// @brief Print ur_exp_device_2d_block_array_capability_flag_t flag
9420+ template <>
9421+ inline ur_result_t printFlag<ur_exp_device_2d_block_array_capability_flag_t>(std::ostream &os, uint32_t flag) {
9422+ uint32_t val = flag;
9423+ bool first = true;
9424+
9425+ if ((val & UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD) == (uint32_t)UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD) {
9426+ val ^= (uint32_t)UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD;
9427+ if (!first) {
9428+ os << " | ";
9429+ } else {
9430+ first = false;
9431+ }
9432+ os << UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_LOAD;
9433+ }
9434+
9435+ if ((val & UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE) == (uint32_t)UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE) {
9436+ val ^= (uint32_t)UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE;
9437+ if (!first) {
9438+ os << " | ";
9439+ } else {
9440+ first = false;
9441+ }
9442+ os << UR_EXP_DEVICE_2D_BLOCK_ARRAY_CAPABILITY_FLAG_STORE;
9443+ }
9444+ if (val != 0) {
9445+ std::bitset<32> bits(val);
9446+ if (!first) {
9447+ os << " | ";
9448+ }
9449+ os << "unknown bit flags " << bits;
9450+ } else if (first) {
9451+ os << "0";
9452+ }
9453+ return UR_RESULT_SUCCESS;
9454+ }
9455+ } // namespace ur::details
9456+ ///////////////////////////////////////////////////////////////////////////////
93799457/// @brief Print operator for the ur_exp_image_copy_flag_t type
93809458/// @returns
93819459/// std::ostream &
0 commit comments