[Beignet] [PATCH] Allow creating out-of-order queues with clCreateCommandQueue

Yang, Rong R rong.r.yang at intel.com
Mon Aug 20 07:37:16 UTC 2018


Thanks for your patches, they looks good to me, have pushed.

> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Rebecca N. Palmer
> Sent: Sunday, July 22, 2018 3:26 AM
> To: beignet at lists.freedesktop.org
> Subject: [Beignet] [PATCH] Allow creating out-of-order queues with
> clCreateCommandQueue
> 
> clCreateCommandQueueWithProperties can already create them, but that's a
> 2.0 function.
> 
> Signed-off-by: Rebecca N. Palmer <rebecca_palmer at zoho.com>
> ---
> yes, this currently gives you out-of-order if you ask for in-order, but says "can't
> do that" if you ask for out-of-order...
> 
> --- a/src/cl_api_command_queue.c
> +++ b/src/cl_api_command_queue.c
> @@ -27,35 +27,11 @@ clCreateCommandQueue(cl_context context,
>                       cl_command_queue_properties properties,
>                       cl_int *errcode_ret)  {
> -  cl_command_queue queue = NULL;
> -  cl_int err = CL_SUCCESS;
> -
> -  do {
> -    if (!CL_OBJECT_IS_CONTEXT(context)) {
> -      err = CL_INVALID_CONTEXT;
> -      break;
> -    }
> -
> -    err = cl_devices_list_include_check(context->device_num, context->devices,
> 1, &device);
> -    if (err)
> -      break;
> -
> -    if (properties & ~(CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE |
> CL_QUEUE_PROFILING_ENABLE)) {
> -      err = CL_INVALID_VALUE;
> -      break;
> -    }
> -
> -    if (properties & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) { /*not
> supported now.*/
> -      err = CL_INVALID_QUEUE_PROPERTIES;
> -      break;
> -    }
> -
> -    queue = cl_create_command_queue(context, device, properties, 0, &err);
> -  } while (0);
> -
> -  if (errcode_ret)
> -    *errcode_ret = err;
> -  return queue;
> +  cl_queue_properties props[3];
> +  props[0] = CL_QUEUE_PROPERTIES;
> +  props[1] = properties;
> +  props[2] = 0;
> +  return clCreateCommandQueueWithProperties(context, device, props,
> + errcode_ret);
>  }
> 
>  /* 2.0 new API for create command queue. */
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list