Till now, according to the information you provided, it seems it is a device 
specific issue happened on LG G3 device. Unfortunately, I don't have such a 
device. I am also on the IRC, my name is 'hmin'. Ping me if you are free.

Regards
Hongbo
________________________________________
From: John Harrison [[email protected]]
Sent: Thursday, October 23, 2014 1:20 PM
To: Min, Hongbo
Cc: [email protected]
Subject: RE: [Crosswalk-help] stability of Crosswalk across multiple devices 
for canvas-heavy app

Sorry, I forgot to cc the list.

If it is an easier/quicker way to communicate, I am often in the #crosswalk 
channel in Freenode on IRC. My handle is "whyameye."

Also you asked on the crashlog for Crosswalk 8 and 9. I need to check on 8. For 
9 it is the same as 10:   W/Binder  ( 1335): Caught a RuntimeException from the 
binder stub implementation...

-John
--------------------------------------------
On Wed, 10/22/14, John Harrison <[email protected]> wrote:

 Subject: RE: [Crosswalk-help] stability of Crosswalk across multiple devices 
for canvas-heavy app
 To: "HongboMin" <[email protected]>
 Date: Wednesday, October 22, 2014, 11:55 PM

 I have tried running in
 Chrome on Android v 38.0.2125.102 and it seems to work fine.
 I have tried Crosswalk 8.37.189.14 and 9.38.208.7 and it
 crashes on these versions. I also told you earlier that if I
 used the xwalk flag --disable-accelerated-2d-canvas with
 Crosswalk it wouldn't crash, but I was wrong on that. It
 still crashes with that flag, just not as often. Sometimes
 the app doesn't completely crash but it seems like the
 DOM is somehow corrupted. Images will be completely missing
 that should be there. I'm wondering if it could be some
 sort of threading issue. However I tried every flag I could
 imagine that was related to threading and nothing helped.

 -John
 --------------------------------------------
 On Wed, 10/22/14, Min, Hongbo <[email protected]>
 wrote:

  Subject: RE:
 [Crosswalk-help] stability of Crosswalk across multiple
 devices for canvas-heavy app
  To: "John
 Harrison" <[email protected]>
  Cc: "[email protected]"
 <[email protected]>
  Date: Wednesday, October 22, 2014, 10:05 PM

  John,

  There is still some differences between
 Chromium WebView and
  Crosswalk in graphics
 rendering even though both of them are

 based on Chromium. For Chromium 30 WebView, it
 doesn't
  support accelerated canvas
 rendering while Crosswalk
  supports.

  The exception captured from
 adb logcat may be not related to
  canvas 2d,
 I am not sure if it is another bug introduced by
  rebasing. To filter these noises, could you
 please have a
  try the following 3
 options?
  1. Try to open your app in Chrome
 on Android if possible,
  and let me know the
 Chrome version.
  2. Try to use Crosswalk
 beta and stable version and verify
  if the
 crash issue still exists. Stable:
 
https://download.01.org/crosswalk/releases/crosswalk/android/stable/8.37.189.14/,
  and Beta:
 https://download.01.org/crosswalk/releases/crosswalk/android/beta/9.38.208.7/,
  and let me know the crash log.

  Again, it is very likely
 that your app expose a bug in
  accelerated
 canvas 2d.

  Regards
  Hongbo

 ________________________________
  From: John
 Harrison [[email protected]]
  on behalf of John Harrison [[email protected]]
  Sent: Thursday, October 23, 2014 5:42 AM
  To: Min, Hongbo
  Cc: [email protected]
  Subject: Re: [Crosswalk-help] stability of
 Crosswalk across
  multiple devices for
 canvas-heavy app

  Also I
 forgot to mention in earlier emails that my code runs
  without crashes on the LG G3 on Chromium 30
 using Cordova
  webview without Crosswalk:
  Mozilla/5.0 (Linux; Android 4.4.2; LGLS990
  Build/KVT49L.LS990ZV4) AppleWebKit/537.36
 (KHTML, like
  Gecko) Version/4.0
 Chrome/30.0.0.0 Mobile Safari/537.36"


  -John


 On 10/22/2014 11:18 AM, John Harrison wrote:

  Hongbo et al:

  I'm up for sharing the
 code off-list if it comes to that.
  Between
 the politics of sharing the code and the complexity
  of the code itself, I had thought it would be
 easier for all
  of us if I could isolate the
 problem in my code and just
  share that.
 Despite my attempts, though, I haven't

 successfully been able to isolate the problem. Here is
 the
  error I am consistently seeing from
 logcat when the app
  crashes. It is
 different than the error I reported earlier,
  and I'm not sure why it changed. Perhaps
 it is because of
  the switch to canary:
  W/Binder  ( 1335): Caught a RuntimeException
 from the
  binder stub implementation.
  W/Binder  ( 1335):
 java.lang.NullPointerException
  W/Binder  (
 1335):     at

 
