Correct clCreateProgramWithBinary

store proper devices
validate input devices, lengths and binary
return correct binaries

Related-To: NEO-5001
Change-Id: I3822c291a4430e64afe54f1486b0014f16de3d64
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2020-10-21 10:25:03 +02:00
committed by sys_ocldev
parent 4c2d92890f
commit 8afdb2d981
18 changed files with 383 additions and 105 deletions

View File

@@ -83,9 +83,8 @@ class Program : public BaseObject<_cl_program> {
// Create program from binary
template <typename T = Program>
static T *create(
cl_context context,
cl_uint numDevices,
const cl_device_id *deviceList,
Context *pContext,
const ClDeviceVector &deviceVector,
const size_t *lengths,
const unsigned char **binaries,
cl_int *binaryStatus,
@@ -132,7 +131,7 @@ class Program : public BaseObject<_cl_program> {
size_t length,
cl_int &errcodeRet);
Program(Context *context, bool isBuiltIn, const ClDeviceVector &clDevices);
Program(Context *context, bool isBuiltIn, const ClDeviceVector &clDevicesIn);
~Program() override;
Program(const Program &) = delete;