[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