[Beignet] [BUG] piglit test case fail (get-global-size)

Zhigang Gong zhigang.gong at linux.intel.com
Wed Jun 26 01:29:20 PDT 2013


Thanks for the testing, just pushed the patch.

On Wed, Jun 26, 2013 at 08:03:46AM +0000, Sun, Yi wrote:
> Hi Zhigang,
> 
> This patch works well. I retested case 
> bin/cl-program-tester tests/cl/program/execute/get-global-size.cl 
> and it now is passed.
> 
> Thanks
>   --Sun, Yi
> > 
> > 
> On Tue, 2013-06-25 at 14:34 +0800, Zhigang Gong wrote:
> > On Mon, Jun 24, 2013 at 01:57:13PM +0800, Zhigang Gong wrote:
> > Hi Yi,
> > 
> > I just wrote a patch to work around this bug and optimize those
> > builtin functions. Please help to test it. Thanks.
> > 
> > From 3b5f96a9f085ce5e865008485dd9c5e6b5245bbd Mon Sep 17 00:00:00 2001
> > From: Zhigang Gong <zhigang.gong at linux.intel.com>
> > Date: Tue, 25 Jun 2013 14:15:09 +0800
> > Subject: [PATCH] Refine the get_local_id/... builtins.
> > 
> > As we could prepare correct value on runtime library side and give
> > a correct value in the payload for dim 0, 1 and 2. So for these 3
> > dim argument, we don't need to check it whether in the valid range,
> > we just read the payload's value.
> > 
> > This way, we can avoid any unecessary branching for normal usage of
> > these builtin functions. And could avoid a known bool related bug.
> > 
> > Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
> > ---
> >  backend/src/ocl_stdlib.h | 8 +++-----
> >  src/cl_api.c             | 2 +-
> >  2 files changed, 4 insertions(+), 6 deletions(-)
> > 
> > diff --git a/backend/src/ocl_stdlib.h b/backend/src/ocl_stdlib.h
> > index 81a0193..f43e898 100644
> > --- a/backend/src/ocl_stdlib.h
> > +++ b/backend/src/ocl_stdlib.h
> > @@ -4315,11 +4315,9 @@ DECL_INTERNAL_WORK_ITEM_FN(get_num_groups)
> >  #define DECL_PUBLIC_WORK_ITEM_FN(NAME, OTHER_RET)    \
> >  INLINE unsigned NAME(unsigned int dim) {             \
> >    if (dim == 0) return __gen_ocl_##NAME##0();        \
> > -  else if (dim > 0 && dim < get_work_dim()) {        \
> > -    if (dim == 1) return __gen_ocl_##NAME##1();      \
> > -    else if (dim == 2) return __gen_ocl_##NAME##2(); \
> > -  }                                                  \
> > -  return OTHER_RET;                                  \
> > +  else if (dim == 1) return __gen_ocl_##NAME##1();   \
> > +  else if (dim == 2) return __gen_ocl_##NAME##2();   \
> > +  else return OTHER_RET;                             \
> >  }
> >  
> >  DECL_PUBLIC_WORK_ITEM_FN(get_group_id, 0)
> > diff --git a/src/cl_api.c b/src/cl_api.c
> > index 3c78243..ebca294 100644
> > --- a/src/cl_api.c
> > +++ b/src/cl_api.c
> > @@ -1570,7 +1570,7 @@ clEnqueueNDRangeKernel(cl_command_queue  command_queue,
> >  {
> >    size_t fixed_global_off[] = {0,0,0};
> >    size_t fixed_global_sz[] = {1,1,1};
> > -  size_t fixed_local_sz[] = {16,1,1};
> > +  size_t fixed_local_sz[] = {1,1,1};
> >    cl_int err = CL_SUCCESS;
> >    cl_uint i;
> >  
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list