clover/event: Include additional event statuses for clSetEventCallback
authorAaron Watry <awatry@gmail.com>
Fri, 4 Aug 2017 01:55:18 +0000 (20:55 -0500)
committerAaron Watry <awatry@gmail.com>
Wed, 16 Aug 2017 00:55:15 +0000 (19:55 -0500)
From CL 2.0 Section 5.11 (Event Objects):
  clSetEventCallback returns CL_SUCCESS if the function is executed successfully. Otherwise, it
  returns one of the following errors:
    ...
    CL_INVALID_VALUE if pfn_event_notify is NULL or if command_exec_callback_type is
    not CL_SUBMITTED , CL_RUNNING or CL_COMPLETE .

Fixes: OpenCL CTS test_conformance/events/test_events callbacks
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/gallium/state_trackers/clover/api/event.cpp

index 5d1a0e52c5630e3256d39d17c7d79d0ce0b8ab58..3f89644d0a45d1c84f420b99d022527ef2d9c469 100644 (file)
@@ -126,7 +126,8 @@ clSetEventCallback(cl_event d_ev, cl_int type,
                    void *user_data) try {
    auto &ev = obj(d_ev);
 
-   if (!pfn_notify || type != CL_COMPLETE)
+   if (!pfn_notify ||
+       (type != CL_COMPLETE && type != CL_SUBMITTED && type != CL_RUNNING))
       throw error(CL_INVALID_VALUE);
 
    // Create a temporary soft event that depends on ev, with