From 49bd4d9a66dc2053ff268576a343b8a99dc9a2e3 Mon Sep 17 00:00:00 2001 From: foreman Date: Thu, 12 Nov 2015 15:20:52 -0500 Subject: [PATCH] P4 to Git Change 1210657 by lmoriche@lmoriche_opencl_dev on 2015/11/12 15:05:23 SWDEV-78467 - OpenCL LiquidFlash feature - Add a function to return the LF file block size Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#47 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp#11 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.h#3 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#22 edit --- opencl/api/opencl/amdocl/cl_context.cpp | 3 +++ opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp | 25 +++++++++++++++++++ opencl/api/opencl/amdocl/cl_lqdflash_amd.h | 8 ++++++ .../khronos/headers/opencl2.0/CL/cl_ext.h | 10 ++++++++ 4 files changed, 46 insertions(+) diff --git a/opencl/api/opencl/amdocl/cl_context.cpp b/opencl/api/opencl/amdocl/cl_context.cpp index 0f659adb39..6c76007cb4 100644 --- a/opencl/api/opencl/amdocl/cl_context.cpp +++ b/opencl/api/opencl/amdocl/cl_context.cpp @@ -552,6 +552,9 @@ clGetExtensionFunctionAddress(const char* func_name) CL_EXTENSION_ENTRYPOINT_CHECK(clGetPlaneFromImageAMD); #endif //_WIN32 CL_EXTENSION_ENTRYPOINT_CHECK(clGetKernelSubGroupInfoKHR); +#if cl_amd_liquid_flash && !defined(OPENCL_MAINLINE) + CL_EXTENSION_ENTRYPOINT_CHECK(clGetFileObjectInfoAMD); +#endif // cl_amd_liquid_flash break; case 'H': #ifdef _WIN32 diff --git a/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp b/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp index 3a974430d7..4c4981be35 100644 --- a/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp +++ b/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp @@ -123,6 +123,31 @@ RUNTIME_ENTRY_RET(cl_file_amd, clCreateFileObjectAMD, ( } RUNTIME_EXIT +RUNTIME_ENTRY(cl_int, clGetFileObjectInfoAMD, ( + cl_file_amd file, + cl_file_info_amd param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret)) +{ + if (!is_valid(file)) { + return CL_INVALID_FILE_OBJECT_AMD; + } + + switch (param_name) { + case CL_FILE_BLOCK_SIZE_AMD: { + cl_uint size = as_amd(file)->blockSize(); + return amd::clGetInfo( + size, param_value_size, param_value, param_value_size_ret); + } + default: + break; + } + + return CL_INVALID_VALUE; +} +RUNTIME_EXIT + RUNTIME_ENTRY(cl_int, clRetainFileObjectAMD, ( cl_file_amd file)) { diff --git a/opencl/api/opencl/amdocl/cl_lqdflash_amd.h b/opencl/api/opencl/amdocl/cl_lqdflash_amd.h index 7b857c2c9b..e5cbffbb26 100644 --- a/opencl/api/opencl/amdocl/cl_lqdflash_amd.h +++ b/opencl/api/opencl/amdocl/cl_lqdflash_amd.h @@ -14,6 +14,14 @@ clCreateFileObjectAMD( const wchar_t * file_name, cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; +extern CL_API_ENTRY cl_int CL_API_CALL +clGetFileObjectInfoAMD( + cl_file_amd file, + cl_file_info_amd param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_1_2; + extern CL_API_ENTRY cl_int CL_API_CALL clRetainFileObjectAMD( cl_file_amd file) CL_EXT_SUFFIX__VERSION_1_2; diff --git a/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h b/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h index 5b117e2b5a..ee1af60d93 100644 --- a/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h +++ b/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h @@ -467,12 +467,22 @@ typedef cl_uint cl_file_flags_amd; #define CL_FILE_WRITE_ONLY_AMD (1 << 1) #define CL_FILE_READ_WRITE_AMD (1 << 2) +typedef cl_uint cl_file_info_amd; +#define CL_FILE_BLOCK_SIZE_AMD 0x4085 + typedef CL_API_ENTRY cl_file_amd (CL_API_CALL * clCreateFileObjectAMD_fn)( cl_context /*context*/, cl_file_flags_amd /*flags*/, const wchar_t * /*file_name*/, cl_int * /*errcode_ret*/) CL_EXT_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clGetFileObjectInfoAMD_fn)(cl_file_amd /* file */, + cl_file_info_amd /* param_name */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_EXT_SUFFIX__VERSION_1_2; + typedef CL_API_ENTRY cl_int (CL_API_CALL * clRetainFileObjectAMD_fn)( cl_file_amd /*file*/) CL_EXT_SUFFIX__VERSION_1_2;