From 18c774b02e13fa5671f4473140381f758fd765ea Mon Sep 17 00:00:00 2001 From: foreman Date: Thu, 2 Oct 2014 19:24:13 -0400 Subject: [PATCH] P4 to Git Change 1083812 by rili@rili_opencl_stg on 2014/10/02 18:45:51 EPR #406832 - Added flag CL_MEM_KERNEL_READ_AND_WRITE support for clGetSupportedImageFormats Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#70 edit ... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#110 edit [ROCm/clr commit: d7c6c140d9e101790bfc190d0f6887cdf92b0ece] --- projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp index 23086235c8..6b92e6d6d5 100644 --- a/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp +++ b/projects/clr/opencl/api/opencl/amdocl/cl_memobj.cpp @@ -43,18 +43,25 @@ /*! \brief Helper function to validate cl_mem_flags * + * chkReadWrite: true: check the flag CL_MEM_KERNEL_READ_AND_WRITE + * false: don't check the falg CL_MEM_KERNEL_READ_AND_WRITE * \return true of flags are valid, otherwise - false */ static bool -validateFlags( cl_mem_flags flags) +validateFlags( cl_mem_flags flags, bool chkReadWrite=false) { // check flags for validity cl_bitfield temp = flags & (CL_MEM_READ_WRITE | CL_MEM_WRITE_ONLY | CL_MEM_READ_ONLY); + if (chkReadWrite) { + temp |= (flags & CL_MEM_KERNEL_READ_AND_WRITE) ; + } if(temp && !(CL_MEM_READ_WRITE == temp || CL_MEM_WRITE_ONLY == temp + || (chkReadWrite && (CL_MEM_KERNEL_READ_AND_WRITE == temp + || (CL_MEM_KERNEL_READ_AND_WRITE | CL_MEM_READ_WRITE) == temp)) || CL_MEM_READ_ONLY == temp)) { return false; } @@ -2139,7 +2146,7 @@ RUNTIME_ENTRY(cl_int, clGetSupportedImageFormats, ( return CL_INVALID_CONTEXT; } // check flags for validity - if(!validateFlags(flags)) { + if(!validateFlags(flags, true)) { LogWarning("invalid parameter \"flags\""); return CL_INVALID_VALUE; }