From 4fb5deeec1e38bfa796b1cc0e93294ba1983b473 Mon Sep 17 00:00:00 2001 From: Sreelakshmi Haridas Maruthur Date: Tue, 28 Sep 2021 11:19:40 -0600 Subject: [PATCH] api: Enable cl_khr_fp16 when using half types in kernel (#1327) --- test_conformance/api/test_kernel_arg_info.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test_conformance/api/test_kernel_arg_info.cpp b/test_conformance/api/test_kernel_arg_info.cpp index 8073e0de..dddb4a23 100644 --- a/test_conformance/api/test_kernel_arg_info.cpp +++ b/test_conformance/api/test_kernel_arg_info.cpp @@ -167,7 +167,8 @@ static std::string generate_argument(const KernelArgInfo& kernel_arg) /* This function generates a kernel source and allows for multiple arguments to * be passed in and subsequently queried. */ static std::string generate_kernel(const std::vector& all_args, - const bool supports_3d_image_writes = false) + const bool supports_3d_image_writes = false, + const bool kernel_uses_half_type = false) { std::string ret; @@ -175,6 +176,10 @@ static std::string generate_kernel(const std::vector& all_args, { ret += "#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable\n"; } + if (kernel_uses_half_type) + { + ret += "#pragma OPENCL EXTENSION cl_khr_fp16 : enable\n"; + } ret += "kernel void get_kernel_arg_info(\n"; for (int i = 0; i < all_args.size(); ++i) { @@ -673,8 +678,8 @@ static int run_scalar_vector_tests(cl_context context, cl_device_id deviceID) if (param_size + total_param_size >= max_param_size || all_args.size() == MAX_NUMBER_OF_KERNEL_ARGS) { - const std::string kernel_src = - generate_kernel(all_args); + const std::string kernel_src = generate_kernel( + all_args, false, device_supports_half(deviceID)); failed_tests += compare_kernel_with_expected( context, deviceID, kernel_src.c_str(), expected_args); @@ -696,7 +701,8 @@ static int run_scalar_vector_tests(cl_context context, cl_device_id deviceID) } } } - const std::string kernel_src = generate_kernel(all_args); + const std::string kernel_src = + generate_kernel(all_args, false, device_supports_half(deviceID)); failed_tests += compare_kernel_with_expected( context, deviceID, kernel_src.c_str(), expected_args); return failed_tests;