blob: 1fea7195e3dee32e15d774b824476d36510e8bd3 [file] [log] [blame] [edit]
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// dispatch.h: Declares a function to fetch the ANGLE OpenCL dispatch table.
#ifndef LIBOPENCL_DISPATCH_H_
#define LIBOPENCL_DISPATCH_H_
#include "export.h"
#ifndef CL_API_ENTRY
# define CL_API_ENTRY ANGLE_EXPORT
#endif
#include "angle_cl.h"
namespace cl
{
struct IcdDispatch : public _cl_icd_dispatch
{
clIcdGetPlatformIDsKHR_fn clIcdGetPlatformIDsKHR;
// TODO: below extensions will be refactored to not to expose them publicly later
// http://anglebug.com/378017028
clIcdGetFunctionAddressForPlatformKHR_fn clIcdGetFunctionAddressForPlatformKHR;
clIcdSetPlatformDispatchDataKHR_fn clIcdSetPlatformDispatchDataKHR;
clEnqueueAcquireExternalMemObjectsKHR_fn clEnqueueAcquireExternalMemObjectsKHR;
clEnqueueReleaseExternalMemObjectsKHR_fn clEnqueueReleaseExternalMemObjectsKHR;
clImportMemoryARM_fn clImportMemoryARM;
};
const IcdDispatch &GetDispatch();
} // namespace cl
#endif // LIBOPENCL_DISPATCH_H_