[ocl-icd] 03/08: Imported Upstream version 2.2.8

Vincent Danjean vdanjean at debian.org
Fri Dec 18 00:54:39 UTC 2015


This is an automated email from the git hooks/post-receive script.

vdanjean pushed a commit to branch master
in repository ocl-icd.

commit 9fdd8caf362d9b848f6a722e05e4f79768a82f72
Author: Vincent Danjean <Vincent.Danjean at ens-lyon.org>
Date:   Thu Dec 17 20:59:55 2015 +0100

    Imported Upstream version 2.2.8
---
 COPYING                              |   4 +-
 Makefile.in                          |  64 +++++----
 NEWS                                 |  26 ++++
 aclocal.m4                           |  57 ++++----
 build-aux/ltmain.sh                  |   4 +-
 configure                            |  55 +++++---
 configure.ac                         |  17 ++-
 doc/Makefile.in                      |  23 ++-
 doc/libOpenCL.7.txt                  |  20 +--
 icd_generator.rb                     |  38 ++++-
 khronos-headers/CL/cl.h              | 265 ++++++++++++++++++++++-------------
 khronos-headers/CL/cl_egl.h          |   4 +-
 khronos-headers/CL/cl_ext.h          |  76 +++++++++-
 khronos-headers/CL/cl_platform.h     |  33 ++++-
 khronos-headers/OpenCL/cl.h          | 265 ++++++++++++++++++++++-------------
 khronos-headers/OpenCL/cl_egl.h      |   4 +-
 khronos-headers/OpenCL/cl_ext.h      |  76 +++++++++-
 khronos-headers/OpenCL/cl_platform.h |  33 ++++-
 ocl_interface.yaml                   | 112 +++++++++++++--
 run_dummy_icd.c                      |   1 +
 tests/Makefile.in                    |  24 +++-
 tests/package.m4                     |   4 +-
 tests/testsuite                      |  31 ++--
 tests/testsuite-standard.at          |   3 +-
 24 files changed, 890 insertions(+), 349 deletions(-)

