<![CDATA[hatwars blog]]>https://hatwars.com/https://hatwars.com/favicon.pnghatwars bloghttps://hatwars.com/Ghost 3.13Wed, 29 Apr 2020 21:02:18 GMT60<![CDATA[Running a performant android emulator for Window 10, AMD processor and RX580 GPU]]>Recently upgraded GPU for an old machine and wanted to get the most out of the hardware, specially for an emulator running Android apps.

There are number of Intel based guides out there but these configurations are particular to the hardware that my machine is running.

Your numbers and results
]]>
https://hatwars.com/running-performant-android-emulator-for-window-10-amd-processor-and-rx580-gpu/5ea8bbaa2b0a8401464c57c9Wed, 29 Apr 2020 06:04:15 GMT

Recently upgraded GPU for an old machine and wanted to get the most out of the hardware, specially for an emulator running Android apps.

There are number of Intel based guides out there but these configurations are particular to the hardware that my machine is running.

Your numbers and results can vary to a great extent.

Below on the left is an out of box 3D Mark test result for an X86 based AVD, compared to the right end, which is after all configurations X86 based AVD. Middle numbers are for an X86_64 based AVD, with same configuration as the right.

Running a performant android emulator for Window 10, AMD processor and RX580 GPU

System:

CPU - AMD A10-7850K Radeon R7, 12 Compute Cores 4C+8G
GPU - Radeon RX 580 Series 8 GB
OS - Windows 10 Pro with Android Studio
Make sure GPU drivers are up to date.


Step 1 - CPU Acceleration:

  • Enable Hyper-V for CPU - Link
    Hyper-V allows us to take advantage of the hardware acceleration of CPU
Android studio will try to install intel HAXM and fail, but don't worry HAXM only work for Intel CPU's.

Step 2 -  SDK and tools :

  • We have to use an X86 based AVD's, as they are the fastest - Official doc
    Note: You don't need to run a ARM AVD anymore for running ARM apps  - More
  • So in SDK manager install any SDK and X86 System Image.
Running a performant android emulator for Window 10, AMD processor and RX580 GPU
  • Make sure to have Android Emulator and Hypervisor Driver from SDK tools.
Running a performant android emulator for Window 10, AMD processor and RX580 GPU

Step 3 - Create an Android Virtual Device (AVD):

  • Select an hardware profile, Pixel 3a (Latest Google Play profile)
Note : Google Play profiles are locked and production ready builds.
Running a performant android emulator for Window 10, AMD processor and RX580 GPU
  • Next select the Recommended SDK, API level R, ABI x86, with Google Play
Note: You can only use Play Store hardware profiles with Google Play system images
Running a performant android emulator for Window 10, AMD processor and RX580 GPU
  • Then in next step just click Finish to create AVD.
Note: Most of the settings are grayed out for Google Play based configurations, for non Google Play images, these settings become available on UI.
These settings can be edited later, once the AVD is created.
Running a performant android emulator for Window 10, AMD processor and RX580 GPU

STEP 4 - Edit AVD configuration manually

  • Android emulator is based on QEMU - Link
  • Navigate to "C:\Users\<XXXX>\.android\avd\PerfPixel86.avd\"
    Where XXXX - your username and PerfPixel86.avd is the name
  • Open "config.ini" in a text edit and change the values as below
  • Size of the Disk, you want for emulator, make sure you have disk space
disk.dataPartition.size=16G
  • No of CPU cores for emulator, **Beware , depends on host CPU
hw.cpu.ncore=4
  • Make sure you have enough RAM on the system
    X86 based emulators cannot go above 4 GB, even if it is set to 8 GB below
    If you want more RAM, switch to x86_64 based Image.
hw.ramSize=8192
vm.heapSize=4096
  • Change gpu mode to host to use your host video card, RX580 in our case
hw.gpu.enabled=yes
hw.gpu.mode=host
Running a performant android emulator for Window 10, AMD processor and RX580 GPU
Make sure to have the hypervisor setting in advance features for CPU - Link

Step 5 - Runtime settings

  • Start the emulator and in "setting > Advanced" set it to Desktop native OpenGL and OpenGL ES 3.1, make sure to restart the AVD.
Running a performant android emulator for Window 10, AMD processor and RX580 GPU
  • Inside Android, enable the developer settings, by tapping build number 7 times
  • Set Force 4x MSAA and Disable HW overlays in Developer options
Running a performant android emulator for Window 10, AMD processor and RX580 GPU

The configurations are now complete, Below is the screenshot of actual 3Dmark test

Running a performant android emulator for Window 10, AMD processor and RX580 GPU

Links :
- https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/android-emulator/hardware-acceleration?pivots=windows
- https://developer.android.com/studio/run/emulator-acceleration
- https://developer.android.com/studio/command-line/avdmanager
- https://developer.android.com/studio/releases/emulator

]]>
<![CDATA[Enable hardware acceleration of AMD processors for android emulators]]>There are many android emulators out there which do not take advantage of WHPX or Hyper-V specially for AMD processors. (what is Hyper-V)

