1

I have installed the x86 Image of Android 4.2.2 on Windows 8 x64 with 768MB RAM allocated and got it running in "fast mode" due to my CPUs VTx, and rendering the UI menus is fairly fast, close to 60 FPS (although most of the time it's more like ~50 FPS, and this is on a Core i7 2600), and I've also checked the "Use Host GPU" box.

I figured the GPU commands do get forwarded based on a simple fact, the GLES2 capabilities are more in tone with my desktop GPU (like say 32 max texture units). However, the framerate in a GLES2 app is ~2 FPS and it's not even based on complexity. Anything I throw at it, even an app with 10 drawcalls still performs at around 2 FPS, so there's must be something really weird going on as simply forwarding the GL commands to my GPU (a HD7850) should provide a fluent 60 FPS.

RelativeGames
  • 1,593
  • 2
  • 18
  • 27
  • What OS are you running your emulator on? – Gabe Aug 18 '13 at 03:22
  • possible duplicate of [Slow Android emulator](http://stackoverflow.com/questions/1554099/slow-android-emulator) – Gabe Aug 18 '13 at 03:22
  • Windows 8, edited. It is not a duplicate, I'm talking about GLES2 support, not the general UI which I already said runs pretty good. – RelativeGames Aug 18 '13 at 04:17
  • I would be hesitant to call OpenGL ES a close analog to desktop OpenGL. While it is true that _most_ of the features are simply dumbed down from OpenGL, variable-precision is not something that is part of desktop GL; in desktop GL the idea of variable precision is pretty much limited to 32-bit vs. 64-bit FP - it is not at all like GL ES. Properly simulating low/medium precision on a desktop GPU will very likely throw you off the hardware accelerated path. – Andon M. Coleman Sep 18 '13 at 08:02
  • Your arguments are invalid. OpenGL ES specifies that precision qualifiers are hints only (most implementations don't even support highp or promote lowp to mediump). If you were to check what glGetShaderPrecisionFormat returns, you'd find out that on DesktopGL all qualifiers promote variables to 32 bit formats. – RelativeGames Sep 27 '13 at 10:57

1 Answers1

0

There might be several issues that result in poor GLES2 performance:

  1. Do you have Intel HAXM (Hardware Accelerated Execution Manager)? It really helps with the emulator performance and speed. It can be downloaded via Android SDK Manager. After downloading it, go to SDK/extras/intel/ and install it.

  2. Do you have the latest video drivers? If not, you should perform an update.

  3. How are you launching the android emulator? I am asking this because if you start the avd using the command line, you need to copy 4 dll files from sdk/tools/lib to sdk/tools. The 4 files are: libEGL_translator.dll, libEGLS_CM_translator.dll, libGLES_V2_translator.dll, libOpenglRender.dll. If launching from the Virtual Device Manager, you don't need to perform step 3.

Gabriel Porumb
  • 1,661
  • 1
  • 12
  • 21
  • 4. The only thing that HAXM does is forward OpenGL calls to your GPU host, instead of going through software rasterization. There's an option to use the emulator + HAXM without GL forwarding and you'll see it runs just as slow as without HAXM. – RelativeGames May 27 '14 at 19:28