Commit Graph

5 Commits

Author SHA1 Message Date
Sylvain Munaut 7944d0d976 fosphor/cl_compat: Fix goofs with calling convention
Doesn't matter on linux/osx because CL_API is nothing, but on Win32, it
changes things.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-10-25 21:41:22 +01:00
Sylvain Munaut b1ec76c2f4 fosphor/cl_compat: Blacklist POCL
POCL pretends to be OpenCL 1.2 but it doesn't implement some of the
required functions yet ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-01-18 23:35:51 +01:00
Sylvain Munaut af2c08b571 fosphor/cl: Add missing stdlib.h include to cl_compat.c
Thanks to roox in IRC for pointing this out

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2014-08-25 21:20:31 +02:00
Sylvain Munaut 7e7387978c fosphor/cl: Add compatibility wrappers for more CL 1.2 functions
In particular clCreateImage, clEnqueueFillBuffer and clEnqueueFillImage

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2014-07-24 22:34:06 +02:00
Sylvain Munaut 9433e60478 fosphor/cl: Handle CL 1.1 vs 1.2 differently
The OpenCL 1.2 is nicer but we can't always use it and on linux,
even if the CL_VERSION_1_2 exists, we can't trust it because distrib
sometimes have CL 1.2 headers with a CL 1.1 dispatcher.

So instead, we only assume we have 1.1 header and lib at compile time.
Then at run-time we do a dynamic lookup of the 1.2 symbols from the lib.
We also check if the actual selected platform does support 1.2 (you
could have a 1.2 dispatcher with a 1.1 platform implementation).

If both conditions are satisfied, then we dispatch the call to the 1.2
implementation and if not, then we dispatch them to a local fallback
implementation of the functions (but limited to the functions we need)

It's not pretty but it should work and it isolates all the hack magic
inside cl_compat.{c,h} and you just use the CL1.2 API normally outside
of it.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2014-07-24 22:34:06 +02:00