On Friday 07 August 2015 14:45:56 Francisco Jerez wrote: > "Serge Martin (EdB)" <edb+m...@sigluy.net> writes: > > As sugested by Tom a long time ago > > and in order to be able to create Piglit tests > > > > v2: > > replace NOT_SUPPORTED_BY_CL_1_1 macro with an inline function > > remove extra space in clLinkProgram arg > > > > v3: > > use __func__ > > > > v4: > > back to a macro, it make more sense to use it with __func__ > > Instead of annoying you with another nit-pick I've squashed the attached > change into your patch locally -- A warning like "Not supported by X.Y" > with hard-coded X and Y can easily become stale as soon as we start > supporting multiple CL versions, it seems more future-proof to just > say from what version on it will be supported. > > I'll push this with my fix as soon as you confirm you're OK with my > change.
It's ok for me. Thanks EdB > > > --- > > > > src/gallium/state_trackers/clover/api/dispatch.cpp | 10 ++++----- > > src/gallium/state_trackers/clover/api/kernel.cpp | 8 +++++++ > > src/gallium/state_trackers/clover/api/memory.cpp | 25 > > ++++++++++++++++++++-- src/gallium/state_trackers/clover/api/program.cpp > > | 10 +++++++++ > > src/gallium/state_trackers/clover/api/transfer.cpp | 12 +++++++++++ > > src/gallium/state_trackers/clover/api/util.hpp | 7 ++++++ > > 6 files changed, 65 insertions(+), 7 deletions(-) > > > > diff --git a/src/gallium/state_trackers/clover/api/dispatch.cpp > > b/src/gallium/state_trackers/clover/api/dispatch.cpp index > > b5a4094..f10babe 100644 > > --- a/src/gallium/state_trackers/clover/api/dispatch.cpp > > +++ b/src/gallium/state_trackers/clover/api/dispatch.cpp > > @@ -123,12 +123,12 @@ namespace clover { > > > > clCreateImage, > > clCreateProgramWithBuiltInKernels, > > clCompileProgram, > > > > - NULL, // clLinkProgram > > + clLinkProgram, > > > > clUnloadPlatformCompiler, > > > > - NULL, // clGetKernelArgInfo > > - NULL, // clEnqueueFillBuffer > > - NULL, // clEnqueueFillImage > > - NULL, // clEnqueueMigrateMemObjects > > + clGetKernelArgInfo, > > + clEnqueueFillBuffer, > > + clEnqueueFillImage, > > + clEnqueueMigrateMemObjects, > > > > clEnqueueMarkerWithWaitList, > > clEnqueueBarrierWithWaitList, > > NULL, // clGetExtensionFunctionAddressForPlatform > > > > diff --git a/src/gallium/state_trackers/clover/api/kernel.cpp > > b/src/gallium/state_trackers/clover/api/kernel.cpp index 857a152..de3e300 > > 100644 > > --- a/src/gallium/state_trackers/clover/api/kernel.cpp > > +++ b/src/gallium/state_trackers/clover/api/kernel.cpp > > @@ -189,6 +189,14 @@ clGetKernelWorkGroupInfo(cl_kernel d_kern, > > cl_device_id d_dev,> > > return CL_INVALID_DEVICE; > > > > } > > > > +CLOVER_API cl_int > > +clGetKernelArgInfo(cl_kernel d_kern, > > + cl_uint idx, cl_kernel_arg_info param, > > + size_t size, void *r_buf, size_t *r_size) { > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > + return CL_KERNEL_ARG_INFO_NOT_AVAILABLE; > > +} > > + > > > > namespace { > > > > /// > > /// Common argument checking shared by kernel invocation commands. > > > > diff --git a/src/gallium/state_trackers/clover/api/memory.cpp > > b/src/gallium/state_trackers/clover/api/memory.cpp index 3ff6ba0..42e8c30 > > 100644 > > --- a/src/gallium/state_trackers/clover/api/memory.cpp > > +++ b/src/gallium/state_trackers/clover/api/memory.cpp > > @@ -358,8 +358,29 @@ clCreateImage(cl_context d_ctx, cl_mem_flags flags, > > > > const cl_image_desc *image_desc, > > void *host_ptr, cl_int *r_errcode) { > > > > // This function was added in OpenCL 1.2 > > > > - std::cerr << "CL user error: clCreateImage() not supported by OpenCL > > 1.1." << - std::endl; > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > > > ret_error(r_errcode, CL_INVALID_OPERATION); > > return NULL; > > > > } > > > > + > > +CLOVER_API cl_int > > +clEnqueueFillBuffer(cl_command_queue command_queue, cl_mem buffer, > > + const void *pattern, size_t pattern_size, > > + size_t offset, size_t size, > > + cl_uint num_events_in_wait_list, > > + const cl_event *event_wait_list, > > + cl_event *event) { > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > + return CL_INVALID_VALUE; > > +} > > + > > +CLOVER_API cl_int > > +clEnqueueFillImage(cl_command_queue command_queue, cl_mem image, > > + const void *fill_color, > > + const size_t *origin, const size_t *region, > > + cl_uint num_events_in_wait_list, > > + const cl_event *event_wait_list, > > + cl_event *event) { > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > + return CL_INVALID_VALUE; > > +} > > diff --git a/src/gallium/state_trackers/clover/api/program.cpp > > b/src/gallium/state_trackers/clover/api/program.cpp index > > e9b1f38..0110789 100644 > > --- a/src/gallium/state_trackers/clover/api/program.cpp > > +++ b/src/gallium/state_trackers/clover/api/program.cpp > > @@ -231,6 +231,16 @@ clCompileProgram(cl_program d_prog, cl_uint num_devs, > > > > return e.get(); > > > > } > > > > +CLOVER_API cl_program > > +clLinkProgram(cl_context d_ctx, cl_uint num_devs, const cl_device_id > > *d_devs, + const char *p_opts, cl_uint num_progs, const > > cl_program *d_progs, + void (*pfn_notify)(cl_program, void > > *), void *user_data, + cl_int *r_errcode) { > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > + ret_error(r_errcode, CL_LINKER_NOT_AVAILABLE); > > + return NULL; > > +} > > + > > > > CLOVER_API cl_int > > clUnloadCompiler() { > > > > return CL_SUCCESS; > > > > diff --git a/src/gallium/state_trackers/clover/api/transfer.cpp > > b/src/gallium/state_trackers/clover/api/transfer.cpp index > > fdb9405..f5b8e2b 100644 > > --- a/src/gallium/state_trackers/clover/api/transfer.cpp > > +++ b/src/gallium/state_trackers/clover/api/transfer.cpp > > @@ -726,3 +726,15 @@ clEnqueueUnmapMemObject(cl_command_queue d_q, cl_mem > > d_mem, void *ptr,> > > } catch (error &e) { > > > > return e.get(); > > > > } > > > > + > > +CLOVER_API cl_int > > +clEnqueueMigrateMemObjects(cl_command_queue command_queue, > > + cl_uint num_mem_objects, > > + const cl_mem *mem_objects, > > + cl_mem_migration_flags flags, > > + cl_uint num_events_in_wait_list, > > + const cl_event *event_wait_list, > > + cl_event *event) { > > + CLOVER_NOT_SUPPORTED_BY("1.1"); > > + return CL_INVALID_VALUE; > > +} > > diff --git a/src/gallium/state_trackers/clover/api/util.hpp > > b/src/gallium/state_trackers/clover/api/util.hpp index 918df61..caf6cb3 > > 100644 > > --- a/src/gallium/state_trackers/clover/api/util.hpp > > +++ b/src/gallium/state_trackers/clover/api/util.hpp > > @@ -38,6 +38,13 @@ > > > > #define CLOVER_ICD_API PUBLIC > > #endif > > > > +#define CLOVER_NOT_SUPPORTED_BY(version) \ > > +do { \ > > + std::cerr << "CL user error: " << __func__ \ > > + << "() not supported by OpenCL " << (version) \ > > + << std::endl; \ > > +} while (0) > > + > > > > namespace clover { > > > > /// > > /// Return an error code in \a p if non-zero. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev