<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Jul 30, 2017, 10:31 AM Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu">jan.vesely@rutgers.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, 2017-07-20 at 22:59 -0500, Aaron Watry wrote:<br>
> Hey Jan,<br>
><br>
> I've skimmed my way through this, and it's looking ok so far.  I'll<br>
> try to do a deeper dive over the changes needed for the 2.0 spec in<br>
> the near future (I've been stuck in 1.1/1.2-land for too long).<br>
><br>
> For now, you can have an:<br>
> Acked-by: Aaron Watry <<a href="mailto:awatry@gmail.com" target="_blank">awatry@gmail.com</a>><br>
<br>
thanks for taking a look.<br>
<br>
><br>
> I'll see if I can find some time tomorrow, or possibly this weekend to<br>
> do a more detailed review.<br>
<br>
I plan to push this together with the sampler test fix early next week.<br>
Let me know if you want me to postpone, the patch is not on critical<br>
path.<br></blockquote></div><div><br></div><div>Nah, don't feel like you need to postpone this.  I'm not familiar enough with the 2.0 spec yet, so any additional review I gave for this would still be based on a limited understanding.</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
regards,<br>
Jan<br>
<br>
><br>
> --Aaron<br>
><br>
> On Wed, Jul 19, 2017 at 5:51 PM, Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu" target="_blank">jan.vesely@rutgers.edu</a>> wrote:<br>
> > v2: Fix warning in cl-api-get-mem-object-info<br>
> > v3: Filter permissible queue properties combinations<br>
> >     Use and test clCreateCommandQueueWithProperties on OCL 2.0<br>
> ><br>
> > Signed-off-by: Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu" target="_blank">jan.vesely@rutgers.edu</a>><br>
> > ---<br>
> ><br>
> > I see few regressions with this patch on beignet(SKL) in generated clamp/mad_sat long16 tests. Forcing the clc version to 1.2 in those test fixes the regression so I believe it's beignet bug.<br>
> > No regressions on clover Turks and beignet(IVB).<br>
> ><br>
> > Jan<br>
> ><br>
> >  tests/cl/api/create-command-queue.c | 37 +++++++++++++--<br>
> >  tests/cl/api/get-mem-object-info.c  |  8 ++++<br>
> >  tests/util/piglit-util-cl-enum.c    | 95 +++++++++++++++++++++++++++----------<br>
> >  tests/util/piglit-util-cl-enum.h    |  4 ++<br>
> >  tests/util/piglit-util-cl.h         |  4 +-<br>
> >  5 files changed, 119 insertions(+), 29 deletions(-)<br>
> ><br>
> > diff --git a/tests/cl/api/create-command-queue.c b/tests/cl/api/create-command-queue.c<br>
> > index 0ffd1377c..3ada5af90 100644<br>
> > --- a/tests/cl/api/create-command-queue.c<br>
> > +++ b/tests/cl/api/create-command-queue.c<br>
> > @@ -52,7 +52,7 @@ get_mixed_command_queue_properties(int mask,<br>
> >                                     const cl_command_queue_properties properties[]) {<br>
> >         int i = 0;<br>
> >         cl_command_queue_properties mixed_properties = 0;<br>
> > -<br>
> > +<br>
> >         while(mask > 0) {<br>
> >                 if(mask%2 == 1) {<br>
> >                         mixed_properties |= properties[i];<br>
> > @@ -64,6 +64,21 @@ get_mixed_command_queue_properties(int mask,<br>
> >         return mixed_properties;<br>
> >  }<br>
> ><br>
> > +static bool<br>
> > +properties_forbidden(const cl_command_queue_properties properties,<br>
> > +                     const struct piglit_cl_api_test_env* env)<br>
> > +{<br>
> > +       int num_command_queue_properties_mutexes =<br>
> > +               PIGLIT_CL_ENUM_NUM(cl_command_queue_properties_mutexes, env->version);<br>
> > +       const cl_command_queue_properties* command_queue_properties_mutexes =<br>
> > +               PIGLIT_CL_ENUM_ARRAY(cl_command_queue_properties_mutexes);<br>
> > +       int i = 0;<br>
> > +       for (; i < num_command_queue_properties_mutexes; ++i)<br>
> > +               if (properties == command_queue_properties_mutexes[i])<br>
> > +                       return true;<br>
> > +       return false;<br>
> > +}<br>
> > +<br>
> >  enum piglit_result<br>
> >  piglit_cl_test(const int argc,<br>
> >                 const char** argv,<br>
> > @@ -79,7 +94,8 @@ piglit_cl_test(const int argc,<br>
> >         cl_command_queue command_queue;<br>
> >         cl_uint num_devices;<br>
> >         cl_device_id* devices;<br>
> > -       cl_command_queue_properties mixed_command_queue_properties;<br>
> > +       cl_command_queue_properties mixed_command_queue_properties[4] =<br>
> > +               {CL_QUEUE_PROPERTIES, 0, 0, 0};<br>
> ><br>
> >         cl_context_properties context_properties[] = {<br>
> >                 CL_CONTEXT_PLATFORM, (cl_context_properties)env->platform_id,<br>
> > @@ -116,12 +132,25 @@ piglit_cl_test(const int argc,<br>
> >          * There are 2^(num_command_queue_properties)-1 possible options.<br>
> >          */<br>
> >         for(mask = 0; mask < (1 << num_command_queue_properties); mask++) {<br>
> > -               mixed_command_queue_properties =<br>
> > +               mixed_command_queue_properties[1] =<br>
> >                         get_mixed_command_queue_properties(mask, command_queue_properties);<br>
> > -               command_queue = clCreateCommandQueue(cl_ctx,<br>
> > +               if (properties_forbidden(mixed_command_queue_properties[1], env))<br>
> > +                       continue;<br>
> > +#if defined CL_VERSION_2_0<br>
> > +               if (env->version >= 20) {<br>
> > +                       command_queue = clCreateCommandQueueWithProperties(<br>
> > +                                                    cl_ctx,<br>
> >                                                      env->device_id,<br>
> >                                                      mixed_command_queue_properties,<br>
> >                                                      &errNo);<br>
> > +               } else<br>
> > +#endif //CL_VERSION_2_0<br>
> > +               {<br>
> > +                       command_queue = clCreateCommandQueue(cl_ctx,<br>
> > +                                                    env->device_id,<br>
> > +                                                    mixed_command_queue_properties[1],<br>
> > +                                                    &errNo);<br>
> > +               }<br>
> >                 if(errNo != CL_SUCCESS && errNo != CL_INVALID_QUEUE_PROPERTIES) {<br>
> >                         piglit_cl_check_error(errNo, CL_SUCCESS);<br>
> >                         fprintf(stderr,<br>
> > diff --git a/tests/cl/api/get-mem-object-info.c b/tests/cl/api/get-mem-object-info.c<br>
> > index 2db3b6ae6..5dcb4752d 100644<br>
> > --- a/tests/cl/api/get-mem-object-info.c<br>
> > +++ b/tests/cl/api/get-mem-object-info.c<br>
> > @@ -170,6 +170,14 @@ test(int n,<br>
> >                         }<br>
> >                         break;<br>
> >  #endif<br>
> > +#if defined(CL_VERSION_2_0)<br>
> > +               case CL_MEM_USES_SVM_POINTER:<br>
> > +                       if (env->version >= 20) {<br>
> > +                               CHECK_SIZE(cl_bool)<br>
> > +                               CHECK_VALUE(cl_bool, CL_FALSE)<br>
> > +                       }<br>
> > +                       break;<br>
> > +#endif<br>
> >                 default:<br>
> >                         fprintf(stderr, "Warn: untested parameter %s\n",<br>
> >                                 piglit_cl_get_enum_name(param_name));<br>
> > diff --git a/tests/util/piglit-util-cl-enum.c b/tests/util/piglit-util-cl-enum.c<br>
> > index 95da9d3cb..10ec01f0e 100644<br>
> > --- a/tests/util/piglit-util-cl-enum.c<br>
> > +++ b/tests/util/piglit-util-cl-enum.c<br>
> > @@ -182,7 +182,11 @@ piglit_cl_get_enum_name(cl_uint param)<br>
> >         CASE(CL_DEVICE_AVAILABLE)                         // 0x1027<br>
> >         CASE(CL_DEVICE_COMPILER_AVAILABLE)                // 0x1028<br>
> >         CASE(CL_DEVICE_EXECUTION_CAPABILITIES)            // 0x1029<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CASE(CL_DEVICE_QUEUE_ON_HOST_PROPERTIES)          // 0x102A<br>
> > +#else //CL_VERSION_2_0<br>
> >         CASE(CL_DEVICE_QUEUE_PROPERTIES)                  // 0x102A<br>
> > +#endif //CL_VERSION_2_0<br>
> >         CASE(CL_DEVICE_NAME)                              // 0x102B<br>
> >         CASE(CL_DEVICE_VENDOR)                            // 0x102C<br>
> >         CASE(CL_DRIVER_VERSION)                           // 0x102D<br>
> > @@ -256,6 +260,8 @@ piglit_cl_get_enum_name(cl_uint param)<br>
> >         /*<br>
> >         CASE(CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE)      // (1 << 0)<br>
> >         CASE(CL_QUEUE_PROFILING_ENABLE)                   // (1 << 1)<br>
> > +       CASE(CL_QUEUE_ON_DEVICE)                          // (1 << 2)<br>
> > +       CASE(CL_QUEUE_ON_DEVICE_DEFAULT)                  // (1 << 3)<br>
> >         */<br>
> ><br>
> >  /* cl_context_info  */<br>
> > @@ -295,6 +301,9 @@ piglit_cl_get_enum_name(cl_uint param)<br>
> >         CASE(CL_QUEUE_DEVICE)                             // 0x1091<br>
> >         CASE(CL_QUEUE_REFERENCE_COUNT)                    // 0x1092<br>
> >         CASE(CL_QUEUE_PROPERTIES)                         // 0x1093<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CASE(CL_QUEUE_SIZE)                               // 0x1094<br>
> > +#endif //CL_VERSION_2_0<br>
> ><br>
> >  /* cl_mem_flags - bitfield */<br>
> >         /*<br>
> > @@ -373,6 +382,9 @@ piglit_cl_get_enum_name(cl_uint param)<br>
> >         CASE(CL_MEM_ASSOCIATED_MEMOBJECT)                 // 0x1107<br>
> >         CASE(CL_MEM_OFFSET)                               // 0x1108<br>
> >  #endif //CL_VERSION_1_1<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CASE(CL_MEM_USES_SVM_POINTER)                     // 0x1109<br>
> > +#endif //CL_VERSION_2_0<br>
> ><br>
> >  /* cl_image_info */<br>
> >         CASE(CL_IMAGE_FORMAT)                             // 0x1110<br>
> > @@ -436,6 +448,9 @@ piglit_cl_get_enum_name(cl_uint param)<br>
> >  #ifdef CL_VERSION_1_2<br>
> >         CASE(CL_PROGRAM_BINARY_TYPE)                      // 0x1184<br>
> >  #endif //CL_VERSION_1_2<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CASE(CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE) // 0x1185<br>
> > +#endif //CL_VERSION_2_0<br>
> ><br>
> >  /* cl_program_binary_type */<br>
> >         /*<br>
> > @@ -655,14 +670,15 @@ const char* piglit_cl_get_error_name(cl_int error) {<br>
> >  }<br>
> ><br>
> ><br>
> > -#define PIGLIT_CL_DEFINE_ENUM(type, name, count10, count11, count12)  \<br>
> > +#define PIGLIT_CL_DEFINE_ENUM(type, name, count10, count11, count12, count20)  \<br>
> >          const unsigned int piglit_##name##_num_1_0 = count10;         \<br>
> >          const unsigned int piglit_##name##_num_1_1 = count11;         \<br>
> >          const unsigned int piglit_##name##_num_1_2 = count12;         \<br>
> > +        const unsigned int piglit_##name##_num_2_0 = count20;         \<br>
> >          const type _piglit_##name[]<br>
> ><br>
> > -#define PIGLIT_CL_DEFINE_ENUM_2(name, count10, count11, count12)      \<br>
> > -        PIGLIT_CL_DEFINE_ENUM(name, name, count10, count11, count12)<br>
> > +#define PIGLIT_CL_DEFINE_ENUM_2(name, count10, count11, count12, count20)      \<br>
> > +        PIGLIT_CL_DEFINE_ENUM(name, name, count10, count11, count12, count20)<br>
> ><br>
> >  #define PIGLIT_CL_DEFINE_ENUM_PTR(type, name)                         \<br>
> >          const type* piglit_##name = _piglit_##name;<br>
> > @@ -671,7 +687,7 @@ const char* piglit_cl_get_error_name(cl_int error) {<br>
> >          PIGLIT_CL_DEFINE_ENUM_PTR(name, name)<br>
> ><br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_mem_flags, 6, 6, 9) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_mem_flags, 6, 6, 9, 9) = {<br>
> >         CL_MEM_READ_WRITE,<br>
> >         CL_MEM_READ_ONLY,<br>
> >         CL_MEM_WRITE_ONLY,<br>
> > @@ -686,7 +702,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_mem_flags, 6, 6, 9) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_mem_flags);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_device_type, 5, 5, 6) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_device_type, 5, 5, 6, 6) = {<br>
> >         CL_DEVICE_TYPE_CPU,<br>
> >         CL_DEVICE_TYPE_GPU,<br>
> >         CL_DEVICE_TYPE_ACCELERATOR,<br>
> > @@ -698,7 +714,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_device_type, 5, 5, 6) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_device_type);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_program_info, 7, 7, 9) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_program_info, 7, 7, 9, 9) = {<br>
> >         CL_PROGRAM_REFERENCE_COUNT,<br>
> >         CL_PROGRAM_CONTEXT,<br>
> >         CL_PROGRAM_NUM_DEVICES,<br>
> > @@ -713,17 +729,20 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_program_info, 7, 7, 9) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_program_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_program_build_info, 3, 3, 4) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_program_build_info, 3, 3, 4, 5) = {<br>
> >         CL_PROGRAM_BUILD_STATUS,<br>
> >         CL_PROGRAM_BUILD_OPTIONS,<br>
> >         CL_PROGRAM_BUILD_LOG,<br>
> >  #ifdef CL_VERSION_1_2<br>
> >         CL_PROGRAM_BINARY_TYPE,<br>
> >  #endif //CL_VERSION_1_2<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE,<br>
> > +#endif //CL_VERSION_2_0<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_program_build_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_mem_info, 7, 9, 9) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_mem_info, 7, 9, 9, 10) = {<br>
> >         CL_MEM_TYPE,<br>
> >         CL_MEM_FLAGS,<br>
> >         CL_MEM_SIZE,<br>
> > @@ -735,10 +754,13 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_mem_info, 7, 9, 9) = {<br>
> >         CL_MEM_ASSOCIATED_MEMOBJECT,<br>
> >         CL_MEM_OFFSET,<br>
> >  #endif //CL_VERSION_1_1<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CL_MEM_USES_SVM_POINTER,<br>
> > +#endif //CL_VERSION_2_0<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_mem_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_info, 5, 5, 6) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_info, 5, 5, 6, 6) = {<br>
> >         CL_KERNEL_FUNCTION_NAME,<br>
> >         CL_KERNEL_NUM_ARGS,<br>
> >         CL_KERNEL_REFERENCE_COUNT,<br>
> > @@ -751,7 +773,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_info, 5, 5, 6) = {<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_kernel_info);<br>
> ><br>
> >  #ifdef CL_VERSION_1_2<br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_arg_info, 0, 0, 5) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_arg_info, 0, 0, 5, 5) = {<br>
> >         CL_KERNEL_ARG_ADDRESS_QUALIFIER,<br>
> >         CL_KERNEL_ARG_ACCESS_QUALIFIER,<br>
> >         CL_KERNEL_ARG_TYPE_NAME,<br>
> > @@ -761,7 +783,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_arg_info, 0, 0, 5) = {<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_kernel_arg_info);<br>
> >  #endif //CL_VERSION_1_2<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_work_group_info, 3, 5, 6) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_work_group_info, 3, 5, 6, 6) = {<br>
> >         CL_KERNEL_WORK_GROUP_SIZE,<br>
> >         CL_KERNEL_COMPILE_WORK_GROUP_SIZE,<br>
> >         CL_KERNEL_LOCAL_MEM_SIZE,<br>
> > @@ -775,7 +797,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_kernel_work_group_info, 3, 5, 6) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_kernel_work_group_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_event_info, 4, 5, 5) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_event_info, 4, 5, 5, 5) = {<br>
> >         CL_EVENT_COMMAND_QUEUE,<br>
> >         CL_EVENT_COMMAND_TYPE,<br>
> >         CL_EVENT_REFERENCE_COUNT,<br>
> > @@ -786,7 +808,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_event_info, 4, 5, 5) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_event_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_image_info, 7, 7, 11) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_image_info, 7, 7, 11, 11) = {<br>
> >         CL_IMAGE_FORMAT,<br>
> >         CL_IMAGE_ELEMENT_SIZE,<br>
> >         CL_IMAGE_ROW_PITCH,<br>
> > @@ -796,22 +818,25 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_image_info, 7, 7, 11) = {<br>
> >         CL_IMAGE_DEPTH,<br>
> >  #ifdef CL_VERSION_1_2<br>
> >         CL_IMAGE_ARRAY_SIZE,<br>
> > -       CL_IMAGE_BUFFER,<br>
> > -       CL_IMAGE_NUM_MIP_LEVELS, // 10<br>
> >         CL_IMAGE_NUM_SAMPLES,<br>
> > +       CL_IMAGE_NUM_MIP_LEVELS, // 10<br>
> > +       CL_IMAGE_BUFFER, // Deprecated in 2.0<br>
> >  #endif //CL_VERSION_1_2<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_image_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_command_queue_info, 4, 4, 4) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_command_queue_info, 4, 4, 4, 5) = {<br>
> >         CL_QUEUE_CONTEXT,<br>
> >         CL_QUEUE_DEVICE,<br>
> >         CL_QUEUE_REFERENCE_COUNT,<br>
> >         CL_QUEUE_PROPERTIES,<br>
> > +#ifdef CL_VERSION_2_0<br>
> > +       CL_QUEUE_SIZE,<br>
> > +#endif //CL_VERSION_2_0<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_command_queue_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_context_info, 3, 4, 4) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_context_info, 3, 4, 4, 4) = {<br>
> >         CL_CONTEXT_REFERENCE_COUNT,<br>
> >         CL_CONTEXT_DEVICES,<br>
> >         CL_CONTEXT_PROPERTIES,<br>
> > @@ -821,7 +846,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_context_info, 3, 4, 4) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_context_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_platform_info, 5, 5, 5) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_platform_info, 5, 5, 5, 5) = {<br>
> >         CL_PLATFORM_PROFILE,<br>
> >         CL_PLATFORM_VERSION,<br>
> >         CL_PLATFORM_NAME,<br>
> > @@ -830,7 +855,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_platform_info, 5, 5, 5) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_platform_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_device_info, 50, 60, 73) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_device_info, 50, 60, 73, 74) = {<br>
> >         CL_DEVICE_TYPE,<br>
> >         CL_DEVICE_VENDOR_ID,<br>
> >         CL_DEVICE_MAX_COMPUTE_UNITS,<br>
> > @@ -873,7 +898,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_device_info, 50, 60, 73) = {<br>
> >         CL_DEVICE_AVAILABLE, // 40<br>
> >         CL_DEVICE_COMPILER_AVAILABLE,<br>
> >         CL_DEVICE_EXECUTION_CAPABILITIES,<br>
> > -       CL_DEVICE_QUEUE_PROPERTIES,<br>
> > +       CL_DEVICE_QUEUE_PROPERTIES, // Deprecated in 2.0<br>
> >         CL_DEVICE_NAME,<br>
> >         CL_DEVICE_VENDOR, // 45<br>
> >         CL_DRIVER_VERSION,<br>
> > @@ -883,7 +908,7 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_device_info, 50, 60, 73) = {<br>
> >         CL_DEVICE_PLATFORM, // 50<br>
> >  #if defined(CL_VERSION_1_1)<br>
> >         CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF,<br>
> > -       CL_DEVICE_HOST_UNIFIED_MEMORY,<br>
> > +       CL_DEVICE_HOST_UNIFIED_MEMORY, // Deprecated in 2.0<br>
> >         CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR,<br>
> >         CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT,<br>
> >         CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, // 55<br>
> > @@ -908,17 +933,24 @@ PIGLIT_CL_DEFINE_ENUM_2(cl_device_info, 50, 60, 73) = {<br>
> >         CL_DEVICE_PREFERRED_INTEROP_USER_SYNC,<br>
> >         CL_DEVICE_PRINTF_BUFFER_SIZE, // 73<br>
> >  #endif //CL_VERSION_1_2<br>
> > +#if defined(CL_VERSION_2_0)<br>
> > +       CL_DEVICE_QUEUE_ON_HOST_PROPERTIES,<br>
> > +#endif //CL_VERSION_2_0<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_device_info);<br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM_2(cl_command_queue_properties, 2, 2, 2) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM_2(cl_command_queue_properties, 2, 2, 2, 4) = {<br>
> >         CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE,<br>
> > -       CL_QUEUE_PROFILING_ENABLE<br>
> > +       CL_QUEUE_PROFILING_ENABLE,<br>
> > +#if defined(CL_VERSION_2_0)<br>
> > +       CL_QUEUE_ON_DEVICE,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT,<br>
> > +#endif //CL_VERSION_2_0<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR_2(cl_command_queue_properties);<br>
> ><br>
> ><br>
> > -PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8) = {<br>
> > +PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8, 8) = {<br>
> >         CL_MEM_READ_WRITE | CL_MEM_READ_ONLY,<br>
> >         CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY,<br>
> >         CL_MEM_READ_ONLY | CL_MEM_WRITE_ONLY,<br>
> > @@ -932,6 +964,21 @@ PIGLIT_CL_DEFINE_ENUM(cl_mem_flags, cl_mem_flags_mutexes, 5, 5, 8) = {<br>
> >  };<br>
> >  PIGLIT_CL_DEFINE_ENUM_PTR(cl_mem_flags, cl_mem_flags_mutexes);<br>
> ><br>
> > +PIGLIT_CL_DEFINE_ENUM(cl_command_queue_properties, cl_command_queue_properties_mutexes, 0, 0, 0, 8) = {<br>
> > +#if defined(CL_VERSION_2_0)<br>
> > +       // CL_QUEUE_ON_DEVICE requires CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE<br>
> > +       CL_QUEUE_ON_DEVICE,<br>
> > +       CL_QUEUE_ON_DEVICE | CL_QUEUE_PROFILING_ENABLE,<br>
> > +       // CL_QUEUE_ON_DEVICE_DEFAULT requires CL_QUEUE_ON_DEVICE<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT | CL_QUEUE_ON_DEVICE,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT | CL_QUEUE_PROFILING_ENABLE,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT | CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT | CL_QUEUE_PROFILING_ENABLE | CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE,<br>
> > +       CL_QUEUE_ON_DEVICE_DEFAULT | CL_QUEUE_ON_DEVICE | CL_QUEUE_PROFILING_ENABLE,<br>
> > +#endif //CL_VERSION_2_0<br>
> > +};<br>
> > +PIGLIT_CL_DEFINE_ENUM_PTR(cl_command_queue_properties, cl_command_queue_properties_mutexes);<br>
> ><br>
> ><br>
> >  #undef PIGLIT_CL_DEFINE_ENUM<br>
> > diff --git a/tests/util/piglit-util-cl-enum.h b/tests/util/piglit-util-cl-enum.h<br>
> > index 179153158..20e20f871 100644<br>
> > --- a/tests/util/piglit-util-cl-enum.h<br>
> > +++ b/tests/util/piglit-util-cl-enum.h<br>
> > @@ -64,6 +64,8 @@ const char* piglit_cl_get_error_name(cl_int error);<br>
> >              piglit_##name##_num_1_1 :       \<br>
> >          version == 12 ?                     \<br>
> >              piglit_##name##_num_1_2 :       \<br>
> > +        version == 20 ?                     \<br>
> > +            piglit_##name##_num_2_0 :       \<br>
> >              0<br>
> ><br>
> >  #define PIGLIT_CL_ENUM_ARRAY(name)          \<br>
> > @@ -74,6 +76,7 @@ const char* piglit_cl_get_error_name(cl_int error);<br>
> >          extern const unsigned int piglit_##name##_num_1_0;    \<br>
> >          extern const unsigned int piglit_##name##_num_1_1;    \<br>
> >          extern const unsigned int piglit_##name##_num_1_2;    \<br>
> > +        extern const unsigned int piglit_##name##_num_2_0;    \<br>
> >          extern const type* piglit_##name;<br>
> ><br>
> >  #define PIGLIT_CL_DEFINE_ENUM_PROTOTYPE_2(name)        \<br>
> > @@ -99,6 +102,7 @@ PIGLIT_CL_DEFINE_ENUM_PROTOTYPE_2(cl_device_info);<br>
> >  PIGLIT_CL_DEFINE_ENUM_PROTOTYPE_2(cl_command_queue_properties);<br>
> ><br>
> >  PIGLIT_CL_DEFINE_ENUM_PROTOTYPE(cl_mem_flags, cl_mem_flags_mutexes);<br>
> > +PIGLIT_CL_DEFINE_ENUM_PROTOTYPE(cl_command_queue_properties, cl_command_queue_properties_mutexes);<br>
> ><br>
> >  #undef PIGLIT_CL_DEFINE_ENUM_PROTOTYPE<br>
> >  #undef PIGLIT_CL_DEFINE_ENUM_PROTOTYPE_2<br>
> > diff --git a/tests/util/piglit-util-cl.h b/tests/util/piglit-util-cl.h<br>
> > index bd9f5a895..ebe1a1e36 100644<br>
> > --- a/tests/util/piglit-util-cl.h<br>
> > +++ b/tests/util/piglit-util-cl.h<br>
> > @@ -31,7 +31,9 @@<br>
> ><br>
> >  /* Define with which version of OpenCL Piglit was compiled */<br>
> ><br>
> > -#if defined(CL_VERSION_1_2)<br>
> > +#if defined(CL_VERSION_2_0)<br>
> > +#  define PIGLIT_CL_VERSION 20<br>
> > +#elif defined(CL_VERSION_1_2)<br>
> >  #  define PIGLIT_CL_VERSION 12<br>
> >  #elif defined(CL_VERSION_1_1)<br>
> >  #  define PIGLIT_CL_VERSION 11<br>
> > --<br>
> > 2.13.3<br>
> ><br>
> > _______________________________________________<br>
> > Piglit mailing list<br>
> > <a href="mailto:Piglit@lists.freedesktop.org" target="_blank">Piglit@lists.freedesktop.org</a><br>
> > <a href="https://lists.freedesktop.org/mailman/listinfo/piglit" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/piglit</a><br>
<br>
--<br>
Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu" target="_blank">jan.vesely@rutgers.edu</a>></blockquote></div>