… | |
… | |
13 | // in addition, you cannot test for this in any future-proof way. |
13 | // in addition, you cannot test for this in any future-proof way. |
14 | // each time a new opencl version comes out, you need to make a new |
14 | // each time a new opencl version comes out, you need to make a new |
15 | // release. |
15 | // release. |
16 | #define CL_USE_DEPRECATED_OPENCL_1_2_APIS /* just guessing, you stupid idiots */ |
16 | #define CL_USE_DEPRECATED_OPENCL_1_2_APIS /* just guessing, you stupid idiots */ |
17 | |
17 | |
18 | #ifndef PREFER_1_! |
18 | #ifndef PREFER_1_1 |
19 | #define PREFER_1_1 1 |
19 | #define PREFER_1_1 1 |
20 | #endif |
20 | #endif |
21 | |
21 | |
22 | #if PREFER_1_1 |
22 | #if PREFER_1_1 |
23 | #define CL_USE_DEPRECATED_OPENCL_1_1_APIS |
23 | #define CL_USE_DEPRECATED_OPENCL_1_1_APIS |
… | |
… | |
1258 | void |
1258 | void |
1259 | enqueue_marker (OpenCL::Queue self, ...) |
1259 | enqueue_marker (OpenCL::Queue self, ...) |
1260 | PPCODE: |
1260 | PPCODE: |
1261 | cl_event ev = 0; |
1261 | cl_event ev = 0; |
1262 | EVENT_LIST (1, items - 1); |
1262 | EVENT_LIST (1, items - 1); |
1263 | #if CL_VERSION_1_2 |
1263 | #if PREFER_1_1 |
1264 | NEED_SUCCESS (EnqueueMarkerWithWaitList, (self, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0)); |
|
|
1265 | #else |
|
|
1266 | if (event_list_count) |
1264 | if (event_list_count) |
1267 | croak ("OpenCL::Queue->enqueue_marker does not support a wait list in OpenCL 1.1 - upgrade to 1.2"); |
1265 | croak ("OpenCL::Queue->enqueue_marker does not support a wait list in OpenCL 1.1 - upgrade to 1.2"); |
1268 | NEED_SUCCESS (EnqueueMarker, (self, GIMME_V != G_VOID ? &ev : 0)); |
1266 | NEED_SUCCESS (EnqueueMarker, (self, GIMME_V != G_VOID ? &ev : 0)); |
|
|
1267 | #else |
|
|
1268 | NEED_SUCCESS (EnqueueMarkerWithWaitList, (self, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0)); |
1269 | #endif |
1269 | #endif |
1270 | if (ev) |
1270 | if (ev) |
1271 | XPUSH_NEW_OBJ ("OpenCL::Event", ev); |
1271 | XPUSH_NEW_OBJ ("OpenCL::Event", ev); |
1272 | |
1272 | |
1273 | void |
1273 | void |
1274 | enqueue_barrier (OpenCL::Queue self, ...) |
1274 | enqueue_barrier (OpenCL::Queue self, ...) |
1275 | PPCODE: |
1275 | PPCODE: |
1276 | cl_event ev = 0; |
1276 | cl_event ev = 0; |
1277 | EVENT_LIST (1, items - 1); |
1277 | EVENT_LIST (1, items - 1); |
1278 | #if CL_VERSION_1_2 |
1278 | #if PREFER_1_1 |
1279 | NEED_SUCCESS (EnqueueBarrierWithWaitList, (self, event_list_count, event_list_ptr, &ev)); |
|
|
1280 | #else |
|
|
1281 | if (event_list_count) |
1279 | if (event_list_count) |
1282 | croak ("OpenCL::Queue->enqueue_barrier does not support a wait list in OpenCL 1.1 - upgrade to 1.2"); |
1280 | croak ("OpenCL::Queue->enqueue_barrier does not support a wait list in OpenCL 1.1 - upgrade to 1.2"); |
1283 | if (GIMME_V != G_VOID) |
1281 | if (GIMME_V != G_VOID) |
1284 | croak ("OpenCL::Queue->enqueue_barrier does not return an event object in OpenCL 1.1 - upgrade to 1.2"); |
1282 | croak ("OpenCL::Queue->enqueue_barrier does not return an event object in OpenCL 1.1 - upgrade to 1.2"); |
1285 | NEED_SUCCESS (EnqueueBarrier, (self)); |
1283 | NEED_SUCCESS (EnqueueBarrier, (self)); |
|
|
1284 | #else |
|
|
1285 | NEED_SUCCESS (EnqueueBarrierWithWaitList, (self, event_list_count, event_list_ptr, &ev)); |
1286 | #endif |
1286 | #endif |
1287 | if (ev) |
1287 | if (ev) |
1288 | XPUSH_NEW_OBJ ("OpenCL::Event", ev); |
1288 | XPUSH_NEW_OBJ ("OpenCL::Event", ev); |
1289 | |
1289 | |
1290 | void |
1290 | void |