#ifndef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC
#define __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#define __SYCL_PARAM_TRAITS_TEMPLATE_SPEC __SYCL_PARAM_TRAITS_SPEC
#endif
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental,device, max_global_work_groups, size_t, PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS)
__SYCL_PARAM_TRAITS_TEMPLATE_SPEC(ext::oneapi::experimental,device, max_work_groups<1>, id<1>, PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D)
__SYCL_PARAM_TRAITS_TEMPLATE_SPEC(ext::oneapi::experimental,device, max_work_groups<2>, id<2>, PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_2D)
__SYCL_PARAM_TRAITS_TEMPLATE_SPEC(ext::oneapi::experimental,device, max_work_groups<3>, id<3>, PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D)
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device, architecture,
                         ext::oneapi::experimental::architecture,
                         PI_EXT_ONEAPI_DEVICE_INFO_IP_VERSION)
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device, matrix_combinations,
                         std::vector<ext::oneapi::experimental::matrix::combination>,
                         PI_EXT_ONEAPI_DEVICE_INFO_MATRIX_COMBINATIONS)

__SYCL_PARAM_TRAITS_SPEC(
    ext::oneapi::experimental, device, graph_support,
    ext::oneapi::experimental::graph_support_level,
    0 /* No PI device code needed */)

// Bindless images pitched allocation
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device,
                         image_row_pitch_align, uint32_t,
                         PI_EXT_ONEAPI_DEVICE_INFO_IMAGE_PITCH_ALIGN)
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device,
                         max_image_linear_row_pitch, uint32_t,
                         PI_EXT_ONEAPI_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH)
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device,
                         max_image_linear_width, uint32_t,
                         PI_EXT_ONEAPI_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH)
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device,
                         max_image_linear_height, uint32_t,
                         PI_EXT_ONEAPI_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT)

// Bindles images mipmaps
__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device,
                         mipmap_max_anisotropy, float,
                         PI_EXT_ONEAPI_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY)
#ifdef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#undef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC
#undef __SYCL_PARAM_TRAITS_TEMPLATE_SPEC_NEEDS_UNDEF
#endif