diff --git a/COPYING b/COPYING
index ea55cf4..c3654dc 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,5 @@
-Copyright (c) 2012, Brice Videau <brice.videau at imag.fr>
-Copyright (c) 2012, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
+Copyright (c) 2012-2015, Brice Videau <brice.videau at imag.fr>
+Copyright (c) 2012-2015, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/Makefile.in b/Makefile.in
index 9694421..8f95ac9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -91,20 +101,6 @@ noinst_PROGRAMS = run_dummy_icd_through_our_ICDL$(EXEEXT) \
 @UPDATE_DATABASE_TRUE at am__append_2 = run_dummy_icd
 @UPDATE_DATABASE_TRUE at am__append_3 = run_dummy_output.yaml
 subdir = .
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/configure $(am__configure_deps) \
-	$(srcdir)/config.h.in $(srcdir)/OpenCL.pc.in \
-	$(srcdir)/ocl-icd.pc.in $(top_srcdir)/build-aux/depcomp \
-	COPYING INSTALL NEWS README build-aux/ar-lib build-aux/compile \
-	config.guess build-aux/config.guess config.sub \
-	build-aux/config.sub build-aux/depcomp build-aux/install-sh \
-	build-aux/missing build-aux/ltmain.sh \
-	$(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \
-	$(top_srcdir)/build-aux/config.guess \
-	$(top_srcdir)/build-aux/config.sub \
-	$(top_srcdir)/build-aux/install-sh \
-	$(top_srcdir)/build-aux/ltmain.sh \
-	$(top_srcdir)/build-aux/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
@@ -114,6 +110,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(am__DIST_COMMON)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
@@ -306,6 +304,18 @@ ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/OpenCL.pc.in \
+	$(srcdir)/config.h.in $(srcdir)/ocl-icd.pc.in \
+	$(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \
+	$(top_srcdir)/build-aux/config.guess \
+	$(top_srcdir)/build-aux/config.sub \
+	$(top_srcdir)/build-aux/depcomp \
+	$(top_srcdir)/build-aux/install-sh \
+	$(top_srcdir)/build-aux/ltmain.sh \
+	$(top_srcdir)/build-aux/missing COPYING INSTALL NEWS README \
+	build-aux/ar-lib build-aux/compile build-aux/config.guess \
+	build-aux/config.sub build-aux/depcomp build-aux/install-sh \
+	build-aux/ltmain.sh build-aux/missing config.guess config.sub
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -464,6 +474,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -575,7 +586,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1165,15 +1175,15 @@ dist-xz: distdir
 	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
-	@echo WARNING: "Support for shar distribution archives is" \
-	               "deprecated." >&2
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__post_remove_distdir)
 
 dist-shar: distdir
-	@echo WARNING: "Support for distribution archives compressed with" \
-		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
@@ -1209,17 +1219,17 @@ distcheck: dist
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	    --srcdir=.. --prefix="$$dc_install_base" \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 	  && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1422,6 +1432,8 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS \
 	uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA \
 	uninstall-pkgexampleDATA uninstall-pkglibLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Generate sources and headers from the database
 stamp-generator: ocl_interface.yaml
diff --git a/NEWS b/NEWS
index 43aa116..bd2bd0f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,30 @@
 
+Version 2.2.8
+=============
+Brice Videau (10):
+      Added missing EGL entries.
+      Added missing clGetKernelSubGroupInfoKHR.
+      Fixed indentation.
+      Added OpenCL 2.1 as comments.
+      Switched khronos headers to OpenCL 2.1.
+      Fixed typo in clEnqueueAcquireEGLObjectsKHR definition.
+      CL/cl_egl.h is needed to build EGL interfaces.
+      OpenCL headers needlessly include EGL headers.
+      ICD should be compliant regarding extensions.
+      Order for OpenCL 2.1 is finally known.
+
+Vincent Danjean (10):
+      Explicitly set the revision date in the documentation
+      cleanup doc
+      [test] avoid external problems in tests
+      Use internal symbols to avoid conflict with loaded ICD
+      Update copyright notices
+      Remove 2.0 OpenCL headers
+      Avoid to hardcode at several place the required OpenCL headers version
+      improve clGetExtensionFunctionAddress{,ForPlatform}
+      Fix guards in ocl_icd.h
+      Release 2.2.8 (support OpenCL 2.1)
+
 Version 2.2.7
 =============
 
diff --git a/aclocal.m4 b/aclocal.m4
index a4773d9..772af55 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
+[am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.14.1], [],
+m4_if([$1], [1.15], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,12 +51,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
+[AM_AUTOMAKE_VERSION([1.15])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -118,7 +118,7 @@ AC_SUBST([AR])dnl
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -170,7 +170,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -201,7 +201,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -392,7 +392,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -468,7 +468,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -558,8 +558,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -633,6 +633,9 @@ END
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
 fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
 ])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
@@ -662,7 +665,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -673,7 +676,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -683,7 +686,7 @@ if test x"${install_sh}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -704,7 +707,7 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -754,7 +757,7 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -793,7 +796,7 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -822,7 +825,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -869,7 +872,7 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -888,7 +891,7 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -969,7 +972,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1029,7 +1032,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1057,7 +1060,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1076,7 +1079,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index bb5fa02..bffda54 100644
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.7
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7"
+VERSION="2.4.2 Debian-2.4.2-1.11"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/configure b/configure
index 2b26752..f9c728e 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for OpenCL ICD Loader 2.2.7.
+# Generated by GNU Autoconf 2.69 for OpenCL ICD Loader 2.2.8.
 #
 # Report bugs to <ocl-icd-devel at lists.forge.imag.fr>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='OpenCL ICD Loader'
 PACKAGE_TARNAME='ocl-icd'
-PACKAGE_VERSION='2.2.7'
-PACKAGE_STRING='OpenCL ICD Loader 2.2.7'
+PACKAGE_VERSION='2.2.8'
+PACKAGE_STRING='OpenCL ICD Loader 2.2.8'
 PACKAGE_BUGREPORT='ocl-icd-devel at lists.forge.imag.fr'
 PACKAGE_URL=''
 
@@ -745,6 +745,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -828,6 +829,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1080,6 +1082,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1217,7 +1228,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1330,7 +1341,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures OpenCL ICD Loader 2.2.7 to adapt to many kinds of systems.
+\`configure' configures OpenCL ICD Loader 2.2.8 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1370,6 +1381,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1400,7 +1412,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of OpenCL ICD Loader 2.2.7:";;
+     short | recursive ) echo "Configuration of OpenCL ICD Loader 2.2.8:";;
    esac
   cat <<\_ACEOF
 
@@ -1517,7 +1529,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-OpenCL ICD Loader configure 2.2.7
+OpenCL ICD Loader configure 2.2.8
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1940,7 +1952,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by OpenCL ICD Loader $as_me 2.2.7, which was
+It was created by OpenCL ICD Loader $as_me 2.2.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2321,7 +2333,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 ac_config_headers="$ac_config_headers config.h"
 
 
-am__api_version='1.14'
+am__api_version='1.15'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2513,7 +2525,7 @@ else
 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -2807,7 +2819,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ocl-icd'
- VERSION='2.2.7'
+ VERSION='2.2.8'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2841,8 +2853,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
@@ -11839,7 +11851,8 @@ CC="$lt_save_CC"
 ac_config_commands="$ac_config_commands tests/atconfig"
 
 
-OPENCL_VERSION="2.0"
+
+OPENCL_VERSION="2.1"
 
 
 # Checks for programs.
@@ -12161,8 +12174,8 @@ fi
     ;;
 esac
 if test $cl_h = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenCL headers 2.0 are available" >&5
-$as_echo_n "checking whether OpenCL headers 2.0 are available... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenCL headers $OPENCL_VERSION are available" >&5
+$as_echo_n "checking whether OpenCL headers $OPENCL_VERSION are available... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -12172,8 +12185,8 @@ $as_echo_n "checking whether OpenCL headers 2.0 are available... " >&6; }
 #else
 #  include <CL/opencl.h>
 #endif
-#ifndef CL_VERSION_2_0
-#  error Cannot find CL_VERSION_2_0 symbol
+#ifndef CL_VERSION_2_1
+#  error Cannot find CL_VERSION_2_1 symbol
 #endif
 
 int
@@ -12946,7 +12959,7 @@ fi
 
 case $cl_h,$khronos_headers in #(
   no,no) :
-    as_fn_error $? "No 2.0 OpenCL headers available and --disable-official-khronos-headers used" "$LINENO" 5 ;; #(
+    as_fn_error $? "No $OPENCL_VERSION OpenCL headers available and --disable-official-khronos-headers used" "$LINENO" 5 ;; #(
   no,*) :
     khronos_headers=yes ;; #(
   yes,yes) :
@@ -13553,7 +13566,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by OpenCL ICD Loader $as_me 2.2.7, which was
+This file was extended by OpenCL ICD Loader $as_me 2.2.8, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13619,7 +13632,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-OpenCL ICD Loader config.status 2.2.7
+OpenCL ICD Loader config.status 2.2.8
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 6b12755..e321391 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,12 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
+#
+# Copyright (c) 2012-2015, Brice Videau <brice.videau at imag.fr>
+# Copyright (c) 2012-2015, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
+
 
 AC_PREREQ([2.67])
-AC_INIT([OpenCL ICD Loader], [2.2.7], [ocl-icd-devel at lists.forge.imag.fr], [ocl-icd])
+AC_INIT([OpenCL ICD Loader], [2.2.8], [ocl-icd-devel at lists.forge.imag.fr], [ocl-icd])
 AC_CONFIG_SRCDIR([ocl_icd_loader.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
@@ -14,7 +18,8 @@ AM_PROG_AR
 LT_INIT([disable-static])
 AC_CONFIG_TESTDIR([tests], [.])
 
-OPENCL_VERSION="2.0"
+m4_define([REQ_OPENCL_VERSION],[2_1])
+OPENCL_VERSION="m4_translit(REQ_OPENCL_VERSION, [_], [.])"
 AC_SUBST([OPENCL_VERSION])
 
 # Checks for programs.
@@ -46,7 +51,7 @@ case $host_os in
     ;;
 esac
 if test $cl_h = yes; then
-  AC_MSG_CHECKING([whether OpenCL headers 2.0 are available])
+  AC_MSG_CHECKING([whether OpenCL headers $OPENCL_VERSION are available])
   AC_PREPROC_IFELSE([
     AC_LANG_PROGRAM([[
 #if defined(__APPLE__) || defined(__MACOSX)
@@ -54,8 +59,8 @@ if test $cl_h = yes; then
 #else
 #  include <CL/opencl.h>
 #endif
-#ifndef CL_VERSION_2_0
-#  error Cannot find CL_VERSION_2_0 symbol
+#ifndef CL_VERSION_]REQ_OPENCL_VERSION[
+#  error Cannot find CL_VERSION_]REQ_OPENCL_VERSION[ symbol
 #endif
       ]], [[
       ]])],[
@@ -105,7 +110,7 @@ AC_ARG_ENABLE([official-khronos-headers],
   [khronos_headers=may])
 
 AS_CASE([$cl_h,$khronos_headers],
-  [no,no], [AC_MSG_ERROR([No 2.0 OpenCL headers available and --disable-official-khronos-headers used])],
+  [no,no], [AC_MSG_ERROR([No $OPENCL_VERSION OpenCL headers available and --disable-official-khronos-headers used])],
   [no,*], [khronos_headers=yes],
   [yes,yes], [AC_MSG_WARN([Using internal copy of OpenCL headers as requested, even if they are available on the system])],
   [yes,*], [khronos_headers=no],
diff --git a/doc/Makefile.in b/doc/Makefile.in
index ea2aedd..32bc3dd 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
@@ -89,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -145,6 +155,7 @@ NROFF = nroff
 MANS = $(man_MANS)
 DATA = $(htmldoc_DATA)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 A2X = @A2X@
 ACLOCAL = @ACLOCAL@
@@ -262,6 +273,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -296,7 +308,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --foreign doc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -543,6 +554,8 @@ uninstall-man: uninstall-man7
 	uninstall-am uninstall-htmldocDATA uninstall-man \
 	uninstall-man7
 
+.PRECIOUS: Makefile
+
 
 @GEN_DOC_TRUE at .7.txt.html:
 @GEN_DOC_TRUE@	$(AM_V_GEN)$(ASCIIDOC) -d manpage -b xhtml11 -o$@ $<
diff --git a/doc/libOpenCL.7.txt b/doc/libOpenCL.7.txt
index b07fcd3..73fff41 100644
--- a/doc/libOpenCL.7.txt
+++ b/doc/libOpenCL.7.txt
@@ -2,6 +2,8 @@ libOpenCL(7)
 ============
 Vincent Danjean <Vincent.Danjean at ens-lyon.org>
 :Author Initials: VD
+:revdate: 2015-06-08
+:footer-style: revdate
 :toc:
 :icons:
 :numbered:
@@ -50,14 +52,14 @@ c. else libOpenCL.so will try to load *$OCL_ICD_VENDORS* as the ICD shared
   library itself (i.e. to load it directly with **dlopen**(3)).
 
 *OCL_ICD_ASSUME_ICD_EXTENSION*::
-  If set, contrary the Khronos specification, the loader will not check that
-  the loaded ICDs declare the `cl_khr_icd` extension. You may need to define
-  this environment variable if you are using the Intel ICD together with
-  *optirun*(1). Else, a bug into the Intel ICD will make the application crash.
+If set, contrary the Khronos specification, the loader will not check that
+the loaded ICDs declare the `cl_khr_icd` extension. You may need to define
+this environment variable if you are using the Intel ICD together with
+*optirun*(1). Else, a bug into the Intel ICD will make the application crash.
 
 *OCL_ICD_PLATFORM_SORT*::
-  Allows to choose the way platforms are sorted when presented to programs
-  through **clGetPlatformIDs**(3). Current provided algorithms are:
+Allows one to choose the way platforms are sorted when presented to programs
+through **clGetPlatformIDs**(3). Current provided algorithms are:
 
 * *devices*: first, list platforms that support most GPU, then most CPU then
   most accelerators. If *OCL_ICD_PLATFORM_SORT* is not set or set to an
@@ -65,9 +67,9 @@ c. else libOpenCL.so will try to load *$OCL_ICD_VENDORS* as the ICD shared
 * *none*: no sort is done and the order can very at each run.
 
 *OCL_ICD_DEFAULT_PLATFORM*::
-  Number of the platform to choose as defaut platform. Note that using this
-  environment variable without specifying a sort algorithm for platforms
-  is not really useful.
+Number of the platform to choose as defaut platform. Note that using this
+environment variable without specifying a sort algorithm for platforms
+is not really useful.
 
 *OCL_ICD_DEBUG*::
 +
diff --git a/icd_generator.rb b/icd_generator.rb
index 984b9c2..d299dbd 100644
--- a/icd_generator.rb
+++ b/icd_generator.rb
@@ -1,6 +1,6 @@
 =begin
-Copyright (c) 2012, Brice Videau <brice.videau at imag.fr>
-Copyright (c) 2012, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
+Copyright (c) 2012-2015, Brice Videau <brice.videau at imag.fr>
+Copyright (c) 2012-2015, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
 All rights reserved.
       
 Redistribution and use in source and binary forms, with or without
@@ -55,7 +55,7 @@ module IcdGenerator
   $specific_loader_funcs = ["clGetExtensionFunctionAddress","clGetPlatformIDs",
                          "clGetGLContextInfoKHR", "clUnloadCompiler",
     "clCreateContext", "clCreateContextFromType", "clWaitForEvents"]
-  $header_files = ["/usr/include/CL/cl.h", "/usr/include/CL/cl_gl.h",
+  $header_files = ["/usr/include/CL/cl.h", "/usr/include/CL/cl_gl.h", "/usr/include/CL/cl_egl.h",
     "/usr/include/CL/cl_ext.h", "/usr/include/CL/cl_gl_ext.h"]
   $windows_header_files = ["/usr/include/CL/cl_dx9_media_sharing.h", "/usr/include/CL/cl_d3d11.h", "/usr/include/CL/cl_d3d10.h"]
   $cl_data_type_error = { "cl_platform_id"   => "CL_INVALID_PLATFORM",
@@ -71,8 +71,8 @@ module IcdGenerator
   $versions_entries = []
   $buff=50
   $license = <<EOF
-Copyright (c) 2012, Brice Videau <brice.videau at imag.fr>
-Copyright (c) 2012, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
+Copyright (c) 2012-2015, Brice Videau <brice.videau at imag.fr>
+Copyright (c) 2012-2015, Vincent Danjean <Vincent.Danjean at ens-lyon.org>
 All rights reserved.
       
 Redistribution and use in source and binary forms, with or without
@@ -251,6 +251,8 @@ EOF
          run_dummy_icd += "  #{func_name}(1,(cl_event*)&chosen_platform);\n"
        elsif func_name == "clGetExtensionFunctionAddress" then
          run_dummy_icd += "  #{func_name}(\"extLIG\");\n"
+       elsif func_name == "clGetExtensionFunctionAddressForPlatform" then
+         run_dummy_icd += "  #{func_name}((cl_platform_id )chosen_platform,\"extLIG\");\n"
        elsif func_name == "clUnloadCompiler" then
          run_dummy_icd += "  #{func_name}();\n"
        else
@@ -379,10 +381,12 @@ EOF
     nb=0
     $api_entries_array.each { |entry|
       version = entry.split("\n").
-	grep(/ CL_API_SUFFIX__(VERSION_[0-9_]+)[^0-9_]/).join('').
-	gsub(/.* CL_API_SUFFIX__(VERSION_[0-9_]+)[^0-9_].*$/, '\1')
+	grep(/ CL_(API|EXT)_SUFFIX__(VERSION_[0-9_]+)[^0-9_]/).join('').
+	gsub(/.* CL_(API|EXT)_SUFFIX__(VERSION_[0-9_]*[0-9])_*[^0-9_].*$/, '\2')
       if (version != '') then
 	ocl_icd_header += '#ifdef CL_'+version+"\n"
+      elsif not entry =~ / clUnknown/
+        ocl_icd_header += "#warning no version\n"
       end
       ocl_icd_header += entry.gsub("\r","").
 	sub(/CL_API_CALL\n?(.*?)\(/m,'(CL_API_CALL*\1)('+"\n  ").
@@ -569,9 +573,28 @@ EOF
     return ocl_icd_bindings_source
   end
 
+  def self.generate_get_extension_address_for_platform
+    src = <<EOF
+  if( func_name == NULL )
+    return NULL;
+  struct func_desc const * fn=&function_description[0];
+  int lenfn=strlen(func_name);
+  if (lenfn > 3 &&
+      (strcmp(func_name+lenfn-3, "KHR")==0 || strcmp(func_name+lenfn-3, "EXT")==0)) {
+    while (fn->name != NULL) {
+      if (strcmp(func_name, fn->name)==0)
+        RETURN(fn->addr);
+      fn++;
+    }
+  }
+EOF
+    return src
+  end
+
   def self.generate_ocl_icd_loader_gen_source
     skip_funcs = $specific_loader_funcs
     ocl_icd_loader_gen_source = "/**\n#{$license}\n*/\n"
+    ocl_icd_loader_gen_source += "#include <string.h>\n"
     ocl_icd_loader_gen_source += "#include \"ocl_icd_loader.h\"\n"
     ocl_icd_loader_gen_source += "#define DEBUG_OCL_ICD_PROVIDE_DUMP_FIELD\n"
     ocl_icd_loader_gen_source += "#include \"ocl_icd_debug.h\"\n"
@@ -591,6 +614,7 @@ EOF
       end
       fps = first_parameter.split
       ocl_icd_loader_gen_source += "  debug_trace();\n"
+      ocl_icd_loader_gen_source += generate_get_extension_address_for_platform if func_name == "clGetExtensionFunctionAddressForPlatform"
       raise "Unsupported data_type #{fps[0]}" if not $cl_data_type_error[fps[0]]
       ps = parameters.split(",")
       ps = ps.collect { |p|
diff --git a/khronos-headers/CL/cl.h b/khronos-headers/CL/cl.h
index f09d9f4..101c2c9 100644
--- a/khronos-headers/CL/cl.h
+++ b/khronos-headers/CL/cl.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 - 2013 The Khronos Group Inc.
+ * Copyright (c) 2008 - 2013, 2015 The Khronos Group Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and/or associated documentation files (the
@@ -89,6 +89,7 @@ typedef cl_uint             cl_kernel_arg_address_qualifier;
 typedef cl_uint             cl_kernel_arg_access_qualifier;
 typedef cl_bitfield         cl_kernel_arg_type_qualifier;
 typedef cl_uint             cl_kernel_work_group_info;
+typedef cl_uint             cl_kernel_sub_group_info;
 typedef cl_uint             cl_event_info;
 typedef cl_uint             cl_command_type;
 typedef cl_uint             cl_profiling_info;
@@ -110,6 +111,9 @@ typedef struct _cl_image_desc {
     size_t                  image_slice_pitch;
     cl_uint                 num_mip_levels;
     cl_uint                 num_samples;
+#ifdef __GNUC__
+    __extension__   /* Prevents warnings about anonymous union in -pedantic builds */
+#endif
     union {
       cl_mem                  buffer;
       cl_mem                  mem_object;
@@ -193,6 +197,7 @@ typedef struct _cl_buffer_region {
 #define CL_VERSION_1_1                              1
 #define CL_VERSION_1_2                              1
 #define CL_VERSION_2_0                              1
+#define CL_VERSION_2_1                              1
 
 /* cl_bool */
 #define CL_FALSE                                    0
@@ -206,6 +211,7 @@ typedef struct _cl_buffer_region {
 #define CL_PLATFORM_NAME                            0x0902
 #define CL_PLATFORM_VENDOR                          0x0903
 #define CL_PLATFORM_EXTENSIONS                      0x0904
+#define CL_PLATFORM_HOST_TIMER_RESOLUTION           0x0905
 
 /* cl_device_type - bitfield */
 #define CL_DEVICE_TYPE_DEFAULT                      (1 << 0)
@@ -216,98 +222,101 @@ typedef struct _cl_buffer_region {
 #define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF
 
 /* cl_device_info */
-#define CL_DEVICE_TYPE                                  0x1000
-#define CL_DEVICE_VENDOR_ID                             0x1001
-#define CL_DEVICE_MAX_COMPUTE_UNITS                     0x1002
-#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS              0x1003
-#define CL_DEVICE_MAX_WORK_GROUP_SIZE                   0x1004
-#define CL_DEVICE_MAX_WORK_ITEM_SIZES                   0x1005
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR           0x1006
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT          0x1007
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT            0x1008
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG           0x1009
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT          0x100A
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE         0x100B
-#define CL_DEVICE_MAX_CLOCK_FREQUENCY                   0x100C
-#define CL_DEVICE_ADDRESS_BITS                          0x100D
-#define CL_DEVICE_MAX_READ_IMAGE_ARGS                   0x100E
-#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS                  0x100F
-#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                    0x1010
-#define CL_DEVICE_IMAGE2D_MAX_WIDTH                     0x1011
-#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                    0x1012
-#define CL_DEVICE_IMAGE3D_MAX_WIDTH                     0x1013
-#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                    0x1014
-#define CL_DEVICE_IMAGE3D_MAX_DEPTH                     0x1015
-#define CL_DEVICE_IMAGE_SUPPORT                         0x1016
-#define CL_DEVICE_MAX_PARAMETER_SIZE                    0x1017
-#define CL_DEVICE_MAX_SAMPLERS                          0x1018
-#define CL_DEVICE_MEM_BASE_ADDR_ALIGN                   0x1019
-#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE              0x101A
-#define CL_DEVICE_SINGLE_FP_CONFIG                      0x101B
-#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE                 0x101C
-#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE             0x101D
-#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE                 0x101E
-#define CL_DEVICE_GLOBAL_MEM_SIZE                       0x101F
-#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE              0x1020
-#define CL_DEVICE_MAX_CONSTANT_ARGS                     0x1021
-#define CL_DEVICE_LOCAL_MEM_TYPE                        0x1022
-#define CL_DEVICE_LOCAL_MEM_SIZE                        0x1023
-#define CL_DEVICE_ERROR_CORRECTION_SUPPORT              0x1024
-#define CL_DEVICE_PROFILING_TIMER_RESOLUTION            0x1025
-#define CL_DEVICE_ENDIAN_LITTLE                         0x1026
-#define CL_DEVICE_AVAILABLE                             0x1027
-#define CL_DEVICE_COMPILER_AVAILABLE                    0x1028
-#define CL_DEVICE_EXECUTION_CAPABILITIES                0x1029
-#define CL_DEVICE_QUEUE_PROPERTIES                      0x102A    /* deprecated */
-#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES              0x102A
-#define CL_DEVICE_NAME                                  0x102B
-#define CL_DEVICE_VENDOR                                0x102C
-#define CL_DRIVER_VERSION                               0x102D
-#define CL_DEVICE_PROFILE                               0x102E
-#define CL_DEVICE_VERSION                               0x102F
-#define CL_DEVICE_EXTENSIONS                            0x1030
-#define CL_DEVICE_PLATFORM                              0x1031
-#define CL_DEVICE_DOUBLE_FP_CONFIG                      0x1032
+#define CL_DEVICE_TYPE                                   0x1000
+#define CL_DEVICE_VENDOR_ID                              0x1001
+#define CL_DEVICE_MAX_COMPUTE_UNITS                      0x1002
+#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS               0x1003
+#define CL_DEVICE_MAX_WORK_GROUP_SIZE                    0x1004
+#define CL_DEVICE_MAX_WORK_ITEM_SIZES                    0x1005
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR            0x1006
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT           0x1007
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT             0x1008
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG            0x1009
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT           0x100A
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE          0x100B
+#define CL_DEVICE_MAX_CLOCK_FREQUENCY                    0x100C
+#define CL_DEVICE_ADDRESS_BITS                           0x100D
+#define CL_DEVICE_MAX_READ_IMAGE_ARGS                    0x100E
+#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS                   0x100F
+#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                     0x1010
+#define CL_DEVICE_IMAGE2D_MAX_WIDTH                      0x1011
+#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                     0x1012
+#define CL_DEVICE_IMAGE3D_MAX_WIDTH                      0x1013
+#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                     0x1014
+#define CL_DEVICE_IMAGE3D_MAX_DEPTH                      0x1015
+#define CL_DEVICE_IMAGE_SUPPORT                          0x1016
+#define CL_DEVICE_MAX_PARAMETER_SIZE                     0x1017
+#define CL_DEVICE_MAX_SAMPLERS                           0x1018
+#define CL_DEVICE_MEM_BASE_ADDR_ALIGN                    0x1019
+#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE               0x101A
+#define CL_DEVICE_SINGLE_FP_CONFIG                       0x101B
+#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE                  0x101C
+#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE              0x101D
+#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE                  0x101E
+#define CL_DEVICE_GLOBAL_MEM_SIZE                        0x101F
+#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE               0x1020
+#define CL_DEVICE_MAX_CONSTANT_ARGS                      0x1021
+#define CL_DEVICE_LOCAL_MEM_TYPE                         0x1022
+#define CL_DEVICE_LOCAL_MEM_SIZE                         0x1023
+#define CL_DEVICE_ERROR_CORRECTION_SUPPORT               0x1024
+#define CL_DEVICE_PROFILING_TIMER_RESOLUTION             0x1025
+#define CL_DEVICE_ENDIAN_LITTLE                          0x1026
+#define CL_DEVICE_AVAILABLE                              0x1027
+#define CL_DEVICE_COMPILER_AVAILABLE                     0x1028
+#define CL_DEVICE_EXECUTION_CAPABILITIES                 0x1029
+#define CL_DEVICE_QUEUE_PROPERTIES                       0x102A    /* deprecated */
+#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES               0x102A
+#define CL_DEVICE_NAME                                   0x102B
+#define CL_DEVICE_VENDOR                                 0x102C
+#define CL_DRIVER_VERSION                                0x102D
+#define CL_DEVICE_PROFILE                                0x102E
+#define CL_DEVICE_VERSION                                0x102F
+#define CL_DEVICE_EXTENSIONS                             0x1030
+#define CL_DEVICE_PLATFORM                               0x1031
+#define CL_DEVICE_DOUBLE_FP_CONFIG                       0x1032
 /* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF           0x1034
-#define CL_DEVICE_HOST_UNIFIED_MEMORY                   0x1035   /* deprecated */
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR              0x1036
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT             0x1037
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT               0x1038
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG              0x1039
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT             0x103A
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE            0x103B
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF              0x103C
-#define CL_DEVICE_OPENCL_C_VERSION                      0x103D
-#define CL_DEVICE_LINKER_AVAILABLE                      0x103E
-#define CL_DEVICE_BUILT_IN_KERNELS                      0x103F
-#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE                 0x1040
-#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE                  0x1041
-#define CL_DEVICE_PARENT_DEVICE                         0x1042
-#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES             0x1043
-#define CL_DEVICE_PARTITION_PROPERTIES                  0x1044
-#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN             0x1045
-#define CL_DEVICE_PARTITION_TYPE                        0x1046
-#define CL_DEVICE_REFERENCE_COUNT                       0x1047
-#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC           0x1048
-#define CL_DEVICE_PRINTF_BUFFER_SIZE                    0x1049
-#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT                 0x104A
-#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT          0x104B
-#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS             0x104C
-#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE              0x104D
-#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES            0x104E
-#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE        0x104F
-#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE              0x1050
-#define CL_DEVICE_MAX_ON_DEVICE_QUEUES                  0x1051
-#define CL_DEVICE_MAX_ON_DEVICE_EVENTS                  0x1052
-#define CL_DEVICE_SVM_CAPABILITIES                      0x1053
-#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE  0x1054
-#define CL_DEVICE_MAX_PIPE_ARGS                         0x1055
-#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS          0x1056
-#define CL_DEVICE_PIPE_MAX_PACKET_SIZE                  0x1057
-#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT   0x1058
-#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT     0x1059
-#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT      0x105A
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF            0x1034
+#define CL_DEVICE_HOST_UNIFIED_MEMORY                    0x1035   /* deprecated */
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR               0x1036
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT              0x1037
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT                0x1038
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG               0x1039
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT              0x103A
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE             0x103B
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF               0x103C
+#define CL_DEVICE_OPENCL_C_VERSION                       0x103D
+#define CL_DEVICE_LINKER_AVAILABLE                       0x103E
+#define CL_DEVICE_BUILT_IN_KERNELS                       0x103F
+#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE                  0x1040
+#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE                   0x1041
+#define CL_DEVICE_PARENT_DEVICE                          0x1042
+#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES              0x1043
+#define CL_DEVICE_PARTITION_PROPERTIES                   0x1044
+#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN              0x1045
+#define CL_DEVICE_PARTITION_TYPE                         0x1046
+#define CL_DEVICE_REFERENCE_COUNT                        0x1047
+#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC            0x1048
+#define CL_DEVICE_PRINTF_BUFFER_SIZE                     0x1049
+#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT                  0x104A
+#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT           0x104B
+#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS              0x104C
+#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE               0x104D
+#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES             0x104E
+#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE         0x104F
+#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE               0x1050
+#define CL_DEVICE_MAX_ON_DEVICE_QUEUES                   0x1051
+#define CL_DEVICE_MAX_ON_DEVICE_EVENTS                   0x1052
+#define CL_DEVICE_SVM_CAPABILITIES                       0x1053
+#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE   0x1054
+#define CL_DEVICE_MAX_PIPE_ARGS                          0x1055
+#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS           0x1056
+#define CL_DEVICE_PIPE_MAX_PACKET_SIZE                   0x1057
+#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT    0x1058
+#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT      0x1059
+#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT       0x105A
+#define CL_DEVICE_IL_VERSION                             0x105B
+#define CL_DEVICE_MAX_NUM_SUB_GROUPS                     0x105C
+#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D
 
 /* cl_device_fp_config - bitfield */
 #define CL_FP_DENORM                                (1 << 0)
@@ -374,6 +383,7 @@ typedef struct _cl_buffer_region {
 #define CL_QUEUE_REFERENCE_COUNT                    0x1092
 #define CL_QUEUE_PROPERTIES                         0x1093
 #define CL_QUEUE_SIZE                               0x1094
+#define CL_QUEUE_DEVICE_DEFAULT                     0x1095
 
 /* cl_mem_flags and cl_svm_mem_flags - bitfield */
 #define CL_MEM_READ_WRITE                           (1 << 0)
@@ -388,6 +398,7 @@ typedef struct _cl_buffer_region {
 #define CL_MEM_HOST_NO_ACCESS                       (1 << 9)
 #define CL_MEM_SVM_FINE_GRAIN_BUFFER                (1 << 10)   /* used by cl_svm_mem_flags only */
 #define CL_MEM_SVM_ATOMICS                          (1 << 11)   /* used by cl_svm_mem_flags only */
+#define CL_MEM_KERNEL_READ_AND_WRITE                (1 << 12)
 
 /* cl_mem_migration_flags - bitfield */
 #define CL_MIGRATE_MEM_OBJECT_HOST                  (1 << 0)
@@ -432,6 +443,7 @@ typedef struct _cl_buffer_region {
 #define CL_HALF_FLOAT                               0x10DD
 #define CL_FLOAT                                    0x10DE
 #define CL_UNORM_INT24                              0x10DF
+#define CL_UNORM_INT_101010_2                       0x10E0
 
 /* cl_mem_object_type */
 #define CL_MEM_OBJECT_BUFFER                        0x10F0
@@ -508,6 +520,7 @@ typedef struct _cl_buffer_region {
 #define CL_PROGRAM_BINARIES                         0x1166
 #define CL_PROGRAM_NUM_KERNELS                      0x1167
 #define CL_PROGRAM_KERNEL_NAMES                     0x1168
+#define CL_PROGRAM_IL                               0x1169
 
 /* cl_program_build_info */
 #define CL_PROGRAM_BUILD_STATUS                     0x1181
@@ -535,6 +548,8 @@ typedef struct _cl_buffer_region {
 #define CL_KERNEL_CONTEXT                           0x1193
 #define CL_KERNEL_PROGRAM                           0x1194
 #define CL_KERNEL_ATTRIBUTES                        0x1195
+#define CL_KERNEL_MAX_NUM_SUB_GROUPS                0x11B9
+#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS            0x11BA
 
 /* cl_kernel_arg_info */
 #define CL_KERNEL_ARG_ADDRESS_QUALIFIER             0x1196
@@ -569,6 +584,11 @@ typedef struct _cl_buffer_region {
 #define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3
 #define CL_KERNEL_PRIVATE_MEM_SIZE                  0x11B4
 #define CL_KERNEL_GLOBAL_WORK_SIZE                  0x11B5
+
+/* cl_kernel_sub_group_info */
+#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE    0x2033
+#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE       0x2034
+#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT    0x11B8
     
 /* cl_kernel_exec_info */
 #define CL_KERNEL_EXEC_INFO_SVM_PTRS                0x11B6
@@ -671,6 +691,21 @@ clRetainDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
     
 extern CL_API_ENTRY cl_int CL_API_CALL
 clReleaseDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clSetDefaultDeviceCommandQueue(cl_context           /* context */,
+                               cl_device_id         /* device */,
+                               cl_command_queue     /* command_queue */) CL_API_SUFFIX__VERSION_2_1;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetDeviceAndHostTimer(cl_device_id    /* device */,
+                        cl_ulong*       /* device_timestamp */,
+                        cl_ulong*       /* host_timestamp */) CL_API_SUFFIX__VERSION_2_1;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetHostTimer(cl_device_id /* device */,
+               cl_ulong *   /* host_timestamp */)  CL_API_SUFFIX__VERSION_2_1;
+
     
 /* Context APIs  */
 extern CL_API_ENTRY cl_context CL_API_CALL
@@ -847,6 +882,13 @@ clCreateProgramWithBuiltInKernels(cl_context            /* context */,
                                   const char *          /* kernel_names */,
                                   cl_int *              /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
 
+extern CL_API_ENTRY cl_program CL_API_CALL
+clCreateProgramWithIL(cl_context    /* context */,
+                     const void*    /* il */,
+                     size_t         /* length */,
+                     cl_int*        /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+
+
 extern CL_API_ENTRY cl_int CL_API_CALL
 clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
 
@@ -914,6 +956,10 @@ clCreateKernelsInProgram(cl_program     /* program */,
                          cl_kernel *    /* kernels */,
                          cl_uint *      /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
 
+extern CL_API_ENTRY cl_kernel CL_API_CALL
+clCloneKernel(cl_kernel     /* source_kernel */,
+              cl_int*       /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+
 extern CL_API_ENTRY cl_int CL_API_CALL
 clRetainKernel(cl_kernel    /* kernel */) CL_API_SUFFIX__VERSION_1_0;
 
@@ -960,6 +1006,17 @@ clGetKernelWorkGroupInfo(cl_kernel                  /* kernel */,
                          void *                     /* param_value */,
                          size_t *                   /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
 
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetKernelSubGroupInfo(cl_kernel                   /* kernel */,
+                        cl_device_id                /* device */,
+                        cl_kernel_sub_group_info    /* param_name */,
+                        size_t                      /* input_value_size */,
+                        const void*                 /*input_value */,
+                        size_t                      /* param_value_size */,
+                        void*                       /* param_value */,
+                        size_t*                     /* param_value_size_ret */ ) CL_API_SUFFIX__VERSION_2_1;
+
+
 /* Event Object APIs */
 extern CL_API_ENTRY cl_int CL_API_CALL
 clWaitForEvents(cl_uint             /* num_events */,
@@ -1295,7 +1352,17 @@ clEnqueueSVMUnmap(cl_command_queue  /* command_queue */,
                   cl_uint           /* num_events_in_wait_list */,
                   const cl_event *  /* event_wait_list */,
                   cl_event *        /* event */) CL_API_SUFFIX__VERSION_2_0;
-    
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMMigrateMem(cl_command_queue         /* command_queue */,
+                       cl_uint                  /* num_svm_pointers */,
+                       const void **            /* svm_pointers */,
+                       const size_t *           /* sizes */,
+                       cl_mem_migration_flags   /* flags */,
+                       cl_uint                  /* num_events_in_wait_list */,
+                       const cl_event *         /* event_wait_list */,
+                       cl_event *               /* event */) CL_API_SUFFIX__VERSION_2_1;
+
 
 /* Extension function access
  *
@@ -1351,26 +1418,26 @@ extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
 clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
     
 /* Deprecated OpenCL 2.0 APIs */
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_command_queue CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL
 clCreateCommandQueue(cl_context                     /* context */,
                      cl_device_id                   /* device */,
                      cl_command_queue_properties    /* properties */,
-                     cl_int *                       /* errcode_ret */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+                     cl_int *                       /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
     
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_sampler CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL
 clCreateSampler(cl_context          /* context */,
                 cl_bool             /* normalized_coords */,
                 cl_addressing_mode  /* addressing_mode */,
                 cl_filter_mode      /* filter_mode */,
-                cl_int *            /* errcode_ret */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+                cl_int *            /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_int CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL
 clEnqueueTask(cl_command_queue  /* command_queue */,
               cl_kernel         /* kernel */,
               cl_uint           /* num_events_in_wait_list */,
               const cl_event *  /* event_wait_list */,
-              cl_event *        /* event */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+              cl_event *        /* event */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
 #ifdef __cplusplus
 }
diff --git a/khronos-headers/CL/cl_egl.h b/khronos-headers/CL/cl_egl.h
index 93e6c9c..5f3c66e 100644
--- a/khronos-headers/CL/cl_egl.h
+++ b/khronos-headers/CL/cl_egl.h
@@ -28,8 +28,8 @@
 
 #else
 #include <CL/cl.h>
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
+//#include <EGL/egl.h>
+//#include <EGL/eglext.h>
 #endif  
 
 #ifdef __cplusplus
diff --git a/khronos-headers/CL/cl_ext.h b/khronos-headers/CL/cl_ext.h
index cc15d85..49e8c8e 100644
--- a/khronos-headers/CL/cl_ext.h
+++ b/khronos-headers/CL/cl_ext.h
@@ -134,15 +134,15 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
  * cl_khr_initalize_memory extension *
  *************************************/
     
-#define CL_CONTEXT_MEMORY_INITIALIZE_KHR            0x200E
+#define CL_CONTEXT_MEMORY_INITIALIZE_KHR            0x2030
     
     
 /**************************************
  * cl_khr_terminate_context extension *
  **************************************/
     
-#define CL_DEVICE_TERMINATE_CAPABILITY_KHR          0x200F
-#define CL_CONTEXT_TERMINATE_KHR                    0x2010
+#define CL_DEVICE_TERMINATE_CAPABILITY_KHR          0x2031
+#define CL_CONTEXT_TERMINATE_KHR                    0x2032
 
 #define cl_khr_terminate_context 1
 extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
@@ -308,6 +308,76 @@ typedef struct _cl_mem_ion_host_ptr
 
 #endif /* CL_VERSION_1_1 */
 
+
+#ifdef CL_VERSION_2_0
+/*********************************
+* cl_khr_sub_groups extension
+*********************************/
+#define cl_khr_sub_groups 1
+
+typedef cl_uint  cl_kernel_sub_group_info;
+
+/* cl_khr_sub_group_info */
+#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR	0x2033
+#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR		0x2034
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetKernelSubGroupInfoKHR(cl_kernel /* in_kernel */,
+						   cl_device_id /*in_device*/,
+						   cl_kernel_sub_group_info /* param_name */,
+						   size_t /*input_value_size*/,
+						   const void * /*input_value*/,
+						   size_t /*param_value_size*/,
+						   void* /*param_value*/,
+						   size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
+						   
+typedef CL_API_ENTRY cl_int
+     ( CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel /* in_kernel */,
+						      cl_device_id /*in_device*/,
+						      cl_kernel_sub_group_info /* param_name */,
+						      size_t /*input_value_size*/,
+						      const void * /*input_value*/,
+						      size_t /*param_value_size*/,
+						      void* /*param_value*/,
+						      size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
+#endif /* CL_VERSION_2_0 */
+
+#ifdef CL_VERSION_2_1
+/*********************************
+* cl_khr_priority_hints extension
+*********************************/
+#define cl_khr_priority_hints 1
+
+typedef cl_uint  cl_queue_priority_khr;
+
+/* cl_command_queue_properties */
+#define CL_QUEUE_PRIORITY_KHR 0x1096
+
+/* cl_queue_priority_khr */
+#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0)
+#define CL_QUEUE_PRIORITY_MED_KHR (1<<1)
+#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2)
+
+#endif /* CL_VERSION_2_1 */
+
+#ifdef CL_VERSION_2_1
+/*********************************
+* cl_khr_throttle_hints extension
+*********************************/
+#define cl_khr_throttle_hints 1
+
+typedef cl_uint  cl_queue_throttle_khr;
+
+/* cl_command_queue_properties */
+#define CL_QUEUE_THROTTLE_KHR 0x1097
+
+/* cl_queue_throttle_khr */
+#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0)
+#define CL_QUEUE_THROTTLE_MED_KHR (1<<1)
+#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2)
+
+#endif /* CL_VERSION_2_1 */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/khronos-headers/CL/cl_platform.h b/khronos-headers/CL/cl_platform.h
index 9e455fd..ec6f57d 100644
--- a/khronos-headers/CL/cl_platform.h
+++ b/khronos-headers/CL/cl_platform.h
@@ -45,6 +45,14 @@ extern "C" {
     #define CL_CALLBACK
 #endif
 
+/*
+ * Deprecation flags refer to the last version of the header in which the
+ * feature was not deprecated.
+ *
+ * E.g. VERSION_1_1_DEPRECATED means the feature is present in 1.1 without
+ * deprecation but is deprecated in versions later than 1.1.
+ */
+
 #ifdef __APPLE__
     #define CL_EXTENSION_WEAK_LINK       __attribute__((weak_import))
     #define CL_API_SUFFIX__VERSION_1_0                  AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
@@ -77,6 +85,8 @@ extern "C" {
     #define CL_EXT_SUFFIX__VERSION_1_2
     #define CL_API_SUFFIX__VERSION_2_0
     #define CL_EXT_SUFFIX__VERSION_2_0
+    #define CL_API_SUFFIX__VERSION_2_1
+    #define CL_EXT_SUFFIX__VERSION_2_1
     
     #ifdef __GNUC__
         #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
@@ -95,13 +105,21 @@ extern "C" {
             #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED    
         #endif
 
+        #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+        #else
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated))
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+         #endif
+
         #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
         #else
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED __attribute__((deprecated))
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
-         #endif
+        #endif
     #elif _WIN32
         #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
             #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
@@ -119,11 +137,19 @@ extern "C" {
             #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED __declspec(deprecated)     
         #endif
     
+        #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+        #else
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED __declspec(deprecated)
+        #endif
+
         #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
         #else
-            #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
+            #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED 
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED __declspec(deprecated)
         #endif
     #else
@@ -133,6 +159,9 @@ extern "C" {
         #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
         #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
     
+        #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+        #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+
         #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
         #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
     #endif
diff --git a/khronos-headers/OpenCL/cl.h b/khronos-headers/OpenCL/cl.h
index f09d9f4..101c2c9 100644
--- a/khronos-headers/OpenCL/cl.h
+++ b/khronos-headers/OpenCL/cl.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 - 2013 The Khronos Group Inc.
+ * Copyright (c) 2008 - 2013, 2015 The Khronos Group Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and/or associated documentation files (the
@@ -89,6 +89,7 @@ typedef cl_uint             cl_kernel_arg_address_qualifier;
 typedef cl_uint             cl_kernel_arg_access_qualifier;
 typedef cl_bitfield         cl_kernel_arg_type_qualifier;
 typedef cl_uint             cl_kernel_work_group_info;
+typedef cl_uint             cl_kernel_sub_group_info;
 typedef cl_uint             cl_event_info;
 typedef cl_uint             cl_command_type;
 typedef cl_uint             cl_profiling_info;
@@ -110,6 +111,9 @@ typedef struct _cl_image_desc {
     size_t                  image_slice_pitch;
     cl_uint                 num_mip_levels;
     cl_uint                 num_samples;
+#ifdef __GNUC__
+    __extension__   /* Prevents warnings about anonymous union in -pedantic builds */
+#endif
     union {
       cl_mem                  buffer;
       cl_mem                  mem_object;
@@ -193,6 +197,7 @@ typedef struct _cl_buffer_region {
 #define CL_VERSION_1_1                              1
 #define CL_VERSION_1_2                              1
 #define CL_VERSION_2_0                              1
+#define CL_VERSION_2_1                              1
 
 /* cl_bool */
 #define CL_FALSE                                    0
@@ -206,6 +211,7 @@ typedef struct _cl_buffer_region {
 #define CL_PLATFORM_NAME                            0x0902
 #define CL_PLATFORM_VENDOR                          0x0903
 #define CL_PLATFORM_EXTENSIONS                      0x0904
+#define CL_PLATFORM_HOST_TIMER_RESOLUTION           0x0905
 
 /* cl_device_type - bitfield */
 #define CL_DEVICE_TYPE_DEFAULT                      (1 << 0)
@@ -216,98 +222,101 @@ typedef struct _cl_buffer_region {
 #define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF
 
 /* cl_device_info */
-#define CL_DEVICE_TYPE                                  0x1000
-#define CL_DEVICE_VENDOR_ID                             0x1001
-#define CL_DEVICE_MAX_COMPUTE_UNITS                     0x1002
-#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS              0x1003
-#define CL_DEVICE_MAX_WORK_GROUP_SIZE                   0x1004
-#define CL_DEVICE_MAX_WORK_ITEM_SIZES                   0x1005
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR           0x1006
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT          0x1007
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT            0x1008
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG           0x1009
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT          0x100A
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE         0x100B
-#define CL_DEVICE_MAX_CLOCK_FREQUENCY                   0x100C
-#define CL_DEVICE_ADDRESS_BITS                          0x100D
-#define CL_DEVICE_MAX_READ_IMAGE_ARGS                   0x100E
-#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS                  0x100F
-#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                    0x1010
-#define CL_DEVICE_IMAGE2D_MAX_WIDTH                     0x1011
-#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                    0x1012
-#define CL_DEVICE_IMAGE3D_MAX_WIDTH                     0x1013
-#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                    0x1014
-#define CL_DEVICE_IMAGE3D_MAX_DEPTH                     0x1015
-#define CL_DEVICE_IMAGE_SUPPORT                         0x1016
-#define CL_DEVICE_MAX_PARAMETER_SIZE                    0x1017
-#define CL_DEVICE_MAX_SAMPLERS                          0x1018
-#define CL_DEVICE_MEM_BASE_ADDR_ALIGN                   0x1019
-#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE              0x101A
-#define CL_DEVICE_SINGLE_FP_CONFIG                      0x101B
-#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE                 0x101C
-#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE             0x101D
-#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE                 0x101E
-#define CL_DEVICE_GLOBAL_MEM_SIZE                       0x101F
-#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE              0x1020
-#define CL_DEVICE_MAX_CONSTANT_ARGS                     0x1021
-#define CL_DEVICE_LOCAL_MEM_TYPE                        0x1022
-#define CL_DEVICE_LOCAL_MEM_SIZE                        0x1023
-#define CL_DEVICE_ERROR_CORRECTION_SUPPORT              0x1024
-#define CL_DEVICE_PROFILING_TIMER_RESOLUTION            0x1025
-#define CL_DEVICE_ENDIAN_LITTLE                         0x1026
-#define CL_DEVICE_AVAILABLE                             0x1027
-#define CL_DEVICE_COMPILER_AVAILABLE                    0x1028
-#define CL_DEVICE_EXECUTION_CAPABILITIES                0x1029
-#define CL_DEVICE_QUEUE_PROPERTIES                      0x102A    /* deprecated */
-#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES              0x102A
-#define CL_DEVICE_NAME                                  0x102B
-#define CL_DEVICE_VENDOR                                0x102C
-#define CL_DRIVER_VERSION                               0x102D
-#define CL_DEVICE_PROFILE                               0x102E
-#define CL_DEVICE_VERSION                               0x102F
-#define CL_DEVICE_EXTENSIONS                            0x1030
-#define CL_DEVICE_PLATFORM                              0x1031
-#define CL_DEVICE_DOUBLE_FP_CONFIG                      0x1032
+#define CL_DEVICE_TYPE                                   0x1000
+#define CL_DEVICE_VENDOR_ID                              0x1001
+#define CL_DEVICE_MAX_COMPUTE_UNITS                      0x1002
+#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS               0x1003
+#define CL_DEVICE_MAX_WORK_GROUP_SIZE                    0x1004
+#define CL_DEVICE_MAX_WORK_ITEM_SIZES                    0x1005
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR            0x1006
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT           0x1007
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT             0x1008
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG            0x1009
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT           0x100A
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE          0x100B
+#define CL_DEVICE_MAX_CLOCK_FREQUENCY                    0x100C
+#define CL_DEVICE_ADDRESS_BITS                           0x100D
+#define CL_DEVICE_MAX_READ_IMAGE_ARGS                    0x100E
+#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS                   0x100F
+#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                     0x1010
+#define CL_DEVICE_IMAGE2D_MAX_WIDTH                      0x1011
+#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                     0x1012
+#define CL_DEVICE_IMAGE3D_MAX_WIDTH                      0x1013
+#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                     0x1014
+#define CL_DEVICE_IMAGE3D_MAX_DEPTH                      0x1015
+#define CL_DEVICE_IMAGE_SUPPORT                          0x1016
+#define CL_DEVICE_MAX_PARAMETER_SIZE                     0x1017
+#define CL_DEVICE_MAX_SAMPLERS                           0x1018
+#define CL_DEVICE_MEM_BASE_ADDR_ALIGN                    0x1019
+#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE               0x101A
+#define CL_DEVICE_SINGLE_FP_CONFIG                       0x101B
+#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE                  0x101C
+#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE              0x101D
+#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE                  0x101E
+#define CL_DEVICE_GLOBAL_MEM_SIZE                        0x101F
+#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE               0x1020
+#define CL_DEVICE_MAX_CONSTANT_ARGS                      0x1021
+#define CL_DEVICE_LOCAL_MEM_TYPE                         0x1022
+#define CL_DEVICE_LOCAL_MEM_SIZE                         0x1023
+#define CL_DEVICE_ERROR_CORRECTION_SUPPORT               0x1024
+#define CL_DEVICE_PROFILING_TIMER_RESOLUTION             0x1025
+#define CL_DEVICE_ENDIAN_LITTLE                          0x1026
+#define CL_DEVICE_AVAILABLE                              0x1027
+#define CL_DEVICE_COMPILER_AVAILABLE                     0x1028
+#define CL_DEVICE_EXECUTION_CAPABILITIES                 0x1029
+#define CL_DEVICE_QUEUE_PROPERTIES                       0x102A    /* deprecated */
+#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES               0x102A
+#define CL_DEVICE_NAME                                   0x102B
+#define CL_DEVICE_VENDOR                                 0x102C
+#define CL_DRIVER_VERSION                                0x102D
+#define CL_DEVICE_PROFILE                                0x102E
+#define CL_DEVICE_VERSION                                0x102F
+#define CL_DEVICE_EXTENSIONS                             0x1030
+#define CL_DEVICE_PLATFORM                               0x1031
+#define CL_DEVICE_DOUBLE_FP_CONFIG                       0x1032
 /* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */
-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF           0x1034
-#define CL_DEVICE_HOST_UNIFIED_MEMORY                   0x1035   /* deprecated */
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR              0x1036
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT             0x1037
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT               0x1038
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG              0x1039
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT             0x103A
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE            0x103B
-#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF              0x103C
-#define CL_DEVICE_OPENCL_C_VERSION                      0x103D
-#define CL_DEVICE_LINKER_AVAILABLE                      0x103E
-#define CL_DEVICE_BUILT_IN_KERNELS                      0x103F
-#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE                 0x1040
-#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE                  0x1041
-#define CL_DEVICE_PARENT_DEVICE                         0x1042
-#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES             0x1043
-#define CL_DEVICE_PARTITION_PROPERTIES                  0x1044
-#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN             0x1045
-#define CL_DEVICE_PARTITION_TYPE                        0x1046
-#define CL_DEVICE_REFERENCE_COUNT                       0x1047
-#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC           0x1048
-#define CL_DEVICE_PRINTF_BUFFER_SIZE                    0x1049
-#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT                 0x104A
-#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT          0x104B
-#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS             0x104C
-#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE              0x104D
-#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES            0x104E
-#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE        0x104F
-#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE              0x1050
-#define CL_DEVICE_MAX_ON_DEVICE_QUEUES                  0x1051
-#define CL_DEVICE_MAX_ON_DEVICE_EVENTS                  0x1052
-#define CL_DEVICE_SVM_CAPABILITIES                      0x1053
-#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE  0x1054
-#define CL_DEVICE_MAX_PIPE_ARGS                         0x1055
-#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS          0x1056
-#define CL_DEVICE_PIPE_MAX_PACKET_SIZE                  0x1057
-#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT   0x1058
-#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT     0x1059
-#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT      0x105A
+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF            0x1034
+#define CL_DEVICE_HOST_UNIFIED_MEMORY                    0x1035   /* deprecated */
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR               0x1036
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT              0x1037
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT                0x1038
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG               0x1039
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT              0x103A
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE             0x103B
+#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF               0x103C
+#define CL_DEVICE_OPENCL_C_VERSION                       0x103D
+#define CL_DEVICE_LINKER_AVAILABLE                       0x103E
+#define CL_DEVICE_BUILT_IN_KERNELS                       0x103F
+#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE                  0x1040
+#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE                   0x1041
+#define CL_DEVICE_PARENT_DEVICE                          0x1042
+#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES              0x1043
+#define CL_DEVICE_PARTITION_PROPERTIES                   0x1044
+#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN              0x1045
+#define CL_DEVICE_PARTITION_TYPE                         0x1046
+#define CL_DEVICE_REFERENCE_COUNT                        0x1047
+#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC            0x1048
+#define CL_DEVICE_PRINTF_BUFFER_SIZE                     0x1049
+#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT                  0x104A
+#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT           0x104B
+#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS              0x104C
+#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE               0x104D
+#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES             0x104E
+#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE         0x104F
+#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE               0x1050
+#define CL_DEVICE_MAX_ON_DEVICE_QUEUES                   0x1051
+#define CL_DEVICE_MAX_ON_DEVICE_EVENTS                   0x1052
+#define CL_DEVICE_SVM_CAPABILITIES                       0x1053
+#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE   0x1054
+#define CL_DEVICE_MAX_PIPE_ARGS                          0x1055
+#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS           0x1056
+#define CL_DEVICE_PIPE_MAX_PACKET_SIZE                   0x1057
+#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT    0x1058
+#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT      0x1059
+#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT       0x105A
+#define CL_DEVICE_IL_VERSION                             0x105B
+#define CL_DEVICE_MAX_NUM_SUB_GROUPS                     0x105C
+#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D
 
 /* cl_device_fp_config - bitfield */
 #define CL_FP_DENORM                                (1 << 0)
@@ -374,6 +383,7 @@ typedef struct _cl_buffer_region {
 #define CL_QUEUE_REFERENCE_COUNT                    0x1092
 #define CL_QUEUE_PROPERTIES                         0x1093
 #define CL_QUEUE_SIZE                               0x1094
+#define CL_QUEUE_DEVICE_DEFAULT                     0x1095
 
 /* cl_mem_flags and cl_svm_mem_flags - bitfield */
 #define CL_MEM_READ_WRITE                           (1 << 0)
@@ -388,6 +398,7 @@ typedef struct _cl_buffer_region {
 #define CL_MEM_HOST_NO_ACCESS                       (1 << 9)
 #define CL_MEM_SVM_FINE_GRAIN_BUFFER                (1 << 10)   /* used by cl_svm_mem_flags only */
 #define CL_MEM_SVM_ATOMICS                          (1 << 11)   /* used by cl_svm_mem_flags only */
+#define CL_MEM_KERNEL_READ_AND_WRITE                (1 << 12)
 
 /* cl_mem_migration_flags - bitfield */
 #define CL_MIGRATE_MEM_OBJECT_HOST                  (1 << 0)
@@ -432,6 +443,7 @@ typedef struct _cl_buffer_region {
 #define CL_HALF_FLOAT                               0x10DD
 #define CL_FLOAT                                    0x10DE
 #define CL_UNORM_INT24                              0x10DF
+#define CL_UNORM_INT_101010_2                       0x10E0
 
 /* cl_mem_object_type */
 #define CL_MEM_OBJECT_BUFFER                        0x10F0
@@ -508,6 +520,7 @@ typedef struct _cl_buffer_region {
 #define CL_PROGRAM_BINARIES                         0x1166
 #define CL_PROGRAM_NUM_KERNELS                      0x1167
 #define CL_PROGRAM_KERNEL_NAMES                     0x1168
+#define CL_PROGRAM_IL                               0x1169
 
 /* cl_program_build_info */
 #define CL_PROGRAM_BUILD_STATUS                     0x1181
@@ -535,6 +548,8 @@ typedef struct _cl_buffer_region {
 #define CL_KERNEL_CONTEXT                           0x1193
 #define CL_KERNEL_PROGRAM                           0x1194
 #define CL_KERNEL_ATTRIBUTES                        0x1195
+#define CL_KERNEL_MAX_NUM_SUB_GROUPS                0x11B9
+#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS            0x11BA
 
 /* cl_kernel_arg_info */
 #define CL_KERNEL_ARG_ADDRESS_QUALIFIER             0x1196
@@ -569,6 +584,11 @@ typedef struct _cl_buffer_region {
 #define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3
 #define CL_KERNEL_PRIVATE_MEM_SIZE                  0x11B4
 #define CL_KERNEL_GLOBAL_WORK_SIZE                  0x11B5
+
+/* cl_kernel_sub_group_info */
+#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE    0x2033
+#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE       0x2034
+#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT    0x11B8
     
 /* cl_kernel_exec_info */
 #define CL_KERNEL_EXEC_INFO_SVM_PTRS                0x11B6
@@ -671,6 +691,21 @@ clRetainDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
     
 extern CL_API_ENTRY cl_int CL_API_CALL
 clReleaseDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clSetDefaultDeviceCommandQueue(cl_context           /* context */,
+                               cl_device_id         /* device */,
+                               cl_command_queue     /* command_queue */) CL_API_SUFFIX__VERSION_2_1;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetDeviceAndHostTimer(cl_device_id    /* device */,
+                        cl_ulong*       /* device_timestamp */,
+                        cl_ulong*       /* host_timestamp */) CL_API_SUFFIX__VERSION_2_1;
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetHostTimer(cl_device_id /* device */,
+               cl_ulong *   /* host_timestamp */)  CL_API_SUFFIX__VERSION_2_1;
+
     
 /* Context APIs  */
 extern CL_API_ENTRY cl_context CL_API_CALL
@@ -847,6 +882,13 @@ clCreateProgramWithBuiltInKernels(cl_context            /* context */,
                                   const char *          /* kernel_names */,
                                   cl_int *              /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
 
+extern CL_API_ENTRY cl_program CL_API_CALL
+clCreateProgramWithIL(cl_context    /* context */,
+                     const void*    /* il */,
+                     size_t         /* length */,
+                     cl_int*        /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+
+
 extern CL_API_ENTRY cl_int CL_API_CALL
 clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
 
@@ -914,6 +956,10 @@ clCreateKernelsInProgram(cl_program     /* program */,
                          cl_kernel *    /* kernels */,
                          cl_uint *      /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;
 
+extern CL_API_ENTRY cl_kernel CL_API_CALL
+clCloneKernel(cl_kernel     /* source_kernel */,
+              cl_int*       /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+
 extern CL_API_ENTRY cl_int CL_API_CALL
 clRetainKernel(cl_kernel    /* kernel */) CL_API_SUFFIX__VERSION_1_0;
 
@@ -960,6 +1006,17 @@ clGetKernelWorkGroupInfo(cl_kernel                  /* kernel */,
                          void *                     /* param_value */,
                          size_t *                   /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
 
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetKernelSubGroupInfo(cl_kernel                   /* kernel */,
+                        cl_device_id                /* device */,
+                        cl_kernel_sub_group_info    /* param_name */,
+                        size_t                      /* input_value_size */,
+                        const void*                 /*input_value */,
+                        size_t                      /* param_value_size */,
+                        void*                       /* param_value */,
+                        size_t*                     /* param_value_size_ret */ ) CL_API_SUFFIX__VERSION_2_1;
+
+
 /* Event Object APIs */
 extern CL_API_ENTRY cl_int CL_API_CALL
 clWaitForEvents(cl_uint             /* num_events */,
@@ -1295,7 +1352,17 @@ clEnqueueSVMUnmap(cl_command_queue  /* command_queue */,
                   cl_uint           /* num_events_in_wait_list */,
                   const cl_event *  /* event_wait_list */,
                   cl_event *        /* event */) CL_API_SUFFIX__VERSION_2_0;
-    
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clEnqueueSVMMigrateMem(cl_command_queue         /* command_queue */,
+                       cl_uint                  /* num_svm_pointers */,
+                       const void **            /* svm_pointers */,
+                       const size_t *           /* sizes */,
+                       cl_mem_migration_flags   /* flags */,
+                       cl_uint                  /* num_events_in_wait_list */,
+                       const cl_event *         /* event_wait_list */,
+                       cl_event *               /* event */) CL_API_SUFFIX__VERSION_2_1;
+
 
 /* Extension function access
  *
@@ -1351,26 +1418,26 @@ extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
 clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
     
 /* Deprecated OpenCL 2.0 APIs */
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_command_queue CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL
 clCreateCommandQueue(cl_context                     /* context */,
                      cl_device_id                   /* device */,
                      cl_command_queue_properties    /* properties */,
-                     cl_int *                       /* errcode_ret */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+                     cl_int *                       /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
     
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_sampler CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL
 clCreateSampler(cl_context          /* context */,
                 cl_bool             /* normalized_coords */,
                 cl_addressing_mode  /* addressing_mode */,
                 cl_filter_mode      /* filter_mode */,
-                cl_int *            /* errcode_ret */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+                cl_int *            /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
-extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_0_DEPRECATED cl_int CL_API_CALL
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL
 clEnqueueTask(cl_command_queue  /* command_queue */,
               cl_kernel         /* kernel */,
               cl_uint           /* num_events_in_wait_list */,
               const cl_event *  /* event_wait_list */,
-              cl_event *        /* event */) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED;
+              cl_event *        /* event */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED;
     
 #ifdef __cplusplus
 }
diff --git a/khronos-headers/OpenCL/cl_egl.h b/khronos-headers/OpenCL/cl_egl.h
index 93e6c9c..5f3c66e 100644
--- a/khronos-headers/OpenCL/cl_egl.h
+++ b/khronos-headers/OpenCL/cl_egl.h
@@ -28,8 +28,8 @@
 
 #else
 #include <CL/cl.h>
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
+//#include <EGL/egl.h>
+//#include <EGL/eglext.h>
 #endif  
 
 #ifdef __cplusplus
diff --git a/khronos-headers/OpenCL/cl_ext.h b/khronos-headers/OpenCL/cl_ext.h
index cc15d85..49e8c8e 100644
--- a/khronos-headers/OpenCL/cl_ext.h
+++ b/khronos-headers/OpenCL/cl_ext.h
@@ -134,15 +134,15 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
  * cl_khr_initalize_memory extension *
  *************************************/
     
-#define CL_CONTEXT_MEMORY_INITIALIZE_KHR            0x200E
+#define CL_CONTEXT_MEMORY_INITIALIZE_KHR            0x2030
     
     
 /**************************************
  * cl_khr_terminate_context extension *
  **************************************/
     
-#define CL_DEVICE_TERMINATE_CAPABILITY_KHR          0x200F
-#define CL_CONTEXT_TERMINATE_KHR                    0x2010
+#define CL_DEVICE_TERMINATE_CAPABILITY_KHR          0x2031
+#define CL_CONTEXT_TERMINATE_KHR                    0x2032
 
 #define cl_khr_terminate_context 1
 extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
@@ -308,6 +308,76 @@ typedef struct _cl_mem_ion_host_ptr
 
 #endif /* CL_VERSION_1_1 */
 
+
+#ifdef CL_VERSION_2_0
+/*********************************
+* cl_khr_sub_groups extension
+*********************************/
+#define cl_khr_sub_groups 1
+
+typedef cl_uint  cl_kernel_sub_group_info;
+
+/* cl_khr_sub_group_info */
+#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR	0x2033
+#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR		0x2034
+
+extern CL_API_ENTRY cl_int CL_API_CALL
+clGetKernelSubGroupInfoKHR(cl_kernel /* in_kernel */,
+						   cl_device_id /*in_device*/,
+						   cl_kernel_sub_group_info /* param_name */,
+						   size_t /*input_value_size*/,
+						   const void * /*input_value*/,
+						   size_t /*param_value_size*/,
+						   void* /*param_value*/,
+						   size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
+						   
+typedef CL_API_ENTRY cl_int
+     ( CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel /* in_kernel */,
+						      cl_device_id /*in_device*/,
+						      cl_kernel_sub_group_info /* param_name */,
+						      size_t /*input_value_size*/,
+						      const void * /*input_value*/,
+						      size_t /*param_value_size*/,
+						      void* /*param_value*/,
+						      size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
+#endif /* CL_VERSION_2_0 */
+
+#ifdef CL_VERSION_2_1
+/*********************************
+* cl_khr_priority_hints extension
+*********************************/
+#define cl_khr_priority_hints 1
+
+typedef cl_uint  cl_queue_priority_khr;
+
+/* cl_command_queue_properties */
+#define CL_QUEUE_PRIORITY_KHR 0x1096
+
+/* cl_queue_priority_khr */
+#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0)
+#define CL_QUEUE_PRIORITY_MED_KHR (1<<1)
+#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2)
+
+#endif /* CL_VERSION_2_1 */
+
+#ifdef CL_VERSION_2_1
+/*********************************
+* cl_khr_throttle_hints extension
+*********************************/
+#define cl_khr_throttle_hints 1
+
+typedef cl_uint  cl_queue_throttle_khr;
+
+/* cl_command_queue_properties */
+#define CL_QUEUE_THROTTLE_KHR 0x1097
+
+/* cl_queue_throttle_khr */
+#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0)
+#define CL_QUEUE_THROTTLE_MED_KHR (1<<1)
+#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2)
+
+#endif /* CL_VERSION_2_1 */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/khronos-headers/OpenCL/cl_platform.h b/khronos-headers/OpenCL/cl_platform.h
index 9e455fd..ec6f57d 100644
--- a/khronos-headers/OpenCL/cl_platform.h
+++ b/khronos-headers/OpenCL/cl_platform.h
@@ -45,6 +45,14 @@ extern "C" {
     #define CL_CALLBACK
 #endif
 
+/*
+ * Deprecation flags refer to the last version of the header in which the
+ * feature was not deprecated.
+ *
+ * E.g. VERSION_1_1_DEPRECATED means the feature is present in 1.1 without
+ * deprecation but is deprecated in versions later than 1.1.
+ */
+
 #ifdef __APPLE__
     #define CL_EXTENSION_WEAK_LINK       __attribute__((weak_import))
     #define CL_API_SUFFIX__VERSION_1_0                  AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
@@ -77,6 +85,8 @@ extern "C" {
     #define CL_EXT_SUFFIX__VERSION_1_2
     #define CL_API_SUFFIX__VERSION_2_0
     #define CL_EXT_SUFFIX__VERSION_2_0
+    #define CL_API_SUFFIX__VERSION_2_1
+    #define CL_EXT_SUFFIX__VERSION_2_1
     
     #ifdef __GNUC__
         #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
@@ -95,13 +105,21 @@ extern "C" {
             #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED    
         #endif
 
+        #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+        #else
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated))
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+         #endif
+
         #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
         #else
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED __attribute__((deprecated))
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
-         #endif
+        #endif
     #elif _WIN32
         #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
             #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
@@ -119,11 +137,19 @@ extern "C" {
             #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED __declspec(deprecated)     
         #endif
     
+        #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+        #else
+            #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+            #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED __declspec(deprecated)
+        #endif
+
         #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS
             #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
         #else
-            #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
+            #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED 
             #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED __declspec(deprecated)
         #endif
     #else
@@ -133,6 +159,9 @@ extern "C" {
         #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
         #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
     
+        #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED
+        #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED
+
         #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED
         #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED
     #endif
diff --git a/ocl_interface.yaml b/ocl_interface.yaml
index 07d8121..1bda209 100644
--- a/ocl_interface.yaml
+++ b/ocl_interface.yaml
@@ -597,10 +597,10 @@
                                   cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
 81: |-
   CL_API_ENTRY cl_int CL_API_CALL
-  clSetEventCallback( cl_event    /* event */,
-                      cl_int      /* command_exec_callback_type */,
-                      void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),
-                      void *      /* user_data */) CL_API_SUFFIX__VERSION_1_1;
+  clSetEventCallback(cl_event    /* event */,
+                     cl_int      /* command_exec_callback_type */,
+                     void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),
+                     void *      /* user_data */) CL_API_SUFFIX__VERSION_1_1;
 82: |-
   CL_API_ENTRY cl_mem CL_API_CALL
   clCreateSubBuffer(cl_mem                   /* buffer */,
@@ -610,9 +610,9 @@
                     cl_int *                 /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
 83: |-
   CL_API_ENTRY cl_int CL_API_CALL
-  clSetMemObjectDestructorCallback(  cl_mem /* memobj */, 
-                                      void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), 
-                                      void * /*user_data */ )             CL_API_SUFFIX__VERSION_1_1;
+  clSetMemObjectDestructorCallback(cl_mem /* memobj */,
+                                   void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),
+                                   void * /*user_data */ )             CL_API_SUFFIX__VERSION_1_1;
 84: |-
   CL_API_ENTRY cl_event CL_API_CALL
   clCreateUserEvent(cl_context    /* context */,
@@ -670,17 +670,17 @@
                           cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_1;
 89: |-
   CL_API_ENTRY cl_int CL_API_CALL
-      clCreateSubDevicesEXT(  cl_device_id /*in_device*/,
-                              const cl_device_partition_property_ext * /* properties */,
-                              cl_uint /*num_entries*/,
-                              cl_device_id * /*out_devices*/,
-                              cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1;
+  clCreateSubDevicesEXT(cl_device_id /*in_device*/,
+                        const cl_device_partition_property_ext * /* properties */,
+                        cl_uint /*num_entries*/,
+                        cl_device_id * /*out_devices*/,
+                        cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1;
 90: |-
   CL_API_ENTRY cl_int CL_API_CALL
-      clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
+  clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
 91: |-
   CL_API_ENTRY cl_int CL_API_CALL
-      clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
+  clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
 92: |-
   CL_API_ENTRY cl_event CL_API_CALL
   clCreateEventFromGLsyncKHR(cl_context           /* context */,
@@ -880,6 +880,36 @@
                                       cl_uint          /* num_events_in_wait_list */,
                                       const cl_event * /* event_wait_list */,
                                       cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_2;
+119: |-
+  CL_API_ENTRY cl_mem CL_API_CALL
+  clCreateFromEGLImageKHR(cl_context                  /* context */,
+                          CLeglDisplayKHR             /* egldisplay */,
+                          CLeglImageKHR               /* eglimage */,
+                          cl_mem_flags                /* flags */,
+                          const cl_egl_image_properties_khr * /* properties */,
+                          cl_int *                    /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
+120: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clEnqueueAcquireEGLObjectsKHR(cl_command_queue /* command_queue */,
+                                cl_uint          /* num_objects */,
+                                const cl_mem *   /* mem_objects */,
+                                cl_uint          /* num_events_in_wait_list */,
+                                const cl_event * /* event_wait_list */,
+                                cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
+121: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clEnqueueReleaseEGLObjectsKHR(cl_command_queue /* command_queue */,
+                                cl_uint          /* num_objects */,
+                                const cl_mem *   /* mem_objects */,
+                                cl_uint          /* num_events_in_wait_list */,
+                                const cl_event * /* event_wait_list */,
+                                cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;
+122: |-
+  CL_API_ENTRY cl_event CL_API_CALL
+  clCreateEventFromEGLSyncKHR(cl_context      /* context */,
+                              CLeglSyncKHR    /* sync */,
+                              CLeglDisplayKHR /* display */,
+                              cl_int *        /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
 123: |-
   CL_API_ENTRY cl_command_queue CL_API_CALL
   clCreateCommandQueueWithProperties(cl_context               /* context */,
@@ -977,3 +1007,57 @@
                       cl_kernel_exec_info  /* param_name */,
                       size_t               /* param_value_size */,
                       const void *         /* param_value */) CL_API_SUFFIX__VERSION_2_0;
+136: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clGetKernelSubGroupInfoKHR(cl_kernel /* in_kernel */,
+                             cl_device_id /*in_device*/,
+                             cl_kernel_sub_group_info /* param_name */,
+                             size_t /*input_value_size*/,
+                             const void * /*input_value*/,
+                             size_t /*param_value_size*/,
+                             void* /*param_value*/,
+                             size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
+137: |-
+  CL_API_ENTRY cl_kernel CL_API_CALL
+  clCloneKernel(cl_kernel     /* source_kernel */,
+                cl_int*       /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+138: |-
+  CL_API_ENTRY cl_program CL_API_CALL
+  clCreateProgramWithIL(cl_context    /* context */,
+                        const void*    /* il */,
+                        size_t         /* length */,
+                        cl_int*        /* errcode_ret */) CL_API_SUFFIX__VERSION_2_1;
+139: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clEnqueueSVMMigrateMem(cl_command_queue         /* command_queue */,
+                         cl_uint                  /* num_svm_pointers */,
+                         const void **            /* svm_pointers */,
+                         const size_t *           /* sizes */,
+                         cl_mem_migration_flags   /* flags */,
+                         cl_uint                  /* num_events_in_wait_list */,
+                         const cl_event *         /* event_wait_list */,
+                         cl_event *               /* event */) CL_API_SUFFIX__VERSION_2_1;
+140: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clGetDeviceAndHostTimer(cl_device_id    /* device */,
+                          cl_ulong*       /* device_timestamp */,
+                          cl_ulong*       /* host_timestamp */) CL_API_SUFFIX__VERSION_2_1;
+141: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clGetHostTimer(cl_device_id /* device */,
+                 cl_ulong *   /* host_timestamp */)  CL_API_SUFFIX__VERSION_2_1;
+142: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clGetKernelSubGroupInfo(cl_kernel                   /* kernel */,
+                          cl_device_id                /* device */,
+                          cl_kernel_sub_group_info    /* param_name */,
+                          size_t                      /* input_value_size */,
+                          const void*                 /* input_value */,
+                          size_t                      /* param_value_size */,
+                          void*                       /* param_value */,
+                          size_t*                     /* param_value_size_ret */ ) CL_API_SUFFIX__VERSION_2_1;
+143: |-
+  CL_API_ENTRY cl_int CL_API_CALL
+  clSetDefaultDeviceCommandQueue(cl_context           /* context */,
+                                 cl_device_id         /* device */,
+                                 cl_command_queue     /* command_queue */) CL_API_SUFFIX__VERSION_2_1;
diff --git a/run_dummy_icd.c b/run_dummy_icd.c
index d5fbe10..f936a2f 100644
--- a/run_dummy_icd.c
+++ b/run_dummy_icd.c
@@ -32,6 +32,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #  include <CL/opencl.h>
 #  include <CL/cl.h>
 #  include <CL/cl_gl.h>
+#  include <CL/cl_egl.h>
 #  include <CL/cl_ext.h>
 #  include <CL/cl_gl_ext.h>
 #pragma GCC diagnostic pop
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 569b032..ab5cb68 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -78,8 +88,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/atlocal.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
@@ -89,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/amx_silent_rules.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = atlocal
@@ -113,6 +122,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/atlocal.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 A2X = @A2X@
 ACLOCAL = @ACLOCAL@
@@ -230,6 +240,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -259,7 +270,6 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --foreign tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -439,6 +449,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # The `:;' works around a Bash 3.2 bug when the output is not writable.
 $(srcdir)/package.m4: $(top_srcdir)/configure.ac
diff --git a/tests/package.m4 b/tests/package.m4
index 033ff87..4e0b7be 100644
--- a/tests/package.m4
+++ b/tests/package.m4
@@ -4,9 +4,9 @@ m4_define([AT_PACKAGE_NAME],
 m4_define([AT_PACKAGE_TARNAME],
   [ocl-icd])
 m4_define([AT_PACKAGE_VERSION],
-  [2.2.7])
+  [2.2.8])
 m4_define([AT_PACKAGE_STRING],
-  [OpenCL ICD Loader 2.2.7])
+  [OpenCL ICD Loader 2.2.8])
 m4_define([AT_PACKAGE_BUGREPORT],
   [ocl-icd-devel at lists.forge.imag.fr])
 m4_define([AT_PACKAGE_URL],
diff --git a/tests/testsuite b/tests/testsuite
index 9a063fd..dc5f80c 100755
--- a/tests/testsuite
+++ b/tests/testsuite
@@ -926,7 +926,7 @@ fi
 # List of tests.
 if $at_list_p; then
   cat <<_ATEOF || at_write_fail=1
-OpenCL ICD Loader 2.2.7 test suite test groups:
+OpenCL ICD Loader 2.2.8 test suite test groups:
 
  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
@@ -967,7 +967,7 @@ _ATEOF
   exit $at_write_fail
 fi
 if $at_version_p; then
-  $as_echo "$as_me (OpenCL ICD Loader 2.2.7)" &&
+  $as_echo "$as_me (OpenCL ICD Loader 2.2.8)" &&
   cat <<\_ATEOF || at_write_fail=1
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1153,11 +1153,11 @@ exec 5>>"$at_suite_log"
 
 # Banners and logs.
 $as_echo "## ----------------------------------- ##
-## OpenCL ICD Loader 2.2.7 test suite. ##
+## OpenCL ICD Loader 2.2.8 test suite. ##
 ## ----------------------------------- ##"
 {
   $as_echo "## ----------------------------------- ##
-## OpenCL ICD Loader 2.2.7 test suite. ##
+## OpenCL ICD Loader 2.2.8 test suite. ##
 ## ----------------------------------- ##"
   echo
 
@@ -2001,7 +2001,7 @@ _ASBOX
   $as_echo "Please send $at_msg and all information you think might help:
 
    To: <ocl-icd-devel at lists.forge.imag.fr>
-   Subject: [OpenCL ICD Loader 2.2.7] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+   Subject: [OpenCL ICD Loader 2.2.8] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
 
 You may investigate any problem if you feel able to do so, in which
 case the test suite provides a good starting point.  Its output may
@@ -2370,6 +2370,10 @@ at_xfail=no
   $at_traceon
 
 
+    OCL_ICD_DEBUG=0
+    export OCL_ICD_DEBUG
+    $as_echo "$at_srcdir/testsuite-standard.at:49: export OCL_ICD_DEBUG=0"
+
     OCL_ICD_VENDORS=$abs_top_builddir/vendors
     export OCL_ICD_VENDORS
     $as_echo "$at_srcdir/testsuite-standard.at:49: export OCL_ICD_VENDORS=\$abs_top_builddir/vendors"
@@ -2378,6 +2382,14 @@ at_xfail=no
 
 
 
+
+    eval _at_envval='"$'"OCL_ICD_DEBUG"'"'
+    $as_echo "environment: OCL_ICD_DEBUG='$($as_echo "$_at_envval" | sed "s/'/'\\\\''/g")'"
+
+
+
+
+
     eval _at_envval='"$'"OCL_ICD_VENDORS"'"'
     $as_echo "environment: OCL_ICD_VENDORS='$($as_echo "$_at_envval" | sed "s/'/'\\\\''/g")'"
 
@@ -2387,21 +2399,22 @@ at_xfail=no
 
 
 
+
 { set +x
-$as_echo "$at_srcdir/testsuite-standard.at:50: ocl_test_icdl"
-at_fn_check_prepare_trace "testsuite-standard.at:50"
+$as_echo "$at_srcdir/testsuite-standard.at:51: ocl_test_icdl"
+at_fn_check_prepare_trace "testsuite-standard.at:51"
 ( $at_check_trace; ocl_test_icdl
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "ocl_version: OpenCL 1.2
-version: 2.2.7
+version: 2.2.8
 name: OpenCL ICD Loader
 vendor: OCL Icd free software
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/testsuite-standard.at:50"
+at_fn_check_status 0 $at_status "$at_srcdir/testsuite-standard.at:51"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
diff --git a/tests/testsuite-standard.at b/tests/testsuite-standard.at
index 930bc1a..3c97f89 100644
--- a/tests/testsuite-standard.at
+++ b/tests/testsuite-standard.at
@@ -46,7 +46,8 @@ AT_CHECK([sed -e "s/ *(expected)//" stdout | uniq -c | grep -v '^ *2 ' ], 0, [
 AT_CLEANUP
 
 AT_SETUP([ICD Loader extension])
-AT_EXPORT([OCL_ICD_VENDORS],[$abs_top_builddir/vendors])
+AT_EXPORT([OCL_ICD_DEBUG],[0],
+	[OCL_ICD_VENDORS],[$abs_top_builddir/vendors])
 AT_CHECK([ocl_test_icdl], 0,
 [ocl_version: OpenCL 1.2
 version: AT_PACKAGE_VERSION

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/ocl-icd.git



More information about the Pkg-opencl-commits mailing list