Mesa (master): clover: add trivial clCreateCommandQueueWithProperties implementation
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 4 18:31:46 UTC 2020
Module: Mesa
Branch: master
Commit: 333c9d5bb054d5ac5518e830b535e8a4f3f80187
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=333c9d5bb054d5ac5518e830b535e8a4f3f80187
Author: Karol Herbst <kherbst at redhat.com>
Date: Mon Mar 12 11:04:38 2018 +0100
clover: add trivial clCreateCommandQueueWithProperties implementation
It's not adding 2.0 features, but it's enough to run the 2.0 CTS on top of
clover and probably most CL applications using it.
We just fail if we hit unknown properties and that's probably good enough
until we implement the other bits properly.
Signed-off-by: Karol Herbst <kherbst at redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Pierre Moreau <dev at pmoreau.org>
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2370>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2370>
---
src/gallium/state_trackers/clover/api/dispatch.cpp | 2 +-
src/gallium/state_trackers/clover/api/queue.cpp | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/gallium/state_trackers/clover/api/dispatch.cpp b/src/gallium/state_trackers/clover/api/dispatch.cpp
index 5671fe39814..a2d270ea05b 100644
--- a/src/gallium/state_trackers/clover/api/dispatch.cpp
+++ b/src/gallium/state_trackers/clover/api/dispatch.cpp
@@ -147,7 +147,7 @@ namespace clover {
NULL, // clEnqueueAcquireEGLObjectsKHR
NULL, // clEnqueueReleaseEGLObjectsKHR
NULL, // clCreateEventFromEGLSyncKHR
- NULL, // clCreateCommandQueueWithProperties
+ clCreateCommandQueueWithProperties,
NULL, // clCreatePipe
NULL, // clGetPipeInfo
NULL, // clSVMAlloc
diff --git a/src/gallium/state_trackers/clover/api/queue.cpp b/src/gallium/state_trackers/clover/api/queue.cpp
index 06a28638002..65b271b216f 100644
--- a/src/gallium/state_trackers/clover/api/queue.cpp
+++ b/src/gallium/state_trackers/clover/api/queue.cpp
@@ -112,3 +112,24 @@ clFlush(cl_command_queue d_q) try {
} catch (error &e) {
return e.get();
}
+
+CLOVER_API cl_command_queue
+clCreateCommandQueueWithProperties(cl_context context, cl_device_id device,
+ const cl_queue_properties *properties,
+ cl_int *errcode_ret) try {
+ cl_command_queue_properties props = 0;
+ if (properties) {
+ for (auto idx = 0; properties[idx]; idx += 2) {
+ if (properties[idx] == CL_QUEUE_PROPERTIES)
+ props |= properties[idx + 1];
+ else
+ throw error(CL_INVALID_VALUE);
+ }
+ }
+
+ return clCreateCommandQueue(context, device, props, errcode_ret);
+
+} catch (error &e) {
+ ret_error(errcode_ret, e);
+ return NULL;
+}
More information about the mesa-commit
mailing list