[Mesa-dev] [PATCH] clover: Accept CL_MEM_READ_WRITE flag

Francisco Jerez currojerez at riseup.net
Fri Aug 24 08:11:54 PDT 2012


Blaž Tomažič <blaz.tomazic at gmail.com> writes:

> Fix API functions for memory objects to accept CL_MEM_READ_WRITE flag.
>
> Signed-off-by: Blaž Tomažič <blaz.tomazic at 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);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120824/669e08ad/attachment.pgp>


More information about the mesa-dev mailing list