#jogamp @ irc.freenode.net - 20150720 05:05:24 (UTC)


20150720 05:05:24 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20150719050524.html
20150720 05:05:24 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20150720050524.html
20150720 05:06:40 * bigpet (uid25664@anon) has joined #jogamp
20150720 05:17:24 * bigpet (uid25664@anon) Quit (Read error: Connection timed out)
20150720 05:17:50 * bigpet (uid25664@anon) has joined #jogamp
20150720 05:35:24 * bigpet (uid25664@anon) Quit (Ping timeout: 246 seconds)
20150720 05:47:40 * bigpet (uid25664@anon) has joined #jogamp
20150720 06:12:35 * monsieur_max (~maxime@anon) has joined #jogamp
20150720 06:33:09 * elect (~elect@anon) has joined #jogamp
20150720 06:33:16 <elect> hi
20150720 07:31:42 * bigpet (uid25664@anon) Quit (Ping timeout: 252 seconds)
20150720 07:38:09 * eclesia (~husky@anon) has joined #jogamp
20150720 07:38:21 <eclesia> good morning
20150720 07:42:30 * eclesia (~husky@anon) Quit (Ping timeout: 244 seconds)
20150720 07:42:51 * eclesia (~husky@anon) has joined #jogamp
20150720 07:54:49 * bigpet (uid25664@anon) has joined #jogamp
20150720 08:26:59 <elect> eclesia,
20150720 08:27:26 <elect> I admit, I was scared ^^
20150720 08:27:28 <elect> :D
20150720 08:27:52 <elect> no, I tried to load a dx10 dds image
20150720 08:28:14 <elect> I spent a couple one hour before finding out it is not yet supported >.>
20150720 09:22:17 <elect> sgothel, I read the matrix part
20150720 09:22:52 <elect> why dont we simply integrate ejml inside jogl?
20150720 09:53:03 <xranby> elect: imho ejml sounds like something you may need if you build your own 3d engine on top of jogl.. but i cant see why it is a mandatory requirement to have inside jogl
20150720 09:55:48 <xranby> http://lessthanoptimal.github.io/Java-Matrix-Benchmark/ <- maybe usefull to actually measure the performance of various java matrix librarys
20150720 09:56:29 <xranby> try run it on your machine and tell which matrix library really is teh fastest
20150720 10:15:39 * rmk0 (~rmk0@anon) Quit (Quit: leaving)
20150720 10:15:58 * rmk0 (~rmk0@anon) has joined #jogamp
20150720 10:15:58 * rmk0 (~rmk0@anon) Quit (Changing host)
20150720 10:15:58 * rmk0 (~rmk0@anon) has joined #jogamp
20150720 10:43:59 * hija (~hija@anon) has joined #jogamp
20150720 11:10:46 <elect> I never said it is a mandatory requirement
20150720 11:10:51 <elect> xranby,
20150720 11:10:59 <elect> I saw the matrix utils of jogl
20150720 11:11:36 <elect> so instead spending time & effort on that side too, we could just include ejml inside
20150720 11:11:43 <elect> just a tip
20150720 11:12:38 <monsieur_max> elect: i remembered investigating ejml, did not quite remember why i did not choose it, maybe performances ?
20150720 11:12:46 <elect> http://lessthanoptimal.github.io/Java-Matrix-Benchmark/runtime/2013_10_Corei7v2600/
20150720 11:13:13 <elect> look at the initial "Matrix Size"
20150720 11:13:27 <elect> for 3-4, ejml is always the first one
20150720 11:13:37 <sgothel> our math code and 'API' might look inconvenient, however, we don't waste resources w/ OO objects
20150720 11:13:47 <xranby> and if you compare this with the one we have in jogamp ?
20150720 11:13:59 <sgothel> so its a plain float array based rudimentary helper
20150720 11:14:21 <sgothel> we discussed this w/ Harvey and others a while ago ..
20150720 11:14:22 <monsieur_max> sgothel: i did something similar :)
20150720 11:14:59 <sgothel> bottom line: we can enhance our math stuff (functionality and performance) .. but please don't introduce overhead via OO 'flying objects' :)
20150720 11:15:07 <elect> xranby, it could be interesting
20150720 11:15:12 <sgothel> also - we do have unit tests
20150720 11:15:53 <sgothel> in short: there must be a use-case to include things into JOGL itself.
20150720 11:16:14 <elect> sgothel, OO flying objects are going to be included in a project anyway
20150720 11:16:27 <elect> and if jogl offers them directly, it is easier for the user
20150720 11:16:28 <sgothel> not in renderer we implement
20150720 11:16:39 <sgothel> that is not a use case, sorry
20150720 11:17:09 <sgothel> i.e. renderer I use/write do _not_ include temporary GC for each rendered frame
20150720 11:17:44 <sgothel> and this is a strong focus - everybody should focus on, i.e. reduce GC in animation ..
20150720 11:17:55 <elect> where I can take a look to this renderer?
20150720 11:18:22 <sgothel> well .. one is proprietary .. one is in JOGL .. graph ..and all the unit tests
20150720 11:19:28 <sgothel> but I guess it is clear that you don't want to have hundreds of vec* mat* objects on your GC for each frame
20150720 11:19:59 <sgothel> hence our [math] API loops-through the 'float[] m, int m_offset' stuff
20150720 11:20:41 <elect> if you design your sceneGraph carefully you wont have
20150720 11:20:46 <eclesia> elect: could you send me the dx10 image ? I'll see this evening if I can read it (and improve my reader if it's not the case)
20150720 11:20:47 <sgothel> just compare the footprint of Float and float, List<Float> and float[] ..
20150720 11:20:51 <elect> this is what I have in mind
20150720 11:21:53 <elect> eclesia, https://github.com/g-truc/ogl-samples/blob/master/data/kueken7_rgba8_srgb.dds
20150720 11:22:12 <eclesia> thx
20150720 11:22:16 <elect> :)
20150720 11:24:11 <elect> sgothel, the renderer unit tests are those in com.jogamp.opengl.test.junit.graph.demos?
20150720 11:31:04 <sgothel> yes .. and the other unit tests .. nothing really to see there, but they shall follow the idea of not swamping the GC
20150720 11:32:37 <xranby> elect: cd jogamp-all-platforms/jar
20150720 11:32:38 <xranby> java -cp jogl-test.jar:joal.jar:jogl-all.jar:gluegen-rt.jar com.jogamp.opengl.test.junit.graph.demos.GPUUISceneNewtDemo
20150720 11:33:34 <xranby> press teh disable vsync and it runs at 300fps on my low end GPU
20150720 11:38:51 <xranby> i consider it an extremely cool demo, that demonstrate gpu rendered curves for all the truetype fonts using the jogamp graph api
20150720 11:46:31 <xranby> my low en dektop gpu is a GL610 http://www.videocardbenchmark.net/gpu.php?gpu=GeForce+GT+610
20150720 11:46:37 <xranby> GT 610
20150720 11:46:41 <elect> ah
20150720 11:52:16 * hija (~hija@anon) Quit (Quit: hija)
20150720 11:54:49 <elect> xranby, it says com.jogamp.opengl.test.junit.graph.demos.GPUUISceneNewDemo was not found or loaded
20150720 11:54:54 <elect> ps: im on win now
20150720 11:55:27 <xranby> i never understood why windows uses a different syntax to define classpath
20150720 11:55:52 <eclesia> would be too easy otherwise
20150720 11:56:26 <xranby> i think you have to use ; instead of :
20150720 11:56:52 <elect> ok
20150720 11:57:28 <eclesia> elect: File.pathSeparatorChar
20150720 11:58:17 <xranby> since it is an argument passed to java.. any sane person would have made the syntax identical ona ll paltforms
20150720 11:58:42 <xranby> but due to some unknown reason... it is as it is
20150720 11:59:20 <elect> I get even more error
20150720 11:59:24 <elect> and the java help
20150720 12:00:46 <elect> it cant find any of the jar
20150720 12:00:46 <elect> ..
20150720 12:02:04 <elect> it seems it is not ;
20150720 12:02:26 <elect> it complains it cant find any libs beyond the first ;
20150720 12:09:31 <elect> PS D:\Downloads\jogamp-all-platforms\jogamp-all-platforms\jar> java -cp "jogl-test.jar;joal.jar;jogl-all.jar;gluegen-rt.
20150720 12:09:31 <elect> jar;" com.jogamp.opengl.test.junit.graph.demos.GPUUISceneNewtDemo
20150720 12:09:39 <elect> this worked, xranby
20150720 12:11:30 <elect> sgothel, let me get it, when should the GC run?
20150720 12:16:53 <sgothel> that is an open question .. i.e. it must run sometimes .. but shall not disrupt fluent animation
20150720 12:17:20 <sgothel> sadly we cannot control the GC .. there are projects (were mobile projects) where one could control the GC fina grained
20150720 12:17:23 <sgothel> *fine*
20150720 12:17:50 <sgothel> i.e. if you hardly get 60fpd .. 16ms duration, even a split ms can ruin it
20150720 12:18:22 <sgothel> hence one might want to use pools .. and allocate things upfront (like in early embedded days)
20150720 12:19:10 <sgothel> so .. 'be resource aware' even on big machines
20150720 12:19:45 <elect> so, basically you say you can control the GC action, that is you are sure it doesnt run since you dont (re)create any OO during display()?
20150720 12:21:43 <sgothel> no, I am not sure - but at least I don't trigger a GC while swamping its heap/pool
20150720 12:21:57 <sgothel> so chances are good .. that GC won't disrupt
20150720 12:22:05 <elect> ok, so let's say, you are reducing the possibility it runs
20150720 12:22:30 <sgothel> for example .. graph on low performance Android/ARM .. after font data has been preprocessed (curves .. etc), rendering is fluent
20150720 12:22:46 <sgothel> but the preprocessing took not only time but also triggered tons of GC
20150720 12:23:17 <elect> this is a hot tematic, do you have any link where I can see how much a GC can impact on perfs?
20150720 12:24:04 <elect> because by my point of view, GL has its own thread, GC as well
20150720 12:24:18 <sgothel> sorry only from my experience .. not links here. but you can see it w/ tools .. jvisualvm for example
20150720 12:24:26 <elect> in theory if the GC doesnt cause the GPU to stall, it shouldnt be a big issue
20150720 12:24:44 <sgothel> iff the GC doesn't freeze the whole VM: good
20150720 12:24:58 <elect> and is it not the case?
20150720 12:24:59 <sgothel> still .. it may disrupt other threads/process
20150720 12:25:02 <elect> ah
20150720 12:25:05 <xranby> elect: if your jvm supports it use -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails
20150720 12:25:20 <elect> xranby, cool
20150720 12:25:57 <sgothel> jvisualvm gives you some graphs .. e.g. simply make a demo (or play w/ our graphui startup) .. and see how it affects other threads
20150720 12:26:09 <sgothel> what we can say for sure: any GC run causes load
20150720 12:26:18 <elect> got it
20150720 12:26:33 <sgothel> and even w/o a GC disruption - it takes time to allocate and dispose resources ofc
20150720 12:31:42 <elect> xranby, does this mean my jvm support it?
20150720 12:31:42 <elect> 2015-07-20T14:30:48.852+0200: [GC [PSYoungGen: 2098176K->19252K(2447360K)] 2098176K->19324K(8039936K), 0.0147622 secs] [Times: user=0.05 sys=0.02, real=0.02 secs]
20150720 12:32:10 <xranby> yes, that indicate that your garbace collector spent 0.02s collecting garbage
20150720 12:33:52 <xranby> which may have wasted one of your precious frames 1/60 = 0,016666667
20150720 12:35:13 <sgothel> (iff disrupting the GL renderer thread - this can be seen via jvisualvm .. maybe, or instrument renderer to print warning if missed time target ..)
20150720 12:35:19 <elect> GC is trigger then especially by OO
20150720 12:35:20 <elect> ?
20150720 12:35:49 <elect> when an OO is not referenced anymore the GC will take care of it?
20150720 12:36:10 <sgothel> please find some docs about GC .. (any memory heap resources it helps to dispose)
20150720 12:36:13 <sgothel> yes
20150720 12:36:22 <sgothel> and in many stages of 'forgetting'
20150720 12:36:27 <elect> im reading right now
20150720 12:36:46 <elect> also some previous intervent from u
20150720 12:36:46 <elect> http://forum.jogamp.org/glDeleteBuffers-Very-Inconvenient-td4027988.html
20150720 12:36:49 <sgothel> GC design goal is ofc to not disrupt .. hence there are diff pools of heap etc
20150720 12:37:55 <sgothel> yup .. thx
20150720 12:41:43 <elect> http://developer.amd.com/4-easy-ways-to-do-java-garbage-collection-tuning/
20150720 12:45:47 <xranby> tuning, garbage collectors is a rabit hole I do not dare getting close to :)
20150720 12:46:13 <elect> I have the same feeling
20150720 12:46:28 <xranby> i like the idea that you shall if possible use the garbage collector that gives the lowest latency
20150720 12:46:29 <elect> but it is important to design app keeping in mind that
20150720 12:46:52 <xranby> thus i like projects such as http://openjdk.java.net/jeps/189 to suceed
20150720 12:47:08 <xranby> but there has written too many articles on the wonderful art of tuning java garbage collectors
20150720 12:53:47 <elect> http://rootslash.net/331016/java-opengljogl-object-arrays-and-floatbuffers
20150720 13:16:21 <elect> xranby, before, speaking about the demo, you mention "gpu rendered curves", what's that? I cant understand by looking at the code
20150720 13:16:50 <xranby> elect: http://jogamp.org/doc/gpunurbs2011/p70-santina.pdf http://jogamp.org/doc/gpunurbs2011/graphicon2011-slides.pdf
20150720 13:17:00 <elect> thanks
20150720 13:20:18 <xranby> thus jogamp include one of the most state of the art mobile ready resolution independent gpu text and curve renderers ;)
20150720 13:20:40 <xranby> that you may use to render cad drawings if you like
20150720 13:20:58 <xranby> if not the most state of the art
20150720 13:21:05 <xranby> and we use a patent free implementation
20150720 13:21:55 <elect> are curves described by formulas?
20150720 13:22:29 <elect> when you want to render them, basically you approximate them though triangles?
20150720 13:22:40 <xranby> read the paper
20150720 13:23:24 <elect> doing
20150720 13:23:46 <elect> "the computation of the curve is processed directly on the gpu"
20150720 13:24:03 <xranby> each curve is perfectly rendered using the shader on the gpu
20150720 13:24:30 <xranby> no aproximation
20150720 13:24:50 <elect> which is the primitive being used?
20150720 13:25:06 <elect> no one?
20150720 13:25:21 <xranby> the outile area surrounding the curve is a triangle
20150720 13:25:36 <xranby> but the curve itself is rendered by the shader inside the triangle
20150720 13:26:15 <elect> ah yep, you are right
20150720 13:26:23 <elect> "With all the curved regions de ned as a set of triangles, we
20150720 13:26:23 <elect> map the rendering of the curves to texture space; "
20150720 13:29:53 <xranby> KUDOS to sgothel and rami for making this work possible
20150720 13:30:00 <elect> yep
20150720 14:40:27 * rmk0_ (~rmk0@anon) has joined #jogamp
20150720 14:42:11 * rmk0 (~rmk0@anon) Quit (Ping timeout: 248 seconds)
20150720 15:31:54 * elect (~elect@anon) Quit (Ping timeout: 260 seconds)
20150720 15:55:08 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20150720 16:04:42 * eclesia (~husky@anon) has left #jogamp
20150720 16:07:58 * Schrostfutz_ is now known as Schrostfutz
20150720 16:56:08 * elect (~elect@anon) has joined #jogamp
20150720 17:16:46 * elect knows bothering sgothel is an hard job, but someone has to do it
20150720 17:39:19 * monsieur_max (~maxime@anon) has joined #jogamp
20150720 19:47:37 * Eclesia (~eclesia@anon) has joined #jogamp
20150720 20:57:24 <elect> Eclesia, news?
20150720 20:57:57 <Eclesia> finishing some work on Java 2 Doc. testing the dds just after
20150720 20:58:35 <Eclesia> (yes, i'm making my own doc tool)
20150720 21:13:09 * xranby_ (~familjen@anon) Quit (Ping timeout: 244 seconds)
20150720 21:14:57 * xranby_ (~familjen@anon) has joined #jogamp
20150720 21:18:34 <Eclesia> elect: hm nope. I don't have this one. DXT1-5 only
20150720 21:18:53 * elect sad
20150720 21:18:54 <Eclesia> elect: if you know where is the doc I can implement it.
20150720 21:19:13 <elect> https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCIQFjAAahUKEwjdvJu00erGAhXLGh4KHRP0BXU&url=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fwindows%2Fdesktop%2Fbb943983(v%3Dvs.85).aspx&ei=y2WtVZ2rKMu1eJPol6gH&usg=AFQjCNE2IwSiW9TBg6YotE5VFQUZ7XSvBg&sig2=oWPVR1jrrPpFhU-qJ8ePhQ
20150720 21:19:18 <elect> https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCgQFjABahUKEwjdvJu00erGAhXLGh4KHRP0BXU&url=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fwindows%2Fdesktop%2Fbb943991(v%3Dvs.85).aspx&ei=y2WtVZ2rKMu1eJPol6gH&usg=AFQjCNFRru2modDodviOa2ZUDW4qOazBLw&sig2=TxpclN0sVfkHOe9Ja4CCAQ
20150720 21:19:33 <elect> https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCgQFjABahUKEwjdvJu00erGAhXLGh4KHRP0BXU&url=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fwindows%2Fdesktop%2Fbb943991(v%3Dvs.85).aspx&ei=y2WtVZ2rKMu1eJPol6gH&usg=AFQjCNFRru2modDodviOa2ZUDW4qOazBLw&sig2=TxpclN0sVfkHOe9Ja4CCAQ
20150720 21:19:49 <elect> sorry, wrong paste
20150720 21:19:49 <elect> http://blogs.msdn.com/b/chuckw/archive/2010/02/05/the-dds-file-format-lives.aspx
20150720 21:21:38 <Eclesia> k I already parsed the dxt10 header extension. it's just the data block interpretation missing
20150720 21:23:16 <elect> https://msdn.microsoft.com/en-us/library/windows/desktop/bb694531%28v=vs.85%29.aspx?
20150720 21:26:05 <elect> i would like to take a loor to your tool anyway
20150720 21:26:17 <elect> but tomorrow, have to go now
20150720 21:26:36 <elect> thanks for your intent, Eclesia
20150720 21:26:48 <elect> night
20150720 21:26:57 <Eclesia> elect: it's easier the JNI for me :D
20150720 21:27:01 <Eclesia> then*
20150720 21:27:20 <Eclesia> elect: good night
20150720 21:31:24 * elect (~elect@anon) Quit (Ping timeout: 256 seconds)
20150720 21:31:26 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20150720 21:50:33 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20150721 00:02:50 <xranby_> thank you archive org... some nice xlib tutorials can only be found in archived copys: https://web.archive.org/web/20071018025425/http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html
20150721 05:05:24 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20150721050524.html