Blaž Tomažič <blaz.toma...@gmail.com> writes:

> Fix API functions for memory objects to accept CL_MEM_READ_WRITE flag.
>
> Signed-off-by: Blaž Tomažič <blaz.toma...@gmail.com>

OK, pushed, but I've left out the change in clCreateSubBuffer, it makes
the code throw an error in cases where the child buffer is read- or
write-only while the parent buffer is read-write...

Thanks.

> ---
>  src/gallium/state_trackers/clover/api/memory.cpp | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/api/memory.cpp 
> b/src/gallium/state_trackers/clover/api/memory.cpp
> index 1b1ae73..ae6d3a0 100644
> --- a/src/gallium/state_trackers/clover/api/memory.cpp
> +++ b/src/gallium/state_trackers/clover/api/memory.cpp
> @@ -39,7 +39,7 @@ clCreateBuffer(cl_context ctx, cl_mem_flags flags, size_t 
> size,
>     if (!size)
>        throw error(CL_INVALID_BUFFER_SIZE);
>  
> -   if (flags & ~(CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
> +   if (flags & ~(CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
>                   CL_MEM_USE_HOST_PTR | CL_MEM_ALLOC_HOST_PTR |
>                   CL_MEM_COPY_HOST_PTR))
>        throw error(CL_INVALID_VALUE);
> @@ -63,7 +63,8 @@ clCreateSubBuffer(cl_mem obj, cl_mem_flags flags, 
> cl_buffer_create_type op,
>     if ((flags & (CL_MEM_USE_HOST_PTR |
>                   CL_MEM_ALLOC_HOST_PTR |
>                   CL_MEM_COPY_HOST_PTR)) ||
> -       (~flags & parent->flags() & (CL_MEM_READ_ONLY |
> +       (~flags & parent->flags() & (CL_MEM_READ_WRITE |
> +                                    CL_MEM_READ_ONLY |
>                                      CL_MEM_WRITE_ONLY)))
>        throw error(CL_INVALID_VALUE);
>  
> @@ -98,7 +99,7 @@ clCreateImage2D(cl_context ctx, cl_mem_flags flags,
>     if (!ctx)
>        throw error(CL_INVALID_CONTEXT);
>  
> -   if (flags & ~(CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
> +   if (flags & ~(CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
>                   CL_MEM_USE_HOST_PTR | CL_MEM_ALLOC_HOST_PTR |
>                   CL_MEM_COPY_HOST_PTR))
>        throw error(CL_INVALID_VALUE);
> @@ -134,7 +135,7 @@ clCreateImage3D(cl_context ctx, cl_mem_flags flags,
>     if (!ctx)
>        throw error(CL_INVALID_CONTEXT);
>  
> -   if (flags & ~(CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
> +   if (flags & ~(CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
>                   CL_MEM_USE_HOST_PTR | CL_MEM_ALLOC_HOST_PTR |
>                   CL_MEM_COPY_HOST_PTR))
>        throw error(CL_INVALID_VALUE);
> @@ -168,7 +169,7 @@ clGetSupportedImageFormats(cl_context ctx, cl_mem_flags 
> flags,
>     if (!ctx)
>        throw error(CL_INVALID_CONTEXT);
>  
> -   if (flags & ~(CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
> +   if (flags & ~(CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY |
>                   CL_MEM_USE_HOST_PTR | CL_MEM_ALLOC_HOST_PTR |
>                   CL_MEM_COPY_HOST_PTR))
>        throw error(CL_INVALID_VALUE);

Attachment: pgpb5HcRoOnpV.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to