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;
}