Android 에서 root 권한이 있다면 Vulkan layer를 debug 폴더에 넣고 바로 enable 시킬 수 있다.
그러나 root 권한을 가진 경우는 드물며 대부분 user 상황에서 진행을 하기 때문에 Vulkan layer를 사용하기 위해서는 선택지가 줄어 든다.
가장 먼저 필요한 일은 Vulakn layer library를 필요한 위치에 복사하는 것으로, 2가지 방법이 있을 수 있다.
1. Vulkan layer를 adb를 활용하여 복사하기
이 방법은 app이 debug 로 빌드되었을 경우에만 사용할 수 있다.
$ adb push libVkLayer_object_tracker.so /data/local/tmp
$ adb shell run-as com.example.myapp cp /data/local/tmp/libVkLayer_khronos_validation.so .
$ adb shell run-as com.example.myapp ls libVkLayer_object_tracker.so
위와 같이 해당 app에 vulkan layer library를 복사할 수 있다.
2. APK 빌드 시 vulkan layer lib을 포함하기
좀 더 확실한 방법으로 애초에 APK를 빌드할 때 vulkan layer를 포함하여 debug하고 release 용으로는 vulkan lib을 제거하여 빌드 하는 방법이 있다.
APK build 시에 lib을 포함하는 방법은
i) App 의 src/main 폴더 하위에 jniLibs/ABI 폴더 생성 후, 해당 위치에 lib 을 넣는 방법
ii) build.gradle 에
sourceSets {
main {
jniLibs {
srcDir "${VULKAN_LAYER_PATH}/libs"
}
}
}
을 추가하는 방법
이 있다.
위 방법들로 apk를 빌드해준다면 Vulkan layer를 사용할 수 있는 기본 환경은 갖추어졌다고 생각할 수 있다.
Layer를 enable 하기 위해서는VkInstance 를 생성할 때 layer를 넣어주는 방법이 일반적이나, adb 에서도 vulkan layer를 enable할 수 있다.
$ adb shell setprop debug.vulkan.layers VK_LAYER_object_tracker
위처럼 debug.vulkan.layers LAYER_NAME 을 사용하면 vulkan layer를 enable 시킬 수 있다
참고: developer.android.com/ndk/guides/graphics/validation-layer
'잡다' 카테고리의 다른 글
Bitonic sort (0) | 2020.12.22 |
---|---|
OIT : Weighted, Blended OIT (0) | 2020.12.09 |
Order Independent Transparency (0) | 2020.12.03 |
Vulkan Layer (0) | 2020.11.14 |
Ogg vorbis (1) | 2015.09.04 |