android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
  W/Binder  ( 1335):     at

 com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
  W/Binder  ( 1335):     at

 android.os.Binder.execTransact(Binder.java:407)
  W/Binder  ( 1335):     at
  dalvik.system.NativeStart.run(Native
 Method)

  I'm using
 canary 10.39.2227.0 as you suggested.

  The LG G3 is the only device I am aware of
 triggering this
  error, but I have tested on
 only 6 or so devices. If you
  have an LG G3
 to test on and you are willing to deal with

 messy code that performs a lot of operations unrelated to
  this problem, maybe that is a reasonable way
 to go, as I am
  making slow progress on my
 end.

  -John

  On 10/20/2014 12:26 AM, Min,
 Hongbo wrote:

  Hi, John

  Actually, the amount of
 available GPU memory reported is not

 exactly accurate on Android device. Unlike Desktop GPU,
  there is no straightforward way to query
 available gpu
  memory. On Android device,
 its value is heuristically
  calculated from
 the available physical RAM (yes, RAM) and

 Davik VM, and make sure it is in a pre-defined range. As
 a
  result, it is possible that you force to
 set available gpu
  memory to 100MB but only
 8MB is reported.

  Right
 now let's focus on the issue you encountered, not the
  estimated amount of gpu memory. The issue your
 encountered
  when using Crosswalk is, the
 behavior of your app is not
  consistent
 cross multiple device, e.g. crash on some device,
  I suspect a bug in canvas is exposed by your
 app.

  Would you like to
 share your source code to us to diagnose

 the root cause? If you are hesitant to do that,  then
  capture the output from adb logcat after
 launching your app,
  especially for the
 crash point. It is recommended to use the

 latest  Crosswalk canary version 
https://download.01.org/crosswalk/releases/crosswalk/android/canary/10.39.227.0/
  to try it again.

  Regards
  Hongbo
  ________________________________
  From: John Harrison 
[[email protected]<mailto:[email protected]>]
  on behalf of John Harrison [[email protected]<mailto:[email protected]>]
  Sent: Sunday, October 19, 2014 3:51 AM
  To: Min, Hongbo; 
[email protected]<mailto:[email protected]>
  Subject: Re: [Crosswalk-help] stability of
 Crosswalk across
  multiple devices for
 canvas-heavy app

  Thanks
 for the detailed response. My responses are

 interspersed with yours below. To make them easier to spot
 I
  color-coded them.

  On 10/15/2014 12:02 AM, Min, Hongbo wrote:

  Hi, John


  Thanks for your elaborate report. It is
 very informative!
  See my comment as
 below.




  -----Original Message-----
  From: Crosswalk-help [mailto:[email protected]
  project.org] On Behalf Of John Harrison
  Sent: Monday, October 13, 2014 10:15 AM
  To: 
[email protected]<mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>
  Subject: [Crosswalk-help] stability of
 Crosswalk across
  multiple devices for
  canvas-heavy app

  I recently completed a Cordova app which runs
 stable and
  fast on iOS7 and
  iOS8 devices. It runs in Webview for Android
 devices but is
  slow, so I

 migrated it over to Crosswalk. The results were initially
  promising as
  Crosswalk 8
 ran fast and stable on the tested device.

 However, I found the
  results were different
 on other Android devices. After
  trying 6
 different
  versions of Crosswalk I finally
 released the app using
  Crosswalk
 7.36.154.12 as
  it seemed the most stable on
 the tested devices. However,
  the app is
 still not
  stable on all Android devices I
 have tested on. Below are my
  notes for
 each
  version I tried and the results I
 found on the various
  devices.


  [hmin] The
 work you did is very helpful for us to

 continuously improve Crosswalk. Thanks a lot again!



  The app manipulates multiple Canvas elements
 and relies
  heavily on GPU

 hardware acceleration. I'd love to find a way that it
 might
  be stable on all

 Android 4.x devices using Crosswalk. I'd love some
 advice as
  to what I might

 try next or what tests might be helpful to the Crosswalk
  developers.


 And...I've tried these Crosswalk versions with every GPU
 and
  memory flag
  under the
 sun. Unless I shut off hardware acceleration for
  the canvas
  element or other
 hardware acceleration (which results in

 poor performance)
  the behavior is the
 same:

  6.35.131.13
   - appeared stable with quick test on LG G3
 Android 4.4.2
   - GPU reports only 8MB
 available on Motorola Droid Mini
  Android
 4.4.4
  according to --show-fps-counter. This
 causes poor
  performance as the GPU
  memory needed is often exceeded. Crosswalk
 versions 8,9,10
  do not have
  this problem with this device as these
 versions report over
  100MB of GPU
  memory on this same device.



  [hmin] In Crosswalk 6,
 the max available GPU memory is
  hard-coded
 to 8MB in GpuMemoryManager, so it doesn't reflect
  the real number on the device.  See the code
 
