OK, Your patchset also LGTM, will push them later, thanks. > -----Original Message----- > From: Weng, Chuanbo > Sent: Thursday, October 13, 2016 17:22 > To: Rebecca N. Palmer <[email protected]>; > [email protected]; Yang, Rong R <[email protected]> > Subject: RE: [Beignet] [PATCH v4] Utests: Allow testing cl_intel_accelerator > via ICD > > This version LGTM. Thanks for your patch, Rebecca. > Rong, I've also sent out a patchset to fix the problem I mentioned in previous > e-mail: > > > There is a bug in Beignet: cl_intel_motion_estimation is supported by > > IVB only, but all devices show string cl_intel_motion_estimation in their > CL_DEVICE_EXTENSIONS. I'll work out a patch to fix this problem. > > Patchset here: > https://lists.freedesktop.org/archives/beignet/2016- > October/008123.html > https://lists.freedesktop.org/archives/beignet/2016- > October/008124.html > > Please push my patchset at first and then push Rebecca's patch. Otherwise > there will be FAIL on non-IVB platform. > > Thanks, > Chuanbo Weng > > > -----Original Message----- > From: Rebecca N. Palmer [mailto:[email protected]] > Sent: Thursday, October 13, 2016 6:38 AM > To: Weng, Chuanbo <[email protected]>; > [email protected] > Subject: Re: [Beignet] [PATCH v4] Utests: Allow testing cl_intel_accelerator > via ICD > > v3: Use extension check, not beignet check. Treat claiming to have the > extension but not having the kernel as a failure. > v4: Make extension check a function, use stderr. > --- > > There is a bug in Beignet: cl_intel_motion_estimation is supported by > > IVB only, but all devices show string cl_intel_motion_estimation in their > CL_DEVICE_EXTENSIONS. I'll work out a patch to fix this problem. > src/cl_extensions.c:72 - all Intel extensions are always "available", whether > or not they work on the current device. > > --- a/utests/builtin_kernel_block_motion_estimate_intel.cpp > +++ b/utests/builtin_kernel_block_motion_estimate_intel.cpp > @@ -8,6 +8,9 @@ OCLRELEASEACCELERATORINTEL * oclReleaseA > > void builtin_kernel_block_motion_estimate_intel(void) > { > + if (!cl_check_motion_estimation()) { > + return; > + } > char* built_in_kernel_names; > size_t built_in_kernels_size; > cl_int err = CL_SUCCESS; > @@ -21,7 +24,8 @@ void builtin_kernel_block_motion_estimat > if (strstr(built_in_kernel_names, "block_motion_estimate_intel") == NULL) > { > free(built_in_kernel_names); > - return; > + fprintf(stderr, "Can't find block_motion_estimate_intel built-in > kernel"); > + OCL_ASSERT(0); > } > > cl_program built_in_prog = clCreateProgramWithBuiltInKernels(ctx, 1, > &device, built_in_kernel_names, &err); > --- a/utests/CMakeLists.txt > +++ b/utests/CMakeLists.txt > @@ -287,7 +287,8 @@ set (utests_sources > multi_queue_events.cpp > compiler_mix.cpp > compiler_math_3op.cpp > - compiler_bsort.cpp) > + compiler_bsort.cpp > + builtin_kernel_block_motion_estimate_intel.cpp) > > if (LLVM_VERSION_NODOT VERSION_GREATER 34) > SET(utests_sources > @@ -328,7 +329,6 @@ else(GEN_PCI_ID) > endif(GEN_PCI_ID) > > if (NOT_BUILD_STAND_ALONE_UTEST) > - SET(utests_sources ${utests_sources} > builtin_kernel_block_motion_estimate_intel.cpp) > ADD_CUSTOM_TARGET(kernel_bin.bin DEPENDS ${kernel_bin}.bin) endif > (NOT_BUILD_STAND_ALONE_UTEST) > > --- a/utests/utest_helper.cpp > +++ b/utests/utest_helper.cpp > @@ -875,6 +875,24 @@ int cl_check_beignet(void) > return 1; > } > > +int cl_check_motion_estimation(void) > +{ > + std::string extStr; > + size_t param_value_size; > + OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_EXTENSIONS, 0, 0, > +¶m_value_size); > + std::vector<char> param_value(param_value_size); > + OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_EXTENSIONS, > param_value_size, > + param_value.empty() ? NULL : ¶m_value.front(), > +¶m_value_size); > + if (!param_value.empty()) > + extStr = std::string(¶m_value.front(), param_value_size-1); > + > + if (std::strstr(extStr.c_str(), "cl_intel_motion_estimation") == NULL) { > + printf("No cl_intel_motion_estimation, Skip!"); > + return 0; > + } > + return 1; > +} > + > int cl_check_subgroups(void) > { > std::string extStr; > --- a/utests/utest_helper.hpp > +++ b/utests/utest_helper.hpp > @@ -307,6 +307,9 @@ typedef cl_int(clGetKernelSubGroupInfoKH > size_t *); extern > clGetKernelSubGroupInfoKHR_cb* > utestclGetKernelSubGroupInfoKHR; > > +/* Check if cl_intel_motion_estimation enabled. */ extern int > +cl_check_motion_estimation(void); > + > /* Check is cl version 2.0. */ > extern int cl_check_ocl20(void); >
_______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