This post is part of a series - Running performant android emulator for Window 10, AMD processor and RX580 GPU.


Step 1 - Check if your CPU

]]>
https://hatwars.com/enable-hardware-acceleration-of-amd-processors-for-android-emulators/5ea8b8952b0a8401464c57b2Wed, 29 Apr 2020 00:09:14 GMT

There are many android emulators out there which do not take advantage of WHPX or Hyper-V specially for AMD processors. (what is Hyper-V)

This post is part of a series - Running performant android emulator for Window 10, AMD processor and RX580 GPU.


Step 1 - Check if your CPU supports it

  • Open Command prompt and type "systeminfo" and scroll to Hyper-V Requirements section.
Enable hardware acceleration of AMD processors for android emulators
Enable hardware acceleration of AMD processors for android emulators
  • All four requirements should say "Yes" to proceed.
  • If it says No, that means either virtualization is disabled in BIOS or your CPU does not support virtualization.

Step 2 - Turn on Hyper-V

  • Type "Turn Windows features on or off" in windows search to open the app and enable Hyper-V and Windows Hypervisor Platform
Enable hardware acceleration of AMD processors for android emulators
Enable hardware acceleration of AMD processors for android emulators

Step 3 - Add it to emulator properties

  • This assumes you have android studio installed and already downloaded some emulator AVD's.
  • Go to ".android" folder usually located "c:\Users\<XXXX>\.android"
  • Create a file "advancedFeatures.ini" if not present in the folder and add the line
WindowsHypervisorPlatform = on
  • Another alternative is to start the emulator from command line with following option, but you would have to invoke it every time.
Emulator -avd  -feature WindowsHypervisorPlatform


FYI for Hyper-V

Enable hardware acceleration of AMD processors for android emulators
]]>
<![CDATA[Now you can run ARM binaries in X86 android emulators]]>

  • One big problem with android emulators in android studio was that, many of the release binaries from play store or from developers were of armeabi-v7a or arm64-v8a format.
  • So the best performant emulators are X86 based but if you want to run those ARM builds, the latest AVD which was
]]>
https://hatwars.com/now-you-can-run-arm-binaries-in-x86-android-emulators/5ea881db2b0a8401464c56cdTue, 28 Apr 2020 20:50:47 GMTNow you can run ARM binaries in X86 android emulators

The new Android 11 system images are capable of translating ARM instructions to x86 without impacting the entire system. This allows the execution of ARM binaries for testing without the performance overhead of full ARM emulation

What it means ?

  • You can just download an Android R Google Play AVD and run most of the apps directly on the emulator. There could be some apps that may not run or are incompatible.
  • Developers wont have to create multiple build outputs in future, at least in the development phase of their applications, you can quickly debug them on X86 based emulators.
  • Also x86 based emulators are more performant and can take advantage of CPU and GPU, so faster debugging.
  • More apps will have x86 support in the future, that means chrome OS and android x86 based machines getting more app support.
Now you can run ARM binaries in X86 android emulators

FYI - As of today only Android 9 and 11 based X-86 and x-86_64 emulators can run ARM builds, not 10 : https://developer.android.com/studio/releases/emulator#30-0-0


Just started an Android 9 based X86 Google Play AVD, signed into Playstore and done. Normally this app would not have been present, as it is an armeabi-v7a variant.

Now you can run ARM binaries in X86 android emulators
]]>
<![CDATA[Comparison of free video conferencing services]]>During this lockdown, wanted to compare some free tiers of video conferencing services, so that anyone can start using them instantly.

There is a difference between group video chat and video conference service, mainly with respect to advanced features like, number of participants, call length, dial-in audio, whiteboards etc.

This

]]>
https://hatwars.com/free-conference-solutions/5e9ffbec40aef2358a2abb95Thu, 23 Apr 2020 01:16:24 GMT

During this lockdown, wanted to compare some free tiers of video conferencing services, so that anyone can start using them instantly.

There is a difference between group video chat and video conference service, mainly with respect to advanced features like, number of participants, call length, dial-in audio, whiteboards etc.

This is not an exhaustive list, only few features are compared within free tier and can change anytime in future.

Comparison of free video conferencing services
  • Zoom:
    Popular alternative, has many features bundled in free tier, only limiting factor is the total call length of 40 mins, after that you would have to just restart the meeting. No recordings or dial-in audio.

  • Jitsi Meet:
    Open source alternative, free to use instantly on browser. Disadvantage would be that it is hosted on a shared server, so you cannot really add any advanced integrations like etherpad and participant limit, from the forums is best around 40 people, hard cut 75.

  • Skype Meet now:
    One click conference setup from your personal skype account, anyone can join on desktop without skype client or account, Some restrictions on the length of the call and no call-in audio.  A nice feature is that recordings are saved for 30 days.

  • Cisco Webex:
    Good option, especially after they removed restrictions on length of call and participant limit. There is also a dial-in number that people can use to join conference with a phone call. No recordings or custom backgrounds.

