[Emul/Tizen] Enable emulation mode in Tizen env.
authorDongju Chae <dongju.chae@samsung.com>
Thu, 1 Apr 2021 06:16:46 +0000 (15:16 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Tue, 6 Apr 2021 05:04:22 +0000 (14:04 +0900)
This patch enables emulation mode in Tizen env.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
meson.build
meson_options.txt
packaging/npu-engine.spec
src/core/npu/NPUdrvAPI_emul.cc
src/core/npu/meson.build
src/core/utils/meson.build
src/core/utils/ne-utils.cc
src/core/utils/ne-utils.h

index 31b74ca..33ac6f1 100644 (file)
@@ -16,6 +16,12 @@ sysroot = run_command(
     cpp.cmd_array() + ['-print-sysroot']
     ).stdout().split('\n')[0]
 
+build_platform = ''
+if get_option('enable_tizen')
+  add_project_arguments('-D__TIZEN__=1', language: ['c', 'cpp'])
+  build_platform = 'tizen'
+endif
+
 warning_c_flags = [
   '-Wmissing-prototypes',
   '-Wmissing-declarations',
@@ -68,6 +74,7 @@ ne_includedir = join_paths(ne_prefix, get_option('includedir'))
 ne_inidir = get_option('sysconfdir')
 ne_datadir = join_paths(ne_prefix, join_paths(get_option('datadir'), 'npu-engine'))
 
+add_project_arguments('-DNE_PREFIX="' + ne_prefix + '"', language: ['c', 'cpp'])
 add_project_arguments('-DNE_INIDIR="' + ne_inidir + '"', language: ['c', 'cpp'])
 add_project_arguments('-DNE_DATADIR="' + ne_datadir + '"', language: ['c', 'cpp'])
 
@@ -120,7 +127,7 @@ endif
 libdrm_dep = dependency('libdrm')
 
 if get_option('enable_npu_emul')
-  add_project_arguments('-I/opt/trinity/include', language: ['c', 'cpp'])
+  add_project_arguments('-I' + ne_prefix + '/include', language: ['c', 'cpp'])
   add_project_arguments('-DENABLE_EMUL', language: ['c', 'cpp'])
 endif
 if get_option('enable_data_manip')
index 3ac4b9a..7a4db7d 100644 (file)
@@ -3,6 +3,7 @@ option('resv_mem_size', type : 'string', value : '0')
 option('num_threads', type : 'string', value : '8')
 option('log_dir', type : 'string', value : '/tmp/')
 option('log_level', type : 'string', value : '1')
+option('enable_tizen', type : 'boolean', value : false)
 option('enable_npu_emul', type : 'boolean', value : false)
 option('enable_data_manip', type : 'boolean', value : false)
 option('enable_buffering', type : 'boolean', value : false)
index 4402c58..ae2aad6 100644 (file)
@@ -27,6 +27,15 @@ BuildRequires:  gtest-devel
 BuildRequires:  pkgconfig(libdrm)
 BuildRequires:  pkgconfig(tinyxml2)
 
+BuildRequires:  pkgconfig(dlog)
+
+%if 0%{?npu_emul}
+BuildRequires:  libmrpsim-devel
+%define enable_npu_emul -Denable_npu_emul=true
+%else
+%define enable_npu_emul -Denable_npu_emul=false
+%endif
+
 %global debug_package %{nil}
 %global __debug_install_post %{nil}
 
@@ -40,7 +49,7 @@ cp %{SOURCE1001} .
 
 meson --buildtype=plain --bindir=%{neexampledir} --prefix=%{_prefix} \
       --sysconfdir=%{_sysconfdir} --libdir=%{_libdir} --includedir=%{_includedir} \
-      -Denable_npu_emul=false -Denable_data_manip=true \
+      -Denable_tizen=true -Denable_data_manip=true %{enable_npu_emul} \
       build
 ninja -C build %{?_smp_mflags}
 
index 993c9b4..652e8ce 100644 (file)
@@ -24,7 +24,7 @@
 
 #define MAX_EMUL_DEVICES (3)
 #define ENV_PREFIX_SHARE "NE_PREFIX_SHARE"
-#define DEFAULT_PREFIX_SHARE "/opt/trinity/share"
+#define DEFAULT_PREFIX_SHARE NE_PREFIX "/share"
 #define DEFAULT_PROFILE_PATH "/tmp"
 
 class EmulTask {
index 2830d7d..336052e 100644 (file)
@@ -9,8 +9,8 @@ if get_option('enable_npu_emul')
   if not ne_emul_dep.found()
     warning('falling back to the hardcoded dependency on "npu-engine-emul"')
     ne_emul_dep = declare_dependency (
-      compile_args : ['-I/opt/trinity/include/npu-engine'],
-      link_args: ['-L/opt/trinity/lib', '-lmrpsim -lrt -ldl'],
+      compile_args : ['-I' + ne_prefix + '/include/npu-engine'],
+      link_args: ['-L' + ne_prefix + '/lib', '-lmrpsim -lrt -ldl'],
     )
   endif
 
index e23d4d7..9ae1292 100644 (file)
@@ -4,8 +4,15 @@ ne_core_utils_src = [
   'ne-conf.cc'
 ]
 
+ne_core_utils_deps = [iniparser_dep]
+
+if build_platform == 'tizen'
+  dlog_dep = dependency('dlog')
+  ne_core_utils_deps += dlog_dep
+endif
+
 ne_core_utils_dep = declare_dependency (
   sources : ne_core_utils_src,
-  dependencies : [iniparser_dep],
+  dependencies : ne_core_utils_deps,
   include_directories : ne_core_utils_inc
 )
index c3ad166..dec5898 100644 (file)
@@ -133,6 +133,15 @@ Logger::logwrite (loglevel l, module m, const char *format, ...)
     fflush (stderr);
   }
 
+#ifdef __TIZEN__
+  if (l == LOG_ERROR)
+    ml_loge ("%s", log_msg);
+  else if (l == LOG_WARN)
+    ml_logw ("%s", log_msg);
+  else if (l == LOG_INFO)
+    ml_logi ("%s", log_msg);
+#endif
+
   if (fp_ == nullptr) {
     char filename[FILENAME_MAX];
 
index 02caf36..2a0edff 100644 (file)
  * Logging utilities                                                *
  ********************************************************************/
 
+#ifdef __TIZEN__
+#include <dlog.h>
+
+#define TAG_NAME "npu-engine"
+
+#define ml_logi(...) dlog_print (DLOG_INFO, TAG_NAME, __VA_ARGS__)
+#define ml_logw(...) dlog_print (DLOG_WARN, TAG_NAME, __VA_ARGS__)
+#define ml_loge(...) dlog_print (DLOG_ERROR, TAG_NAME, __VA_ARGS__)
+#define ml_logd(...) dlog_print (DLOG_DEBUG, TAG_NAME, __VA_ARGS__)
+#define ml_logf(...) dlog_print (DLOG_FATAL, TAG_NAME, __VA_ARGS__)
+#endif
+
 typedef enum {
   LOG_NONE = 0,
   LOG_ERROR,