Add dali-shader-conf.sh 18/319518/3
authorsunghyun kim <scholb.kim@samsung.com>
Wed, 12 Feb 2025 07:50:53 +0000 (16:50 +0900)
committersunghyun kim <scholb.kim@samsung.com>
Thu, 20 Feb 2025 08:19:14 +0000 (08:19 +0000)
To manage program binary cache, i added the script.
this script create version file to RO and RW area and compare dali's
version.
if it is different,this script reset all of programBinary.

Change-Id: Ib8f473cc845f7425c7302e1fdf63bdeead922e40

packaging/dali-extension.spec
scripts/dali-shader-conf.sh [new file with mode: 0755]

index 1b2a636df7de70b8d583092e37494eaddc051e86..f7f35d40a2b3129623cf79eb6f45026aca2298dd 100755 (executable)
@@ -314,6 +314,9 @@ install -m 0644 scripts/dali.sh %{buildroot}%{_sysconfdir}/profile.d
 install -m 0644 scripts/other/dali.sh %{buildroot}%{_sysconfdir}/profile.d
 %endif
 
+# install dali-shader-conf.sh
+install -m 0644 scripts/dali-shader-conf.sh %{buildroot}%{_sysconfdir}/profile.d
+
 cd build/tizen
 %make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
 
@@ -447,6 +450,7 @@ exit 0
 %manifest dali-extension.manifest
 %defattr(-,root,root,-)
 %{_sysconfdir}/profile.d/dali.sh
+%{_sysconfdir}/profile.d/dali-shader-conf.sh
 %{_libdir}/libdali2-extension.so*
 %license LICENSE
 
diff --git a/scripts/dali-shader-conf.sh b/scripts/dali-shader-conf.sh
new file mode 100755 (executable)
index 0000000..4c91596
--- /dev/null
@@ -0,0 +1,48 @@
+# This Script reset dali shader in target
+
+FILE_NAME="shader.versionstamp"
+DALI_SHADER_VERSION_PATH="/usr/share/dali/core/shaderbin/"
+DALI_SHADER_VERSION_FILE="${DALI_SHADER_VERSION_PATH}/${FILE_NAME}"
+DALI_SHADER_CACHE_VERSION_PATH=/home/owner/.cache/dali_common_caches/
+DALI_SHADER_CACHE_VERSION_FILE="${DALI_SHADER_CACHE_VERSION_PATH}/${FILE_NAME}"
+
+function get_dali_shader_version(){
+    if [ -e ${DALI_SHADER_VERSION_FILE} ]
+    then
+        _dali_shader_version=`cat ${DALI_SHADER_VERSION_FILE}`".version"
+    else
+        _dali_shader_version="Unknown.version"
+    fi
+
+    eval "$1='${_dali_shader_version}'"
+}
+
+function get_dali_shader_cache_version(){
+     if [ -e ${DALI_SHADER_CACHE_VERSION_FILE} ]
+     then
+         _dali_shader_cache_version=`cat ${DALI_SHADER_CACHE_VERSION_FILE}`".version"
+     else
+         _dali_shader_cache_version="Unknown.version"
+     fi
+
+     eval "$1='${_dali_shader_cache_version}'"
+}
+
+get_dali_shader_version _current_dali_shader_version
+get_dali_shader_cache_version _current_dali_shader_cache_version
+echo "dali version: ${_current_dali_shader_version}"
+echo "cache version: ${_current_dali_shader_cache_version}"
+
+rm -rf ${DALI_SHADER_CACHE_VERSION_PATH}/shader/*.tmp  #delete tmp file every booting
+
+if [ -e ${DALI_SHADER_CACHE_VERSION_FILE} ]
+then
+    if [ ${_current_dali_shader_version} != ${_current_dali_shader_cache_version} ]
+    then
+        rm -rf ${DALI_SHADER_CACHE_VERSION_PATH}shader/
+        cp -R ${DALI_SHADER_VERSION_FILE} ${DALI_SHADER_CACHE_VERSION_FILE} # version sync
+        echo "remove shader cache"
+    else
+        echo "no need to remove shader cache"
+    fi
+fi