I've spent last couple of days trying to get Tizen studio 2.2 up and running on given platform. As I have encountered multiple problems on my endeavour, I wanted to write down my findings in hope that they will help others facing the same issues.
- i7 / 16 GB RAM
- Radeon Pro 450 2 GB / Intel HD Graphics 530 1536 MB (OpenGL 4.1)
- 2 external monitors, 27" 4K Dell and 23" 1920x1080 HP
- MacOS High Sierra 10.13.3
- Tizen Studio 2.2
There were some failed installations and other (minor) issues which were solved by removing and reinstalling Tizen Studio. Since I was not able to reproduce those issues and can't really provide any meaningfull information about those issues, I'm not going to write about them. Instead, here are the issues I could reproduce and solve.
Java / Unable to select workspace
Some documentation mentioned that Java version should be 1.8.0_151. Symptoms for later version was
> When Tizen Studio runs, one can not click "OPEN" on workspace selection popup making it impossible to select one and proceed to actual Tizen Studio.
Since it's generally a bad idea to globally downgrade your Java version, I solved the issue with following steps
- Downloaded and installed Java 1.8.0_151 from Oracle archives
- Edited the eclipse.ini found inside TizenStudio.app/Contents/Eclipse/eclipse.ini with forced VM version by following setting
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/bin - Note that Virtual Machine setting needs to be set before -vmargs option
This solved the "Unable to select workspace" problem
HAXM / Cannot initialize HAX.
Tizen Studio includes HAXM version 6.0.3. This is badly outdated and is the root cause for "Cannot initialize HAX" -error. Solution is to update HAXM to more appropriate version. By the time of writing this latest version is 7.1.0.
HAXM is now a open source project in github, releases are located here: https://github.com/intel/haxm/releases
Updating HAXM was not as straightforward as one might think. For me, update failed because older version failed to unload. I solved this by rebooting my laptop and manually uninstalling current HAXM version. I'm quite sure there are some steps you can do to solve "extension unload failed" -issue other than rebooting the laptop. Reboot was the fastest way for me so I took the shortcut here.
In recap, I solved the "Cannot initialize HAX" issue with following steps
- Downloaded version 7.1.0 dmg from https://github.com/intel/haxm/releases
- Rebooted laptop
- Uninstalled HAXM by issuing command sudo /Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh
- Installed version 7.1.0 from downloaded dmg
Now I was able to start Tizen Studio and get emulator up and running. Except for one issue
GPU Assist / Device Initialization Failed
15" MacBook pros have two GPUs. Integrated, Intel HD Graphics and additional Radeon Pro. Which GPU is active is up to the macOS and is based on running apps and other system variables. For example, my configuration has two external monitors, connected over Thunderbolt. When exteranal monitors are connected, macOS shuts down integrated graphics and activates Radeon automatically.
This seems to be fairly difficult scenario for the Tizen emulator as GPU assisted images fail to load when eternal monitors are connected, giving the mentioned error code. (I would have attached a screenshot, but could not figure out how to do that in this forum and editor.)
Apparently Tizen emulator GPU assistance is tied to first GPU found on the system, whether it's active or not. In my case, first GPU is Intel HD Graphics which is shut down when external monitors are connected. It should not be surprise to anyone that GPU assist does not work with GPUs that are shut down causing emulator to fail on start.
It was easy to test this theory by just detaching external monitors. Alas, it's truly so. When intgrated graphics chip is active, GPU assistance works. When Radeon is active, it it does not. If GPU assitance is active in emulator settings the latter option fails to start completely.
So far I have not found solution to this. I'm missing documentation or tutorial how to configure emulator GPU assistance to Radeon GPU instead of integrated one.
Maybe someone can help me with this? Is there a way to define which GPU emulator is using for acceleration?