Example #1
0
     operator cl_event() const
     {
         cl_int err = CL_SUCCESS;
         if(e_.size() == 1)
         {
             return e_[0];
         }
         if(!e_.empty())
         {
             cl_context ctx = get_info<command_queue::context_info_type>(command_queue());
             cl_event e = clCreateUserEvent(ctx, &err);
             OCLM_THROW_IF_EXCEPTION(err, "clCreateUserEvents");
 #ifdef CL_VERSION_1_2
             err = clEnqueueMarkerWithWaitList(command_queue(),
                 static_cast<cl_uint>(e_.size()), &e_[0], &e);
             OCLM_THROW_IF_EXCEPTION(err, "clEnqueueMarkerWithWaitList");
 #else
             get();
             err = clSetUserEventStatus(e, CL_COMPLETE);
 #endif
             return e;
         }
         else
             return cl_event();
     }
Example #2
0
static VbResult normal_queue(Client *c, const NormalCmdInfo *info)
{
#ifdef FEATURE_QUEUE
    command_queue(c, &((Arg){COMMAND_QUEUE_POP}));
#endif
    return RESULT_COMPLETE;
}
Example #3
0
command_queue default_queue()
{
  static command_queue queue;
  if (!queue.get())
  {
    context c = default_context();
    device d = default_device();
    queue = command_queue(c, d);
  }
  return queue;
}
inline command_queue
default_queue_for_copy(InputIterator first,
                       OutputIterator result,
                       typename boost::enable_if<
                           typename boost::mpl::and_<
                               is_buffer_iterator<InputIterator>,
                               boost::mpl::not_<is_buffer_iterator<OutputIterator> >
                           >
                       >::type* = 0)
{
    (void) result;

    const buffer &buffer = first.get_buffer();
    const context &context = buffer.get_context();
    const device &device = context.get_device();

    return command_queue(context, device);
}
Example #5
0
/// Create command queue on the same context and device as the given one.
inline command_queue duplicate_queue(const command_queue &q) {
    return command_queue(q.context(), q.device(), q.flags());
}