diff options
author | Simon Richter <Simon.Richter@hogyros.de> | 2013-04-03 20:32:45 +0200 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@linux.intel.com> | 2013-04-18 11:21:01 +0800 |
commit | 0118a372252180fb6b8c597dd0874fb31b477435 (patch) | |
tree | fac60e7178e2948bf4d8c2aff8e906ff18b9cc8e /src/cl_extensions.c | |
parent | cb618258d42fbde26bcb5f4437e2ccec1db4003f (diff) |
Implement KHR ICD extension
This adds a pointer to the dispatch table at the beginning of every object
of type
- cl_command_queue
- cl_context
- cl_device_id
- cl_event
- cl_kernel
- cl_mem
- cl_platform_id
- cl_program
- cl_sampler
as required by the ICD specification. The layout of the dispatch table
comes from the OpenCL ICD loader by Brice Videau <brice.videau@imag.fr> and
Vincent Danjean <Vincent.Danjean@ens-lyon.org>.
To avoid dispatch table entries being overwritten with the ICD loader's
implementations of the CL functions (as would be the proper behaviour for
the ELF loader), the -Bsymbolic option is given to the linker.
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'src/cl_extensions.c')
-rw-r--r-- | src/cl_extensions.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cl_extensions.c b/src/cl_extensions.c index 7d1031fb..052b5897 100644 --- a/src/cl_extensions.c +++ b/src/cl_extensions.c @@ -31,6 +31,14 @@ void check_basic_extension(cl_extensions_t *extensions) extensions->extensions[id].base.ext_enabled = 1; } +void check_opt1_extension(cl_extensions_t *extensions) +{ + int id; + for(id = OPT1_EXT_START_ID; id <= OPT1_EXT_END_ID; id++) + if (id == EXT_ID(khr_icd)) + extensions->extensions[id].base.ext_enabled = 1; +} + void check_gl_extension(cl_extensions_t *extensions) { #ifdef HAS_EGL @@ -101,6 +109,7 @@ cl_intel_platform_extension_init(cl_platform_id intel_platform) return; } check_basic_extension(&intel_extensions); + check_opt1_extension(&intel_extensions); check_gl_extension(&intel_extensions); check_intel_extension(&intel_extensions); process_extension_str(&intel_extensions); |