#jogamp @ irc.freenode.net - 20131203 05:05:55 (UTC)


20131203 05:05:55 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20131202050555.html
20131203 05:05:55 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20131203050555.html
20131203 07:12:31 * hharrison (~chatzilla@anon) has joined #jogamp
20131203 07:14:43 <hharrison> sgothel: emitAllFileFooters isn't quite what I need, as I need to know what type of excpetion to emit (the unsupported exception type from the cfg)
20131203 07:15:02 <hharrison> No worries though, I'll muddle through
20131203 08:03:17 * hharrison (~chatzilla@anon) Quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0/20131030081700])
20131203 08:39:43 * monsieur_max (~maxime@anon) has joined #jogamp
20131203 08:40:54 <monsieur_max> hi guys
20131203 08:48:16 * eclesia (~husky@anon) Quit (Quit: Leaving.)
20131203 09:16:19 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20131203 09:27:31 * monsieur_max (~maxime@anon) has joined #jogamp
20131203 09:37:20 <monsieur_max> stuff is happening here : http://www.robovm.com :)
20131203 09:55:35 <xranby_ac1001> monsieur_max: hi, robovm can be used for class to native compilation on gnu linux systems as well. this is how a java hello world gets compiled to native code: http://labb.zafena.se/?p=673
20131203 09:56:18 <xranby_ac1001> monsieur_max: GNU GCJ can also be used to do class to native compilation
20131203 09:56:28 <xranby_ac1001> thus they both fill similar nice
20131203 09:56:30 <xranby_ac1001> niche
20131203 09:56:56 <xranby_ac1001> robovm is using the android harmony classes while gnu gcj uses the classpath project classes
20131203 10:01:41 <xranby_ac1001> monsieur_max: i have actually never tested to use robovm to run any of the jogamp examples
20131203 10:06:12 <xranby_ac1001> the main issue i face everytime i think about targeting ios is that there exist no free software toolchain that i can use on linux to compile code for it
20131203 10:07:06 <monsieur_max> ah, crap
20131203 10:07:13 <xranby_ac1001> the two projects: robovm and avian both require the apple tools for deployment
20131203 10:07:41 <xranby_ac1001> so sure if you can accept using the apple toolchains its all possible
20131203 10:09:00 <xranby_ac1001> avian is a jvm designed to work on ios
20131203 10:09:53 <xranby_ac1001> that was able to run some of the jogamp examples when i tested it in the past
20131203 10:10:05 <xranby_ac1001> avian is designed to use classpath or openjdk 7 classes
20131203 10:10:46 <xranby_ac1001> http://oss.readytalk.com/avian/
20131203 10:12:16 <monsieur_max> great, thanks for the info xranby_ac1001
20131203 10:15:42 <xranby_ac1001> monsieur_max: while at it there is some more ways to get things running on ios
20131203 10:16:25 <xranby_ac1001> http://xmlvm.org/overview this can be used to convert java classes -> xml -> Objective-C
20131203 10:16:45 <monsieur_max> i'm not that interested by that now, but it's nice to know that there's always a way to make jogamp and java code to work there
20131203 10:16:59 <xranby_ac1001> thus converting the whole application into something that can be statically compiled for ios using the ios toolchains
20131203 10:18:08 <xranby_ac1001> monsieur_max: the biggest missing part in the puzzle is that someone need to extend NEWT and jogl to support the ios opengl and window initialization
20131203 10:18:30 <xranby_ac1001> writing the small amounts of native code to make it happen
20131203 10:19:01 <monsieur_max> and about hte perfs ?
20131203 10:19:05 <monsieur_max> *the
20131203 10:21:36 <xranby_ac1001> not sure... you have to consider latency as well
20131203 10:22:20 <monsieur_max> latency ?
20131203 10:22:48 <xranby_ac1001> if the garbagecollector freeze your application for more than 16ms you will drop frames in a game
20131203 10:23:41 <xranby_ac1001> thus the best solution may be a realtime vm that have guaranteed garbagecollector runs that can complete in 1-3ms
20131203 10:25:04 <xranby_ac1001> and noone have produced good benchmarks to test which jvm implements the best garbage collector and housekeeping for use by games
20131203 10:25:08 <monsieur_max> yup, but a wel coded game should not have such issues
20131203 10:26:14 <xranby_ac1001> then any jvm will do ;)
20131203 10:26:18 <monsieur_max> you have the same issues on android, well at least older versions. I remember having such issues on android 1.5 / 1.6. GC inducing frame drop
20131203 10:27:55 <monsieur_max> xranby_ac1001: is it ironic ? i can't figure it :)
20131203 10:28:29 <xranby_ac1001> personally i am not that worried about jvm performance . what worry me the most is latency
20131203 10:30:03 <xranby_ac1001> we have demonstrated at several occations that the most simple jvm can run fast using jogamp
20131203 10:30:46 <xranby_ac1001> when people compain about performance they ususally try to use API's that are CPU bound
20131203 10:31:19 <xranby_ac1001> if they made more use of the hardware acceleration provided by the hardware they would easy get 10x speed improvement
20131203 10:33:43 <monsieur_max> xranby_ac1001: which APIs ?
20131203 10:34:33 <xranby_ac1001> for example.. on the rasperry pi the GPU peak at 2600MFlops while its CPU peak at 175MFlops
20131203 10:35:22 <xranby_ac1001> if people try to use swing and awt to render gui's on the Pi it will be slow because they face the 175MFlop computing wall that also limit the fillrate for gui updates
20131203 10:35:53 <xranby_ac1001> while if they use opengl es 1/2 they can offload all the rendering to the gpu at 2600MFlops
20131203 10:36:15 <xranby_ac1001> thus if they stop using API's such as swing that is using the CPU to do the rendering
20131203 10:36:36 <monsieur_max> well, the hard part would be the ui toolkit :)
20131203 10:36:58 <xranby_ac1001> and switch to something that can use the GPU like jogamp newt and opengl es 1/2 then they solve their performance issue
20131203 10:38:09 <xranby_ac1001> yes the ui toolkit is more important for good performance compared to picking a jvm
20131203 10:38:31 <monsieur_max> xranby_ac1001: any plan to bring a ui toolkit in jogamp ?
20131203 10:41:18 <xranby_ac1001> there is graph that will enable resolution independent curves
20131203 10:43:32 <monsieur_max> nice :)
20131203 10:43:48 <monsieur_max> i had to develop my own stuff, but it's quite a pain :(
20131203 10:44:07 <monsieur_max> fortunately, newt handles input pretty well
20131203 10:45:16 <monsieur_max> the first version of my engine was mixing swing customized ui and jogl, but i moved to newt, to have a better fullscreen management and no perf bootleneck
20131203 10:45:27 <xranby_ac1001> jogamps focus will ofc be to empower technology thus make the hardvare accessible
20131203 10:47:10 <xranby_ac1001> with aim to bee a good foundation to build engines on top
20131203 10:47:28 <monsieur_max> yep true
20131203 10:47:49 <monsieur_max> it's off boundaries then
20131203 10:48:07 <xranby_ac1001> graph is thus special case since it empowers programmers with access to curves on the gpu where we provide the only patent free implementation
20131203 10:53:34 <xranby_ac1001> good to hear that newt solved your performance issues :)
20131203 11:08:40 <monsieur_max> well, it mostly solved the fullscreen issue at the time :)
20131203 11:09:04 <monsieur_max> and it helped to complet the no-awt-in-my-game goal
20131203 11:09:10 <monsieur_max> *complete
20131203 12:03:17 * bbbruce (~bx@anon) Quit (Ping timeout: 248 seconds)
20131203 12:49:55 * bbbruce (~bx@anon) has joined #jogamp
20131203 13:35:10 * eclesia (~husky@anon) has joined #jogamp
20131203 14:34:15 <monsieur_max> intellij 13 is released, yeepee
20131203 14:34:25 <xranby_ac1001> monsieur_max: i looked a bit more on how the robovm java to objectc bridge work... it basically work like this:
20131203 14:36:03 <xranby_ac1001> robovm contains several java classes with method names that correspond to object c classes found on ios.. these are manually created. the classes got annotations attached that describet which object c object they map
20131203 14:36:53 <xranby_ac1001> robovm then got a java to llvm ir compiler
20131203 14:38:07 <xranby_ac1001> the robovm compiler uses the annotations to generate correct llvm ir for the native calls against the object c classes
20131203 14:38:30 <xranby_ac1001> thus all java code gets converted into llvm it
20131203 14:38:31 <xranby_ac1001> ir
20131203 14:38:49 <monsieur_max> bbetter not use too complex stuff i guess
20131203 14:39:09 <xranby_ac1001> then finally robovm is able to use the llvm jit or llvm static compiler in order to generate the final binary
20131203 14:41:52 <xranby_ac1001> yes.. the reason why this aproach work is because all java logic and native calls can be described using llvm ir
20131203 14:43:52 <xranby_ac1001> thus the way this object c bridge from robovm is designed prevents it from getting reused by orther jvms
20131203 14:50:06 <monsieur_max> ok :) i understood 1/10th but it's still ok
20131203 16:36:52 <sgothel> Thank you Xerxes for the detailed update/info about RoboVM
20131203 16:58:51 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20131203 17:15:08 * eclesia (~husky@anon) has left #jogamp
20131203 17:51:15 * monsieur_max (~maxime@anon) has joined #jogamp
20131203 18:19:20 <xranby_ac1001> sgothel: although i think the idea to use annotations on java classes may be reused by a java classloader that can be used to map "link" namespaces across java packages
20131203 18:20:17 <xranby_ac1001> sgothel: it might be good to have a classloader that can say map a third party library into the jogamp namespace in order to preserve the imported code
20131203 18:20:41 <xranby_ac1001> for example instead of copying all code from jpng into jogamp
20131203 18:21:14 <xranby_ac1001> it would be possible to use annotations and a special classloader to map a hidden and bundled jpng into the jogamp namespace without touching the upstream code
20131203 18:22:02 <xranby_ac1001> maybe too much work,, i dont know :)
20131203 18:23:12 <xranby_ac1001> sgothel: i belive the ffmpegmegiaplayer implementation needs improvements in order to decode and queue up audio frames for applications that never request next video frame
20131203 18:24:29 <xranby_ac1001> i can file a bug if you want... and add a flag to the MediaCube test that make it skip calling getNextTexture(gl)
20131203 18:24:51 <xranby_ac1001> in order to test usage of the mediaplayer for audio only use
20131203 18:27:41 <sgothel> hmmm .. right, since we do things multithreaded and actually support audio only .. valid point, pls go ahead
20131203 18:43:38 <xranby_ac1001> i have filed a bug https://jogamp.org/bugzilla/show_bug.cgi?id=918
20131203 19:06:18 * [Mike] (~Mike]@anon) has joined #jogamp
20131203 19:14:39 <sgothel> @Xerxes: we have those '-aid <int>' and '-vid <int>' commandline flags
20131203 19:44:23 <xranby_ac1001> thank you .. i try reuse the -vid flag
20131203 19:45:13 <sgothel> -2 = OFF, -1 AUTO .. etc, pls check API doc
20131203 20:09:15 <xranby_ac1001> sgothel: GLMediaPlayer.STREAM_ID_NONE == OFF == -2
20131203 20:12:46 <sgothel> right .. AUTO / UNDEF -1
20131203 20:12:57 <sgothel> 0 is a valid stream-id
20131203 20:18:52 <xranby_ac1001> i am back to using my rusty old ac100 at travels because... the cromebook got used by wife and kids hmm :)
20131203 20:19:23 <xranby_ac1001> i can reproduce the audio only issue using the code the user posted at the forum..
20131203 20:19:47 <xranby_ac1001> rebuilding jogl takes time on this machine.. in order to reproduce it using the av demos
20131203 20:20:31 <xranby_ac1001> the good outcome is.. that if things work smooth on this device... then it work smooth on .. all? .. devices :)
20131203 20:21:28 <sgothel> re: cromebook - your 'readme' ?
20131203 20:21:48 <sgothel> i.e. then I can install stuff .. as well following your recipe .. :)
20131203 20:22:00 <xranby_ac1001> never managed to get accelerated graphics working under the dual linux setup :(
20131203 20:22:23 <xranby_ac1001> thus i dont have any good tutorial yet
20131203 20:22:51 <xranby_ac1001> i probably have to get one more in order to experiment
20131203 20:23:04 <sgothel> thought you had some linux within chromebook thingy .. ?
20131203 20:23:18 <xranby_ac1001> yes but the linux was cpu only
20131203 20:23:32 <xranby_ac1001> thus running openoffice and working on the slides was ok
20131203 20:23:46 <sgothel> ah
20131203 20:23:50 <xranby_ac1001> we did not use it for the demos at siggraph
20131203 20:31:06 <xranby_ac1001> sgothel: i can reproduce the issue with MovieSimple
20131203 20:31:16 <xranby_ac1001> passing -vid -1 work
20131203 20:31:22 <xranby_ac1001> passing -vid -2 fail
20131203 20:31:28 <xranby_ac1001> -1 == AUTO
20131203 20:31:37 <xranby_ac1001> in combination with a mp3
20131203 20:31:41 <sgothel> so w/o picture - it fails .. hmm
20131203 20:31:59 <sgothel> yeah .. we will have to digg into it ..
20131203 20:32:02 <xranby_ac1001> using the MovieSimple from the last 2.1.3 rc
20131203 20:41:03 <xranby_ac1001> updated the bugreport.. updated title to match symptom
20131203 20:41:29 <sgothel> you wanne try a fix ?
20131203 20:41:51 <xranby_ac1001> sure
20131203 20:41:54 <xranby_ac1001> you have a fix?
20131203 20:42:23 <sgothel> not yet ..
20131203 20:42:50 <sgothel> will have dinner (1-2 hr break .. may have a look afterwards - but will wait until you give me the token/questions)
20131203 20:43:31 <xranby_ac1001> token/questions?
20131203 20:43:33 <xranby_ac1001> Reproducer: java -cp jogamp-all-platforms/jar/jogl-test.jar:jogamp-all-platforms/jar/gluegen-rt.jar:jogamp-all-platforms/jar/jogl-all.jar:jogamp-all-platforms/jar/joal.jar com.jogamp.opengl.test.junit.jogl.demos.es2.av.MovieSimple -vid -2
20131203 20:43:54 <xranby_ac1001> it is possible to reproduce the issue with audio + video streams as well
20131203 20:43:59 <sgothel> the token .. i.e. don't want to do things in parallel
20131203 20:44:06 <sgothel> oh
20131203 20:44:22 <sgothel> what do you mean ?
20131203 20:44:39 <xranby_ac1001> i realised my first description was moot since the StreamWorked should call getNextFrameImpl periodically
20131203 20:44:41 <sgothel> w/ default args ? shall play a+v
20131203 20:44:48 <sgothel> yes
20131203 20:44:50 <xranby_ac1001> big buck bunny
20131203 20:44:58 <xranby_ac1001> no audio is heard
20131203 20:45:02 <xranby_ac1001> if you pass -vid -2
20131203 20:45:35 <sgothel> hmm .. ok, that bug I got from your description
20131203 20:45:49 <xranby_ac1001> thus you can reproduce the issue with both audio only streams such as a mp3 and audio + video streams such as the big buck bunny movie
20131203 20:46:31 <sgothel> oh .. I see, it's regardless whether the stream has video
20131203 20:46:32 <xranby_ac1001> i will drink a glass of wine now... play some cards pass a token
20131203 20:46:40 <sgothel> haha :)
20131203 20:47:00 <sgothel> I thought you want to keep the token to fix it .. but thats ok :)
20131203 20:47:35 <xranby_ac1001> i am happy i was able to reproduce it using the jogl junit tests on this machine
20131203 20:47:42 <xranby_ac1001> that was the first step
20131203 20:48:08 <xranby_ac1001> as it turned out no new code needed to reproduce it
20131203 20:48:09 <sgothel> I am sure it's reproducible on any machine [or better I wish]
20131203 20:48:29 <xranby_ac1001> yes it is reproducible using any ffmpegmediaplayer capable machine
20131203 22:20:01 * ___m___ (~Mike]@anon) has joined #jogamp
20131203 22:22:52 * [Mike] (~Mike]@anon) Quit (Ping timeout: 260 seconds)
20131203 22:38:36 * ___m___ is now known as [Mike]
20131203 23:01:24 * monsieur_max (~maxime@anon) has left #jogamp
20131203 23:12:42 * void256 (~void@anon) has joined #jogamp
20131203 23:22:10 * xranby_ac1001 (~xranby@anon) Quit (Remote host closed the connection)
20131203 23:31:59 * void256_ (~void@anon) has joined #jogamp
20131203 23:33:57 * void256 (~void@anon) Quit (Ping timeout: 248 seconds)
20131203 23:34:09 * void256_ is now known as void256
20131203 23:39:58 * void256 (~void@anon) Quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0.1/20131112160018])
20131204 04:54:10 * [Mike] (~Mike]@anon) Quit (Read error: Connection reset by peer)
20131204 05:05:56 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20131204050556.html