Infographic and and the post is based on the sources provided below.

]]>
<![CDATA[Online quick games for remote teams]]>Updated - adding Drawasaurus.


Due to lockdown, everyone is doing work from home, below are some quick games you can play as team building activities on video.

  • Drawasaurus
    Great Pictionary game, can be played with up to 20 players.
    Lots of custom settings for private custom rooms

]]>
https://hatwars.com/multiplayer-games-with-the-team/5e9e6e7efd03fc172435c9efTue, 21 Apr 2020 22:15:15 GMTUpdated - adding Drawasaurus.Online quick games for remote teams


Due to lockdown, everyone is doing work from home, below are some quick games you can play as team building activities on video.

  • Drawasaurus
    Great Pictionary game, can be played with up to 20 players.
    Lots of custom settings for private custom rooms
Online quick games for remote teams

  • Scribble
    Browser based free game and ability to create custom rooms for up to 12 people. Its Ads supported, so you may have to disable adblocker.
Online quick games for remote teams

  • Jackbox party pack (5 games)
    You have to buy a server to host games (around $12), but sometimes there are discounts on steam or online. Game limits vary from 1-8 players, drawful is one of the good games to play. (May not work on company VPN, use a personal computer to host the server)
Online quick games for remote teams

  • Kahoot
    Free for up to 10 players (2000 for enterprise account), Kahoot is an educational platform with various quizzes that are already present or you can make your own. After signup you can just hit play on one of the games here https://create.kahoot.it/discover
Online quick games for remote teams

  • Typeracer
    Simple typing race, fun for a quick session.
Online quick games for remote teams

Online quick games for remote teams

  • Bingo with online card generator
    Use a service like - Link, they have various bingo cards for all occasions, free up to 30. Then send individual cards to people.
Online quick games for remote teams


*All images are screenshots from the websites.

]]>
<![CDATA[Fun custom zoom video backgrounds]]>How to - https://hatwars.com/zoom-custom-video-backgrounds/

These are just YouTube videos, I don't own any content on them (right click on video to save mp4)

Central park sunny day YT-Link



Star wars throne room YT-Link

]]>
https://hatwars.com/fun-custom-zoom-video-backgrounds/5e9e1d28fd03fc172435c981Tue, 21 Apr 2020 00:16:36 GMT

How to - https://hatwars.com/zoom-custom-video-backgrounds/

These are just YouTube videos, I don't own any content on them (right click on video to save mp4)

Central park sunny day YT-Link



Star wars throne room YT-Link



TNG bridge YT-Link



TNG 10 forward wrap YT-Link



Falcon lightspeed YT-Link



This is fine YT-Link



Horse shoe bend YT-Link

]]>
<![CDATA[Creating custom zoom video background]]>Zoom has some specific requirements for videos which can be set backgrounds

  • A video (MP4 or MOV file) with a minimum resolution of 480 by 360 pixels (360p) and a maximum resolution of 1920 by 1080 pixels (1080p).

ffmpeg on desktop or ezgif online are good alternatives, but it cant

]]>
https://hatwars.com/zoom-custom-video-backgrounds/5e9d1e06fd03fc172435c92aMon, 20 Apr 2020 04:10:05 GMT

Zoom has some specific requirements for videos which can be set backgrounds

  • A video (MP4 or MOV file) with a minimum resolution of 480 by 360 pixels (360p) and a maximum resolution of 1920 by 1080 pixels (1080p).

ffmpeg on desktop or ezgif online are good alternatives, but it cant beat the simplicity of Kapwing.

Kapwing has some simple templates that are preconfigured, to get quick results. For zoom backgrounds its best to have a time-lapse or single shot video. We are going to use video of a sunny day at central park to get out of Covid lockdown mood  - https://www.youtube.com/watch?v=V4Y6XstLBN8


Steps for creating the video

  1. Click "Upload" button
  2. Paste the YouTube URL (** Set resolution to 1280x720)
  3. Click publish - Done (wait for video to be processed  and then download)
Creating custom zoom video background

Result (right click on video to save mp4)



FYI:

  • ** The template has default resolution of 1920X1080, but our zoom server has 1280x720 restriction
  • If you signup with Kapwing, they will remove the watermark on the bottom right and have all the videos stored for 7 days in your workspace
  • Video is set as public by default, you have to pay to make it private
  • For more on what's free - https://www.kapwing.com/pricing

How to set the background in Zoom client

Step by step - https://support.zoom.us/hc/en-us/articles/210707503-Virtual-Background

]]>
<![CDATA[Hello world]]>First post

]]>
https://hatwars.com/test/5e9b76cb3d4cb60ad798f263Sat, 18 Apr 2020 21:53:26 GMT

First post

]]>