https://github.com/crosswalk-project/chromium-crosswalk/blob/crosswalk-6/35.0.1916.17/content/common/gpu/gpu_memory_manager.cc#L81.
  But from Crosswalk 8, 9, 10, the hard-coded
 number is
  changed to 256MB,

 
https://github.com/crosswalk-project/chromium-crosswalk/blob/crosswalk-9/38.0.2125.23/content/common/gpu/gpu_memory_manager.cc#L104.

  Same as Chromium, Crosswalk
 allows you to force to set the
  available
 gpu memory by passing

 '--force-gpu-mem-available-mb' command line option.
 With
  this option, you can instruct
 Crosswalk to set the total
  amount of memory
 that can be allocated for GPU resources

 when rendering the page. You may want to use this option
 to
  increase the amount of gpu memory to see
 if the performance
  is improved
 accordingly.

  Since you
 are using Cordova-Crosswalk to package an app, the
  usage of command line option is a bit tricky
 if make_apk.py
  script is not used. For your
 information, you can follow the
  following
 instructions to add command line options by

 manual:
  1. Create a new empty file named as
 xwalk-command-line in
  <assets>
 folder;
  2. Add "xwalk
 --force-gpu-mem-available-mb=100' to

 xwalk-command-line file.


 Re-package the app using cordova toolchain, and you will
 get
  the command line option works.

  Testing on Xwalk 7,
 unfortunately this didn't work. I added

 in my xwalk-command-line:
  xwalk
 --force-gpu-mem-available-mb=100 --show-fps-counter

  I know the command line is
 being read because the fps
  counter shows
 (and does not show if I remove the line).

 However the amount of memory reported as MAX still is
 8MB.



 - If wifi/mobile network is not available exhibits
 strange
  erratic behavior in
  the app. This is in spite of the fact that the
 app does not
  use wifi/mobile
  network.



  [hmin] Do you remember the error message?
 Is it saying
  something like
 "application ... server timeout ..."?

  I don't remember the
 error message, but this was on Xwalk 6
  so
 it might not be worth our time since it does not seem a
  problem with later versions. If it is helpful
 to you I can
  migrate back to Xwalk 6 and
 catch the error.


 7.36.154.12 and 7.36.154.13:
   - exact same
 behavior as 6.35.131.13 except:
    - no
 issue with wifi/mobile
    - runs but is not
 stable on LG G3 Android 4.4.2.
  Erratic
 crashes. Android log
  for crash unknown.


  [hmin] If
 you app is using canvas element, and you also turn
  on ignore-gpu-blacklist option, it is very
 possible that the
  app would crash by
 accident since it may encounter a bug in

 gpu driver.

  I tried that.
 The behavior is the same. The only thing that
  makes the app rock-solid with no crashes is
 the command line

 --disable-accelerated-2d-canvas but then the performance
 is
  laggy.

  8.37.189.12, 9.38.208.1, 10.38.219.0
   - app immediately crashes on LG G3 Android
 4.4.2. Android
  log reports GPU
  Parse Error 2.


  [hmin] Maybe it triggers a
 bug in gpu driver if

 ignore-gpu-blacklist.



   - strange delays of up to
 several seconds at a time on x86
  Asus
 ME302
  running Android 4.3. Also is not
 fully stable (sometimes
  crashes at
 erratic
  times. Log unknown. Note: app has
 both x86 and ARM Crosswalk
  so
  Crosswalk is native x86 code, not running in
 ARM emulator.)
   - GPU reports 100MB
 available on Motorola Droid Mini, which
  is
 stable and
  runs fast and well. (Why does
 this same device report only
  8MB available
 on
  Xwalk versions 6 and 7?)


  [hmin] The
 amount reported by show-fps-counter is a number
  hard-coded by Crosswalk (Chromium), it varies
 between
  different versions, see the above
 explanations.
  There are 2 categories showed
 in FPS head-up-display: USED
  and MAX. The
 USED means that the total bytes allocated for
  page rendering, while the MAX means the total
 bytes of GPU
  memory budgets. Is the 100MB
 reported by USED or MAX
  category?

  100MB was in the MAX
 category.

  The app is
 built on Cordova 3.6.3-0.2.13 and uses the

 following plugins:


 org.apache.cordova.console 0.2.7 "Console"
  org.apache.cordova.device 0.2.8
 "Device"
  org.apache.cordova.file
 1.0.1 "File"

 org.apache.cordova.inappbrowser 0.5.2
 "InAppBrowser"

 org.apache.cordova.media 0.2.12 "Media"
  org.apache.cordova.splashscreen 0.3.3
 "Splashscreen"

 org.apache.cordova.statusbar 0.1.7 "StatusBar"

  Thanks in advance for any
 help,

  -John

 _______________________________________________
  Crosswalk-help mailing list

 
[email protected]<mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>
  https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help






_______________________________________________
Crosswalk-help mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help

Reply via email to