Re: Run Cairo with OpenGL ES 2 backend on Android

Ngoc Dao <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAHqXiK=8OkoJdcA6js4PvZLG_XJOe_QPE4XoBR5UFFqMdqN6_w@mail.gmail.com>
Hi Henry,

How to set EGL_SAMPLES and EGL_SAMPLE_BUFFERS?
Is it OK to set CAIRO_GL_COMPOSITOR like this?
putenv("CAIRO_GL_COMPOSITOR=msaa");

Attached is the error log.


On Tue, Jun 25, 2013 at 11:22 PM, Henry (Yu) Song - SISA <
[email protected]> wrote:

>  Hi, Ngoc****
>
> ** **
>
> CAIRO_GL_COMPOSITOR=msaa is not a compile time setting.  At runtime, cairo
> checks this setting.****
>
> ** **
>
> Regarding to crash, can you send log?****
>
> ** **
>
> Henry****
>
> ** **
>
> *From:* Ngoc Dao [mailto:[email protected]]
> *Sent:* Tuesday, June 25, 2013 2:18 AM
> *To:* Henry (Yu) Song - SISA
> *Cc:* [email protected]
> *Subject:* Re: [cairo] Run Cairo with OpenGL ES 2 backend on Android****
>
> ** **
>
> Hi Henry,****
>
> Thanks for the info.
>
> I use Samsung Galaxy S3 (Android 4.0.2) and S3 alpha (Android 4.1.1).****
>
>
> I updated my code as you instructed:
>
> CAIRO_GL_COMPOSITOR=msaa:
>
> https://github.com/ngocdaothanh/jsg/blob/cairogles/android/jni/cairo.mk#L149
> ****
>
>
> EGL init:
>
> https://github.com/ngocdaothanh/jsg/blob/cairogles/android/jni/jsg/jsg.cpp#L373
> ****
>
> Could you please check the code above to see if there's anything wrong?***
> *
>
> It still crashes on S3 and slow (and nothing is shown on the screen) on S3
> alpha.****
>
> ** **
>
> Regards,
> Ngoc****
>
> ** **
>
> On Tue, Jun 25, 2013 at 1:29 AM, Henry (Yu) Song - SISA <
> [email protected]> wrote:****
>
> Hi, Ngoc****
>
>  ****
>
> Which cairo git did you get cairogles from?  At this moment, there are
> three gl compositors in cairo. ****
>
>  ****
>
> I don’t have android to test.  If you give me some more info, I might be
> able to help you.****
>
>  ****
>
> 1.       What is the GL driver on your android phone?  ****
>
> 2.       Does it support GL_IMG_multisampled_render_to_texture or
> GL_EXT_multisampled_render_to_texture extensions?****
>
> 3.       When you initialize EGL, do you use EGL_SAMPLES and
> EGL_SAMPLE_BUFFERS in configuration?****
>
>  ****
>
> The reason I ask is that if you enable/or your driver supports MSAA, there
> is a faster GL compositor in cairo, called msaa compositor.  The msaa
> compositor is being upstreamed at this moment, but not all of it has been
> upstreamed, about 20 patches left.   ****
>
>  ****
>
> If you want to test with msaa compositor, please visit our branch in
> github - https://github.com/SRA-SiliconValley/cairogles, please pull
> release branch, it is synced with cairo-1.12.14. ****
>
>  ****
>
> When you run cairo, set env CAIRO_GL_COMPOSITOR=msaa, in addition, if your
> app is single-threaded or you have dedicated thread for GL rendering,
> please use cairo_gl_device_set_thread_aware (device, FALSE) to avoid
> unnecessary context switch.****
>
>  ****
>
> If you want to try shadow/blur in cairo, please pull filters-wip branch.
> We have implemented Gaussian filter and drop shadow in that branch for both
> image and gl backends as well.  Tests show our GL backend blur/shadow
> performance is very good, beat skia’s drawBlurLooper hands-down.
> Image-backend performance is not near as good as skia, due to slow
> performance on pixman bilinear sampling, at least on PC.  If you have idea
> to improve, please feel free comment or send patches.****
>
>  ****
>
> Henry****
>
>  ****
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Ngoc
> Dao
> *Sent:* Wednesday, June 19, 2013 11:23 PM
> *To:* [email protected]
> *Subject:* [cairo] Run Cairo with OpenGL ES 2 backend on Android****
>
>  ****
>
> Hi.****
>
>  ****
>
> Have anyone tried to run Cairo with OpenGL ES 2 backend on Android? Is
> there any crash? How's the speed?****
>
>
> I've created a project here (branch master: image backend, cairogles
> branch: OpenGL ES 2 backend):
> https://github.com/ngocdaothanh/jsg****
>
> Some basic results from the project above:
>
> OpenGL ES 2 backend:****
>
> * Crashes on Android 2.3, 4.0.2 etc. with shader compilation problem****
>
> * Doesn't crash on Android 4.1.1, but very very slow, 0.5 FPS/s****
>
> Image backend is stable but slow, 12 FPS/s.****
>
> Ngoc****
>
> ** **
>

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
log.txt (text/plain, 9.3 KB)
07-03 20:40:11.970: A/libc(25953): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
07-03 20:40:12.098: D/dalvikvm(722): GC_CONCURRENT freed 1467K, 16% free 13592K/16099K, paused 2ms+3ms
07-03 20:40:12.492: I/DEBUG(21988): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-03 20:40:12.492: I/DEBUG(21988): Build fingerprint: 'DOCOMO/F10D/F10D:4.0.3/V20R47F/F10D.20121022.165258:user/release-keys'
07-03 20:40:12.492: I/DEBUG(21988): pid: 25953, tid: 25970  >>> com.example.native_activity <<<
07-03 20:40:12.492: I/DEBUG(21988): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
07-03 20:40:12.493: I/DEBUG(21988):  r0 00008b31  r1 00bd6868  r2 00008b31  r3 00000000
07-03 20:40:12.493: I/DEBUG(21988):  r4 00bdb2dc  r5 00bd6868  r6 5bc1d8f4  r7 00000000
07-03 20:40:12.493: I/DEBUG(21988):  r8 00000000  r9 00000014  10 00000000  fp 00000000
07-03 20:40:12.493: I/DEBUG(21988):  ip 00000000  sp 5bc1d8f0  lr 5b5c73c1  pc 00000000  cpsr 00000010
07-03 20:40:12.493: I/DEBUG(21988):  d0  497ffff8000fffff  d1  447a0000497ffff0
07-03 20:40:12.493: I/DEBUG(21988):  d2  40dfae143f800000  d3  3f00000000000000
07-03 20:40:12.493: I/DEBUG(21988):  d4  3f80000000000000  d5  0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d6  3f00000000000000  d7  3efffff03efffff0
07-03 20:40:12.494: I/DEBUG(21988):  d8  0000000000000000  d9  0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d10 0000000000000000  d11 0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d12 0000000000000000  d13 0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d14 0000000000000000  d15 0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d16 00000000002ee55c  d17 bff0000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d18 3ff0000000000000  d19 0000000000000000
07-03 20:40:12.494: I/DEBUG(21988):  d20 0000000000000000  d21 0000000000000000
07-03 20:40:12.495: I/DEBUG(21988):  d22 3ff0000000000000  d23 0000000000000000
07-03 20:40:12.495: I/DEBUG(21988):  d24 3ff0000000000000  d25 0000000000000000
07-03 20:40:12.495: I/DEBUG(21988):  d26 0000000000000000  d27 0000000000000000
07-03 20:40:12.495: I/DEBUG(21988):  d28 0003000000030000  d29 0003000000030000
07-03 20:40:12.495: I/DEBUG(21988):  d30 0001000000010000  d31 0001000000010000
07-03 20:40:12.496: I/DEBUG(21988):  scr 80000013
07-03 20:40:12.682: I/DEBUG(21988):          #00  pc 00000000  
07-03 20:40:12.683: I/DEBUG(21988):          #01  pc 000a53be  /data/data/com.example.native_activity/lib/libjsg.so
07-03 20:40:12.683: I/DEBUG(21988):          #02  pc 000a55d6  /data/data/com.example.native_activity/lib/libjsg.so
07-03 20:40:12.684: I/DEBUG(21988):          #03  pc 000a586c  /data/data/com.example.native_activity/lib/libjsg.so
07-03 20:40:12.685: I/DEBUG(21988):          #04  pc 00058600  /data/data/com.example.native_activity/lib/libjsg.so
07-03 20:40:12.685: I/DEBUG(21988):          #05  pc 00056658  /data/data/com.example.native_activity/lib/libjsg.so (cairo_egl_device_create)
07-03 20:40:12.686: I/DEBUG(21988):          #06  pc 0004d7e4  /data/data/com.example.native_activity/lib/libjsg.so
07-03 20:40:12.687: I/DEBUG(21988):          #07  pc 00012f7c  /system/lib/libc.so (__thread_entry)
07-03 20:40:12.687: I/DEBUG(21988):          #08  pc 00012ad0  /system/lib/libc.so (pthread_create)
07-03 20:40:12.688: I/DEBUG(21988): mem near R0:
07-03 20:40:12.688: I/DEBUG(21988): 00008b10 e28fc600 e28cca01 e5bcf658 e28fc600  ........X.......
07-03 20:40:12.688: I/DEBUG(21988): 00008b20 e28cca01 e5bcf650 e28fc600 e28cca01  ....P...........
07-03 20:40:12.689: I/DEBUG(21988): 00008b30 e5bcf648 e28fc600 e28cca01 e5bcf640  H...........@...
07-03 20:40:12.689: I/DEBUG(21988): 00008b40 e28fc600 e28cca01 e5bcf638 e28fc600  ........8.......
07-03 20:40:12.689: I/DEBUG(21988): 00008b50 e28cca01 e5bcf630 e28fc600 e28cca01  ....0...........
07-03 20:40:12.689: I/DEBUG(21988): mem near R1:
07-03 20:40:12.690: I/DEBUG(21988): 00bd6848 00000000 00000000 00000000 00000de1  ................
07-03 20:40:12.690: I/DEBUG(21988): 00bd6858 00000001 00000000 00000000 00000001  ................
07-03 20:40:12.691: I/DEBUG(21988): 00bd6868 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.691: I/DEBUG(21988): 00bd6878 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.691: I/DEBUG(21988): 00bd6888 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.691: I/DEBUG(21988): mem near R2:
07-03 20:40:12.692: I/DEBUG(21988): 00008b10 e28fc600 e28cca01 e5bcf658 e28fc600  ........X.......
07-03 20:40:12.692: I/DEBUG(21988): 00008b20 e28cca01 e5bcf650 e28fc600 e28cca01  ....P...........
07-03 20:40:12.692: I/DEBUG(21988): 00008b30 e5bcf648 e28fc600 e28cca01 e5bcf640  H...........@...
07-03 20:40:12.693: I/DEBUG(21988): 00008b40 e28fc600 e28cca01 e5bcf638 e28fc600  ........8.......
07-03 20:40:12.693: I/DEBUG(21988): 00008b50 e28cca01 e5bcf630 e28fc600 e28cca01  ....0...........
07-03 20:40:12.694: I/DEBUG(21988): mem near R4:
07-03 20:40:12.694: I/DEBUG(21988): 00bdb2bc 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.694: I/DEBUG(21988): 00bdb2cc 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.694: I/DEBUG(21988): 00bdb2dc 00000000 00000000 00000000 5c4d302c  ............,0M\
07-03 20:40:12.694: I/DEBUG(21988): 00bdb2ec 5c4d41e4 00000000 00000000 00000000  .AM\............
07-03 20:40:12.695: I/DEBUG(21988): 00bdb2fc 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.695: I/DEBUG(21988): mem near R5:
07-03 20:40:12.695: I/DEBUG(21988): 00bd6848 00000000 00000000 00000000 00000de1  ................
07-03 20:40:12.695: I/DEBUG(21988): 00bd6858 00000001 00000000 00000000 00000001  ................
07-03 20:40:12.695: I/DEBUG(21988): 00bd6868 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.696: I/DEBUG(21988): 00bd6878 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.696: I/DEBUG(21988): 00bd6888 00000000 00000000 00000000 00000000  ................
07-03 20:40:12.696: I/DEBUG(21988): mem near R6:
07-03 20:40:12.696: I/DEBUG(21988): 5bc1d8d4 4004c554 00a8e920 00000014 00000000  T..@ ...........
07-03 20:40:12.696: I/DEBUG(21988): 5bc1d8e4 40019bd9 df0027ad 00000000 00a8e920  ...@.'...... ...
07-03 20:40:12.697: I/DEBUG(21988): 5bc1d8f4 00af4488 00000000 00000014 00000000  .D..............
07-03 20:40:12.697: I/DEBUG(21988): 5bc1d904 4001a23b 00a8e920 00bda868 00bd6818  ;..@ ...h....h..
07-03 20:40:12.697: I/DEBUG(21988): 5bc1d914 00af4488 00000000 5b5c75db 00a8e7d0  .D.......u\[....
07-03 20:40:12.697: I/DEBUG(21988): mem near SP:
07-03 20:40:12.697: I/DEBUG(21988): 5bc1d8d0 00000250 4004c554 00a8e920 00000014  P...T..@ .......
07-03 20:40:12.698: I/DEBUG(21988): 5bc1d8e0 00000000 40019bd9 df0027ad 00000000  .......@.'......
07-03 20:40:12.698: I/DEBUG(21988): 5bc1d8f0 00a8e920 00af4488 00000000 00000014   ....D..........
07-03 20:40:12.698: I/DEBUG(21988): 5bc1d900 00000000 4001a23b 00a8e920 00bda868  ....;..@ ...h...
07-03 20:40:12.698: I/DEBUG(21988): 5bc1d910 00bd6818 00af4488 00000000 5b5c75db  .h...D.......u\[
07-03 20:40:12.698: I/DEBUG(21988): mem near LR:
07-03 20:40:12.699: I/DEBUG(21988): 5b5c73a0 003aec68 003aeedc f500b5f0 b0874494  h.:...:......D..
07-03 20:40:12.699: I/DEBUG(21988): 5b5c73b0 ae0634c4 460d4610 3d14f846 47986963  .4...F.FF..=ci.G
07-03 20:40:12.699: I/DEBUG(21988): 5b5c73c0 21014632 60282300 47b069a6 69e36828  2F.!.#(`.i.G(h.i
07-03 20:40:12.699: I/DEBUG(21988): 5b5c73d0 68284798 f6486a23 aa033181 9e034798  .G(h#jH..1...G..
07-03 20:40:12.700: I/DEBUG(21988): 5b5c73e0 b007b10e 6828bdf0 3184f648 aa046a23  ......(hH..1#j..
07-03 20:40:12.700: I/DEBUG(21988): stack:
07-03 20:40:12.700: I/DEBUG(21988):     5bc1d8b0  00000000  
07-03 20:40:12.700: I/DEBUG(21988):     5bc1d8b4  40018d75  /system/lib/libc.so
07-03 20:40:12.700: I/DEBUG(21988):     5bc1d8b8  00a8e948  [heap]
07-03 20:40:12.701: I/DEBUG(21988):     5bc1d8bc  00a8eb50  [heap]
07-03 20:40:12.701: I/DEBUG(21988):     5bc1d8c0  00000220  
07-03 20:40:12.701: I/DEBUG(21988):     5bc1d8c4  4004c554  
07-03 20:40:12.701: I/DEBUG(21988):     5bc1d8c8  00a8e918  [heap]
07-03 20:40:12.701: I/DEBUG(21988):     5bc1d8cc  00a8e948  [heap]
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8d0  00000250  
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8d4  4004c554  
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8d8  00a8e920  [heap]
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8dc  00000014  
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8e0  00000000  
07-03 20:40:12.702: I/DEBUG(21988):     5bc1d8e4  40019bd9  /system/lib/libc.so
07-03 20:40:12.703: I/DEBUG(21988):     5bc1d8e8  df0027ad  
07-03 20:40:12.703: I/DEBUG(21988):     5bc1d8ec  00000000  
07-03 20:40:12.703: I/DEBUG(21988): #01 5bc1d8f0  00a8e920  [heap]
07-03 20:40:12.703: I/DEBUG(21988):     5bc1d8f4  00af4488  [heap]
07-03 20:40:12.703: I/DEBUG(21988):     5bc1d8f8  00000000  
07-03 20:40:12.704: I/DEBUG(21988):     5bc1d8fc  00000014  
07-03 20:40:12.704: I/DEBUG(21988):     5bc1d900  00000000  
07-03 20:40:12.704: I/DEBUG(21988):     5bc1d904  4001a23b  /system/lib/libc.so
07-03 20:40:12.704: I/DEBUG(21988):     5bc1d908  00a8e920  [heap]
07-03 20:40:12.704: I/DEBUG(21988):     5bc1d90c  00bda868  [heap]
07-03 20:40:12.705: I/DEBUG(21988):     5bc1d910  00bd6818  [heap]
07-03 20:40:12.705: I/DEBUG(21988):     5bc1d914  00af4488  [heap]
07-03 20:40:12.705: I/DEBUG(21988):     5bc1d918  00000000  
07-03 20:40:12.705: I/DEBUG(21988):     5bc1d91c  5b5c75db  /data/data/com.example.native_activity/lib/libjsg.so
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.