ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenCL/OpenCL.xs
(Generate patch)

Comparing OpenCL/OpenCL.xs (file contents):
Revision 1.54 by root, Wed Apr 25 20:29:03 2012 UTC vs.
Revision 1.55 by root, Wed Apr 25 20:49:13 2012 UTC

996 XPUSH_CLOBJ ("OpenCL::BufferObj", mem); 996 XPUSH_CLOBJ ("OpenCL::BufferObj", mem);
997 997
998#if CL_VERSION_1_2 998#if CL_VERSION_1_2
999 999
1000void 1000void
1001image (OpenCL::Context self, cl_mem_flags flags, cl_channel_order channel_order, cl_channel_type channel_type, cl_mem_object_type type, size_t width, size_t height, size_t depth, size_t array_size = 0, size_t row_pitch = 0, size_t slice_pitch = 0, cl_uint num_mip_level = 0, cl_uint num_samples = 0, SV *data = &PL_sv_undef) 1001image (OpenCL::Context self, cl_mem_flags flags, cl_channel_order channel_order, cl_channel_type channel_type, cl_mem_object_type type, size_t width, size_t height, size_t depth = 0, size_t array_size = 0, size_t row_pitch = 0, size_t slice_pitch = 0, cl_uint num_mip_level = 0, cl_uint num_samples = 0, SV *data = &PL_sv_undef)
1002 PPCODE: 1002 PPCODE:
1003 STRLEN len; 1003 STRLEN len;
1004 char *ptr = SvOK (data) ? SvPVbyte (data, len) : 0; 1004 char *ptr = SvOK (data) ? SvPVbyte (data, len) : 0;
1005 const cl_image_format format = { channel_order, channel_type }; 1005 const cl_image_format format = { channel_order, channel_type };
1006 const cl_image_desc desc = { 1006 const cl_image_desc desc = {
1199DESTROY (OpenCL::Queue self) 1199DESTROY (OpenCL::Queue self)
1200 CODE: 1200 CODE:
1201 clReleaseCommandQueue (self); 1201 clReleaseCommandQueue (self);
1202 1202
1203void 1203void
1204enqueue_read_buffer (OpenCL::Queue self, OpenCL::Buffer mem, cl_bool blocking, size_t offset, size_t len, SV *data, ...) 1204read_buffer (OpenCL::Queue self, OpenCL::Buffer mem, cl_bool blocking, size_t offset, size_t len, SV *data, ...)
1205 ALIAS:
1206 enqueue_read_buffer = 0
1205 PPCODE: 1207 PPCODE:
1206 cl_event ev = 0; 1208 cl_event ev = 0;
1207 EVENT_LIST (6, items - 6); 1209 EVENT_LIST (6, items - 6);
1208 1210
1209 SvUPGRADE (data, SVt_PV); 1211 SvUPGRADE (data, SVt_PV);
1214 1216
1215 if (ev) 1217 if (ev)
1216 XPUSH_CLOBJ ("OpenCL::Event", ev); 1218 XPUSH_CLOBJ ("OpenCL::Event", ev);
1217 1219
1218void 1220void
1219enqueue_write_buffer (OpenCL::Queue self, OpenCL::Buffer mem, cl_bool blocking, size_t offset, SV *data, ...) 1221write_buffer (OpenCL::Queue self, OpenCL::Buffer mem, cl_bool blocking, size_t offset, SV *data, ...)
1222 ALIAS:
1223 enqueue_write_buffer = 0
1220 PPCODE: 1224 PPCODE:
1221 cl_event ev = 0; 1225 cl_event ev = 0;
1222 STRLEN len; 1226 STRLEN len;
1223 char *ptr = SvPVbyte (data, len); 1227 char *ptr = SvPVbyte (data, len);
1224 EVENT_LIST (5, items - 5); 1228 EVENT_LIST (5, items - 5);
1229 XPUSH_CLOBJ ("OpenCL::Event", ev); 1233 XPUSH_CLOBJ ("OpenCL::Event", ev);
1230 1234
1231#if CL_VERSION_1_2 1235#if CL_VERSION_1_2
1232 1236
1233void 1237void
1234enqueue_fill_buffer (OpenCL::Queue self, OpenCL::Buffer mem, SV *data, size_t offset, size_t size, ...) 1238fill_buffer (OpenCL::Queue self, OpenCL::Buffer mem, SV *data, size_t offset, size_t size, ...)
1239 ALIAS:
1240 enqueue_fill_buffer = 0
1235 PPCODE: 1241 PPCODE:
1236 cl_event ev = 0; 1242 cl_event ev = 0;
1237 STRLEN len; 1243 STRLEN len;
1238 char *ptr = SvPVbyte (data, len); 1244 char *ptr = SvPVbyte (data, len);
1239 EVENT_LIST (5, items - 5); 1245 EVENT_LIST (5, items - 5);
1242 1248
1243 if (ev) 1249 if (ev)
1244 XPUSH_CLOBJ ("OpenCL::Event", ev); 1250 XPUSH_CLOBJ ("OpenCL::Event", ev);
1245 1251
1246void 1252void
1247enqueue_fill_image (OpenCL::Queue self, OpenCL::Image img, NV r, NV g, NV b, NV a, size_t x, size_t y, size_t z, size_t width, size_t height, size_t depth, ...) 1253fill_image (OpenCL::Queue self, OpenCL::Image img, NV r, NV g, NV b, NV a, size_t x, size_t y, size_t z, size_t width, size_t height, size_t depth, ...)
1254 ALIAS:
1255 enqueue_fill_image = 0
1248 PPCODE: 1256 PPCODE:
1249 cl_event ev = 0; 1257 cl_event ev = 0;
1250 STRLEN len; 1258 STRLEN len;
1251 const size_t origin [3] = { x, y, z }; 1259 const size_t origin [3] = { x, y, z };
1252 const size_t region [3] = { width, height, depth }; 1260 const size_t region [3] = { width, height, depth };
1261 NEED_SUCCESS (GetImageInfo, (img, CL_IMAGE_FORMAT, sizeof (format), &format, 0)); 1269 NEED_SUCCESS (GetImageInfo, (img, CL_IMAGE_FORMAT, sizeof (format), &format, 0));
1262 assert (sizeof (fus) == CL_FLOAT + 1 - CL_SNORM_INT8); 1270 assert (sizeof (fus) == CL_FLOAT + 1 - CL_SNORM_INT8);
1263 if (format.image_channel_data_type < CL_SNORM_INT8 || CL_FLOAT < format.image_channel_data_type) 1271 if (format.image_channel_data_type < CL_SNORM_INT8 || CL_FLOAT < format.image_channel_data_type)
1264 croak ("enqueue_fill_image: image has unsupported channel type, only opencl 1.2 channel types supported."); 1272 croak ("enqueue_fill_image: image has unsupported channel type, only opencl 1.2 channel types supported.");
1265 1273
1266 NEED_SUCCESS (EnqueueFillImage, (self, img, c_fus [fus [format.image_channel_data_type]], 1274 NEED_SUCCESS (EnqueueFillImage, (self, img, c_fus [fus [format.image_channel_data_type - CL_SNORM_INT8]],
1267 origin, region, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0)); 1275 origin, region, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0));
1268 1276
1269 if (ev) 1277 if (ev)
1270 XPUSH_CLOBJ ("OpenCL::Event", ev); 1278 XPUSH_CLOBJ ("OpenCL::Event", ev);
1271 1279
1272#endif 1280#endif
1273 1281
1274void 1282void
1275enqueue_copy_buffer (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Buffer dst, size_t src_offset, size_t dst_offset, size_t len, ...) 1283copy_buffer (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Buffer dst, size_t src_offset, size_t dst_offset, size_t len, ...)
1284 ALIAS:
1285 enqueue_copy_buffer = 0
1276 PPCODE: 1286 PPCODE:
1277 cl_event ev = 0; 1287 cl_event ev = 0;
1278 EVENT_LIST (6, items - 6); 1288 EVENT_LIST (6, items - 6);
1279 1289
1280 NEED_SUCCESS (EnqueueCopyBuffer, (self, src, dst, src_offset, dst_offset, len, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0)); 1290 NEED_SUCCESS (EnqueueCopyBuffer, (self, src, dst, src_offset, dst_offset, len, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0));
1281 1291
1282 if (ev) 1292 if (ev)
1283 XPUSH_CLOBJ ("OpenCL::Event", ev); 1293 XPUSH_CLOBJ ("OpenCL::Event", ev);
1284 1294
1285void 1295void
1286enqueue_read_buffer_rect (OpenCL::Queue self, OpenCL::Memory buf, cl_bool blocking, size_t buf_x, size_t buf_y, size_t buf_z, size_t host_x, size_t host_y, size_t host_z, size_t width, size_t height, size_t depth, size_t buf_row_pitch, size_t buf_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, SV *data, ...) 1296read_buffer_rect (OpenCL::Queue self, OpenCL::Memory buf, cl_bool blocking, size_t buf_x, size_t buf_y, size_t buf_z, size_t host_x, size_t host_y, size_t host_z, size_t width, size_t height, size_t depth, size_t buf_row_pitch, size_t buf_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, SV *data, ...)
1297 ALIAS:
1298 enqueue_read_buffer_rect = 0
1287 PPCODE: 1299 PPCODE:
1288 cl_event ev = 0; 1300 cl_event ev = 0;
1289 const size_t buf_origin [3] = { buf_x , buf_y , buf_z }; 1301 const size_t buf_origin [3] = { buf_x , buf_y , buf_z };
1290 const size_t host_origin[3] = { host_x, host_y, host_z }; 1302 const size_t host_origin[3] = { host_x, host_y, host_z };
1291 const size_t region[3] = { width, height, depth }; 1303 const size_t region[3] = { width, height, depth };
1313 1325
1314 if (ev) 1326 if (ev)
1315 XPUSH_CLOBJ ("OpenCL::Event", ev); 1327 XPUSH_CLOBJ ("OpenCL::Event", ev);
1316 1328
1317void 1329void
1318enqueue_write_buffer_rect (OpenCL::Queue self, OpenCL::Memory buf, cl_bool blocking, size_t buf_x, size_t buf_y, size_t buf_z, size_t host_x, size_t host_y, size_t host_z, size_t width, size_t height, size_t depth, size_t buf_row_pitch, size_t buf_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, SV *data, ...) 1330write_buffer_rect (OpenCL::Queue self, OpenCL::Memory buf, cl_bool blocking, size_t buf_x, size_t buf_y, size_t buf_z, size_t host_x, size_t host_y, size_t host_z, size_t width, size_t height, size_t depth, size_t buf_row_pitch, size_t buf_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, SV *data, ...)
1331 ALIAS:
1332 enqueue_write_buffer_rect = 0
1319 PPCODE: 1333 PPCODE:
1320 cl_event ev = 0; 1334 cl_event ev = 0;
1321 const size_t buf_origin [3] = { buf_x , buf_y , buf_z }; 1335 const size_t buf_origin [3] = { buf_x , buf_y , buf_z };
1322 const size_t host_origin[3] = { host_x, host_y, host_z }; 1336 const size_t host_origin[3] = { host_x, host_y, host_z };
1323 const size_t region[3] = { width, height, depth }; 1337 const size_t region[3] = { width, height, depth };
1346 1360
1347 if (ev) 1361 if (ev)
1348 XPUSH_CLOBJ ("OpenCL::Event", ev); 1362 XPUSH_CLOBJ ("OpenCL::Event", ev);
1349 1363
1350void 1364void
1351enqueue_copy_buffer_rect (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, ...) 1365copy_buffer_rect (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, ...)
1366 ALIAS:
1367 enqueue_copy_buffer_rect = 0
1352 PPCODE: 1368 PPCODE:
1353 cl_event ev = 0; 1369 cl_event ev = 0;
1354 const size_t src_origin[3] = { src_x, src_y, src_z }; 1370 const size_t src_origin[3] = { src_x, src_y, src_z };
1355 const size_t dst_origin[3] = { dst_x, dst_y, dst_z }; 1371 const size_t dst_origin[3] = { dst_x, dst_y, dst_z };
1356 const size_t region[3] = { width, height, depth }; 1372 const size_t region[3] = { width, height, depth };
1360 1376
1361 if (ev) 1377 if (ev)
1362 XPUSH_CLOBJ ("OpenCL::Event", ev); 1378 XPUSH_CLOBJ ("OpenCL::Event", ev);
1363 1379
1364void 1380void
1365enqueue_read_image (OpenCL::Queue self, OpenCL::Image src, cl_bool blocking, size_t src_x, size_t src_y, size_t src_z, size_t width, size_t height, size_t depth, size_t row_pitch, size_t slice_pitch, SV *data, ...) 1381read_image (OpenCL::Queue self, OpenCL::Image src, cl_bool blocking, size_t src_x, size_t src_y, size_t src_z, size_t width, size_t height, size_t depth, size_t row_pitch, size_t slice_pitch, SV *data, ...)
1382 ALIAS:
1383 enqueue_read_image = 0
1366 PPCODE: 1384 PPCODE:
1367 cl_event ev = 0; 1385 cl_event ev = 0;
1368 const size_t src_origin[3] = { src_x, src_y, src_z }; 1386 const size_t src_origin[3] = { src_x, src_y, src_z };
1369 const size_t region[3] = { width, height, depth }; 1387 const size_t region[3] = { width, height, depth };
1370 EVENT_LIST (12, items - 12); 1388 EVENT_LIST (12, items - 12);
1385 1403
1386 if (ev) 1404 if (ev)
1387 XPUSH_CLOBJ ("OpenCL::Event", ev); 1405 XPUSH_CLOBJ ("OpenCL::Event", ev);
1388 1406
1389void 1407void
1390enqueue_write_image (OpenCL::Queue self, OpenCL::Image dst, cl_bool blocking, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, size_t row_pitch, size_t slice_pitch, SV *data, ...) 1408write_image (OpenCL::Queue self, OpenCL::Image dst, cl_bool blocking, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, size_t row_pitch, size_t slice_pitch, SV *data, ...)
1409 ALIAS:
1410 enqueue_write_image = 0
1391 PPCODE: 1411 PPCODE:
1392 cl_event ev = 0; 1412 cl_event ev = 0;
1393 const size_t dst_origin[3] = { dst_x, dst_y, dst_z }; 1413 const size_t dst_origin[3] = { dst_x, dst_y, dst_z };
1394 const size_t region[3] = { width, height, depth }; 1414 const size_t region[3] = { width, height, depth };
1395 STRLEN len; 1415 STRLEN len;
1411 1431
1412 if (ev) 1432 if (ev)
1413 XPUSH_CLOBJ ("OpenCL::Event", ev); 1433 XPUSH_CLOBJ ("OpenCL::Event", ev);
1414 1434
1415void 1435void
1416enqueue_copy_image (OpenCL::Queue self, OpenCL::Image src, OpenCL::Image dst, size_t src_x, size_t src_y, size_t src_z, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...) 1436copy_image (OpenCL::Queue self, OpenCL::Image src, OpenCL::Image dst, size_t src_x, size_t src_y, size_t src_z, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...)
1437 ALIAS:
1438 enqueue_copy_image = 0
1417 PPCODE: 1439 PPCODE:
1418 cl_event ev = 0; 1440 cl_event ev = 0;
1419 const size_t src_origin[3] = { src_x, src_y, src_z }; 1441 const size_t src_origin[3] = { src_x, src_y, src_z };
1420 const size_t dst_origin[3] = { dst_x, dst_y, dst_z }; 1442 const size_t dst_origin[3] = { dst_x, dst_y, dst_z };
1421 const size_t region[3] = { width, height, depth }; 1443 const size_t region[3] = { width, height, depth };
1425 1447
1426 if (ev) 1448 if (ev)
1427 XPUSH_CLOBJ ("OpenCL::Event", ev); 1449 XPUSH_CLOBJ ("OpenCL::Event", ev);
1428 1450
1429void 1451void
1430enqueue_copy_image_to_buffer (OpenCL::Queue self, OpenCL::Image src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t width, size_t height, size_t depth, size_t dst_offset, ...) 1452copy_image_to_buffer (OpenCL::Queue self, OpenCL::Image src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t width, size_t height, size_t depth, size_t dst_offset, ...)
1453 ALIAS:
1454 enqueue_copy_image_to_buffer = 0
1431 PPCODE: 1455 PPCODE:
1432 cl_event ev = 0; 1456 cl_event ev = 0;
1433 const size_t src_origin[3] = { src_x, src_y, src_z }; 1457 const size_t src_origin[3] = { src_x, src_y, src_z };
1434 const size_t region[3] = { width, height, depth }; 1458 const size_t region[3] = { width, height, depth };
1435 EVENT_LIST (10, items - 10); 1459 EVENT_LIST (10, items - 10);
1438 1462
1439 if (ev) 1463 if (ev)
1440 XPUSH_CLOBJ ("OpenCL::Event", ev); 1464 XPUSH_CLOBJ ("OpenCL::Event", ev);
1441 1465
1442void 1466void
1443enqueue_copy_buffer_to_image (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Image dst, size_t src_offset, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...) 1467copy_buffer_to_image (OpenCL::Queue self, OpenCL::Buffer src, OpenCL::Image dst, size_t src_offset, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...)
1468 ALIAS:
1469 enqueue_copy_buffer_to_image = 0
1444 PPCODE: 1470 PPCODE:
1445 cl_event ev = 0; 1471 cl_event ev = 0;
1446 const size_t dst_origin[3] = { dst_x, dst_y, dst_z }; 1472 const size_t dst_origin[3] = { dst_x, dst_y, dst_z };
1447 const size_t region[3] = { width, height, depth }; 1473 const size_t region[3] = { width, height, depth };
1448 EVENT_LIST (10, items - 10); 1474 EVENT_LIST (10, items - 10);
1451 1477
1452 if (ev) 1478 if (ev)
1453 XPUSH_CLOBJ ("OpenCL::Event", ev); 1479 XPUSH_CLOBJ ("OpenCL::Event", ev);
1454 1480
1455void 1481void
1456enqueue_task (OpenCL::Queue self, OpenCL::Kernel kernel, ...) 1482task (OpenCL::Queue self, OpenCL::Kernel kernel, ...)
1483 ALIAS:
1484 enqueue_task = 0
1457 PPCODE: 1485 PPCODE:
1458 cl_event ev = 0; 1486 cl_event ev = 0;
1459 EVENT_LIST (2, items - 2); 1487 EVENT_LIST (2, items - 2);
1460 1488
1461 NEED_SUCCESS (EnqueueTask, (self, kernel, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0)); 1489 NEED_SUCCESS (EnqueueTask, (self, kernel, event_list_count, event_list_ptr, GIMME_V != G_VOID ? &ev : 0));
1462 1490
1463 if (ev) 1491 if (ev)
1464 XPUSH_CLOBJ ("OpenCL::Event", ev); 1492 XPUSH_CLOBJ ("OpenCL::Event", ev);
1465 1493
1466void 1494void
1467enqueue_nd_range_kernel (OpenCL::Queue self, OpenCL::Kernel kernel, SV *global_work_offset, SV *global_work_size, SV *local_work_size = &PL_sv_undef, ...) 1495nd_range_kernel (OpenCL::Queue self, OpenCL::Kernel kernel, SV *global_work_offset, SV *global_work_size, SV *local_work_size = &PL_sv_undef, ...)
1496 ALIAS:
1497 enqueue_nd_range_kernel = 0
1468 PPCODE: 1498 PPCODE:
1469 cl_event ev = 0; 1499 cl_event ev = 0;
1470 size_t *gwo = 0, *gws, *lws = 0; 1500 size_t *gwo = 0, *gws, *lws = 0;
1471 int gws_len; 1501 int gws_len;
1472 size_t *lists; 1502 size_t *lists;
1516 XPUSH_CLOBJ ("OpenCL::Event", ev); 1546 XPUSH_CLOBJ ("OpenCL::Event", ev);
1517 1547
1518#if cl_apple_gl_sharing || cl_khr_gl_sharing 1548#if cl_apple_gl_sharing || cl_khr_gl_sharing
1519 1549
1520void 1550void
1521enqueue_acquire_gl_objects (OpenCL::Queue self, SV *objects, ...) 1551acquire_gl_objects (OpenCL::Queue self, SV *objects, ...)
1552 ALIAS:
1553 enqueue_acquire_gl_objects = 0
1522 ALIAS: 1554 ALIAS:
1523 enqueue_release_gl_objects = 1 1555 enqueue_release_gl_objects = 1
1524 PPCODE: 1556 PPCODE:
1525 if (!SvROK (objects) || SvTYPE (SvRV (objects)) != SVt_PVAV) 1557 if (!SvROK (objects) || SvTYPE (SvRV (objects)) != SVt_PVAV)
1526 croak ("OpenCL::Queue::enqueue_acquire/release_gl_objects argument 'objects' must be an arrayref with memory objects, in call"); 1558 croak ("OpenCL::Queue::enqueue_acquire/release_gl_objects argument 'objects' must be an arrayref with memory objects, in call");
1544 XPUSH_CLOBJ ("OpenCL::Event", ev); 1576 XPUSH_CLOBJ ("OpenCL::Event", ev);
1545 1577
1546#endif 1578#endif
1547 1579
1548void 1580void
1549enqueue_wait_for_events (OpenCL::Queue self, ...) 1581wait_for_events (OpenCL::Queue self, ...)
1582 ALIAS:
1583 enqueue_wait_for_events = 0
1550 CODE: 1584 CODE:
1551 EVENT_LIST (1, items - 1); 1585 EVENT_LIST (1, items - 1);
1552#if PREFER_1_1 1586#if PREFER_1_1
1553 NEED_SUCCESS (EnqueueWaitForEvents, (self, event_list_count, event_list_ptr)); 1587 NEED_SUCCESS (EnqueueWaitForEvents, (self, event_list_count, event_list_ptr));
1554#else 1588#else
1555 NEED_SUCCESS (EnqueueBarrierWithWaitList, (self, event_list_count, event_list_ptr, 0)); 1589 NEED_SUCCESS (EnqueueBarrierWithWaitList, (self, event_list_count, event_list_ptr, 0));
1556#endif 1590#endif
1557 1591
1558void 1592void
1559enqueue_marker (OpenCL::Queue self, ...) 1593marker (OpenCL::Queue self, ...)
1594 ALIAS:
1595 enqueue_marker = 0
1560 PPCODE: 1596 PPCODE:
1561 cl_event ev = 0; 1597 cl_event ev = 0;
1562 EVENT_LIST (1, items - 1); 1598 EVENT_LIST (1, items - 1);
1563#if PREFER_1_1 1599#if PREFER_1_1
1564 if (!event_list_count) 1600 if (!event_list_count)
1577#endif 1613#endif
1578 if (ev) 1614 if (ev)
1579 XPUSH_CLOBJ ("OpenCL::Event", ev); 1615 XPUSH_CLOBJ ("OpenCL::Event", ev);
1580 1616
1581void 1617void
1582enqueue_barrier (OpenCL::Queue self, ...) 1618barrier (OpenCL::Queue self, ...)
1619 ALIAS:
1620 enqueue_barrier = 0
1583 PPCODE: 1621 PPCODE:
1584 cl_event ev = 0; 1622 cl_event ev = 0;
1585 EVENT_LIST (1, items - 1); 1623 EVENT_LIST (1, items - 1);
1586#if PREFER_1_1 1624#if PREFER_1_1
1587 if (!event_list_count && GIMME_V == G_VOID) 1625 if (!event_list_count && GIMME_V == G_VOID)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines