[Beignet] [PATCH] Add pfn_notify support in clCreateContext.
Yang Rong
rong.r.yang at intel.com
Mon Aug 26 00:44:55 PDT 2013
Remove assert in cl_create_context when pfn_notify is not NULL,
and save it, but don't used now.
Per spec, driver should call it when devices becomes unavailable.
Now driver doesn't check the device status.
Signed-off-by: Yang Rong <rong.r.yang at intel.com>
---
src/cl_context.c | 5 ++++-
src/cl_context.h | 10 +++++++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/cl_context.c b/src/cl_context.c
index a48436c..822fdf5 100644
--- a/src/cl_context.c
+++ b/src/cl_context.c
@@ -123,7 +123,6 @@ cl_create_context(const cl_context_properties * properties,
cl_int err = CL_SUCCESS;
cl_uint prop_len = 0;
/* XXX */
- FATAL_IF (pfn_notify != NULL || user_data != NULL, "Unsupported call back");
FATAL_IF (num_devices != 1, "Only one device is supported");
/* Check that we are getting the right platform */
@@ -144,6 +143,10 @@ cl_create_context(const cl_context_properties * properties,
/* Attach the device to the context */
ctx->device = *devices;
+ /* Save the user callback and user data*/
+ ctx->pfn_notify = pfn_notify;
+ ctx->user_data = user_data;
+
exit:
if (errcode_ret != NULL)
*errcode_ret = err;
diff --git a/src/cl_context.h b/src/cl_context.h
index 718d589..b1ef479 100644
--- a/src/cl_context.h
+++ b/src/cl_context.h
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright © 2012 Intel Corporation
*
* This library is free software; you can redistribute it and/or
@@ -44,8 +44,8 @@ struct _cl_context_prop {
enum _cl_gl_context_type gl_type;
cl_context_properties gl_context;
union {
- cl_context_properties egl_display;
- cl_context_properties glx_display;
+ cl_context_properties egl_display;
+ cl_context_properties glx_display;
cl_context_properties wgl_hdc;
cl_context_properties cgl_sharegroup;
};
@@ -72,6 +72,10 @@ struct _cl_context {
struct _cl_context_prop props;
cl_context_properties * prop_user; /* a copy of user passed context properties when create context */
cl_uint prop_len; /* count of the properties */
+ void (CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *);
+ /* User's callback when error occur in context */
+ void *user_data; /* A pointer to user supplied data */
+
};
/* Implement OpenCL function */
--
1.8.1.2
More information about the Beignet
mailing list