#jogamp @ irc.freenode.net - 20150729 05:05:26 (UTC)


20150729 05:05:26 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20150727135426.html
20150729 05:05:26 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20150729050526.html
20150729 05:21:26 * jvanek (jvanek@anon) has joined #jogamp
20150729 06:42:18 * elect (~elect@anon) has joined #jogamp
20150729 06:43:23 <elect> hi
20150729 06:57:54 * monsieur_max (~maxime@anon) has joined #jogamp
20150729 07:03:36 * doev (~doev@anon) has joined #jogamp
20150729 07:14:46 * psyko_ (51ffb2f3@anon) has joined #jogamp
20150729 07:16:20 <psyko_> Hello. I have a strange issue. Using Jogl with VBO objects to render objects, it works fine on a computer. When running it on another computer, I have a # A fatal error has been detected by the Java Runtime Environment: EXCEPTION_ACCESS_VIOLATION (0xc0000005)
20150729 07:16:29 <psyko_> Any idea ?
20150729 07:17:10 <monsieur_max> same graphic card manufacturer on both ?
20150729 07:17:14 <psyko_> The error is thrown on a gl.glDrawArrays call. I double check, the vertices array is properly sized...
20150729 07:17:23 <psyko_> let me check
20150729 07:17:27 <monsieur_max> which version of jogl ?
20150729 07:17:56 <psyko_> same manufacturer, but different cards
20150729 07:18:18 <psyko_> using jogl 2.0.0
20150729 07:19:35 <psyko_> at first I thought maybe the issue was in the shader (vertex/fragment) but some other object render well
20150729 07:20:14 <psyko_> The issue always happened on the same type of object (custom renderer using VBO objects), but this object has nothing special
20150729 07:24:26 <elect> what happens if you reduce the number of vertices explicitely
20150729 07:24:52 <elect> double check, size must be in byte
20150729 07:25:27 <elect> use GLBuffers.SIZE_FLOAT to reduce the probability to make errors
20150729 07:26:02 <psyko_> Let me check
20150729 07:26:12 * monsieur_max noting this advice for himself
20150729 07:26:33 <monsieur_max> elect: gracias and spassiba
20150729 07:27:25 <elect> years of nubness brought their fruits
20150729 07:29:23 <psyko_> my count look god
20150729 07:29:35 <psyko_> vertice count is 3
20150729 07:30:05 <psyko_> float buffer allocated is 6 * 4
20150729 07:30:24 <psyko_> (previous number was 6. As you indicated I reduced the number explicitely)
20150729 07:31:13 <elect> what you get now?
20150729 07:31:23 <psyko_> same thing
20150729 07:31:45 <elect> can you show us some code?
20150729 07:31:57 <elect> double checked also attrPointer?
20150729 07:33:54 <elect> if you comment out glDrawArray no exception?
20150729 07:35:47 <elect> anyway, look also the stacktrace inside the exception file
20150729 07:35:51 <elect> sometimes it helps
20150729 07:36:30 <psyko_> let me test to comment it
20150729 07:37:28 <psyko_> commenting the glDrawArray make the error disappear
20150729 07:38:19 <elect> if you choose 0 as vertices count?
20150729 07:38:56 <psyko_> make it 0 works as well. No more error
20150729 07:39:28 <elect> it's the vbo or the attribPointer
20150729 07:39:44 <elect> called glEnableVertexAttribArray?
20150729 07:40:07 <psyko_> yep
20150729 07:40:10 <psyko_> code is here
20150729 07:40:10 <psyko_> https://github.com/cncgoko/Goko/blob/master/org.goko.gcode.viewer/src/org/goko/viewer/jogl/utils/render/internal/AbstractVboJoglRenderer.java
20150729 07:40:19 <psyko_> line 251
20150729 07:40:49 <psyko_> it's an abstract. The error only appear when rendering one of the implementing class
20150729 07:41:26 <elect> ps: you can reference lines in github, just click on the line or a group of line with shift
20150729 07:42:01 <psyko_> thx for the tip :)
20150729 07:42:09 <elect> :p
20150729 07:42:58 * eclesia (~husky@anon) has joined #jogamp
20150729 07:43:03 <eclesia> good morning
20150729 07:43:13 <psyko_> problematic renderer code is here https://github.com/cncgoko/Goko/blob/master/org.goko.gcode.viewer/src/org/goko/viewer/jogl/utils/render/coordinate/ThreeAxisRenderer.java#L79
20150729 07:46:47 <elect> hi
20150729 07:46:59 <elect> tha vao is for object?
20150729 07:47:18 <elect> we are talking about the axesRender, no?
20150729 07:47:29 <psyko_> yes
20150729 07:47:37 <elect> there will be other objects, each of them with its own vao, no?
20150729 07:47:42 <psyko_> it render a XYZ arrow
20150729 07:47:56 <psyko_> yes
20150729 07:49:56 <elect> if you use vao, there is no sense to use glVertexAttribPointer in the rendering loop
20150729 07:51:35 <psyko_> well VAO and VBO are all new to me :)
20150729 07:51:42 <psyko_> glEnableVertexAttribArray is enough ?
20150729 07:52:07 <elect> vao is useful to avoid glEnableVertexAttribArray and glVertexAttribPointer
20150729 07:52:11 <elect> bind vao
20150729 07:52:28 <elect> in the init
20150729 07:52:35 <elect> performInitialize
20150729 07:52:40 <psyko_> glBindVertexArray ?
20150729 07:52:47 <elect> yes
20150729 07:53:08 <elect> then in each buffer obejct init
20150729 07:53:22 <elect> glEnableVertexAttribArray & glVertexAttribPointer
20150729 07:53:23 <psyko_> https://github.com/cncgoko/Goko/blob/master/org.goko.gcode.viewer/src/org/goko/viewer/jogl/utils/render/internal/AbstractVboJoglRenderer.java#L239
20150729 07:53:39 <psyko_> like this ?
20150729 07:53:40 <elect> yeah yeah
20150729 07:53:46 <elect> but it was like a todo list
20150729 07:53:51 <psyko_> ok
20150729 07:53:51 <elect> I see you do
20150729 07:53:55 <elect> but you do only once
20150729 07:54:17 <elect> you need to bind it then everytime at begin of rendering loop
20150729 07:55:20 <elect> and then you can get rid of glEnableVertexAttribArray & glVertexAttribPointer in the performRender
20150729 07:55:44 <elect> only thing to remember VAO doesnt store the VBO, then you still have to call glBindBuffer(GL.GL_ARRAY_BUFFER
20150729 07:55:57 <psyko_> hmm ok
20150729 07:56:47 <elect> let's say, this should not be an error since you are explicitely calling glEnableVertexAttribArray & glVertexAttribPointer
20150729 07:57:06 <elect> but let's fix this and maybe something helps us to find the bug
20150729 07:57:31 <psyko_> ok I'll try and do it as you say
20150729 08:00:59 <psyko_> so the perform render will look like https://framabin.org/?5e5bd891b6cd9537#cSyGmyCFY9mqLXCVBllntFIGosJdNHaOutHvwpAdRXc=
20150729 08:04:35 <elect> exactly
20150729 08:05:16 <elect> anyway
20150729 08:05:28 <elect> wait a second, something is also wrong with the buffers
20150729 08:05:49 <elect> each glBindBuffer(GL.GL_ARRAY_BUFFER will also overwrite the previous
20150729 08:06:52 <elect> you can have only one buffer at the time binded at GL_ARRAY_BUFFE
20150729 08:06:58 <elect> R
20150729 08:07:56 <psyko_> I'm using layout(location = 0) in the shader
20150729 08:08:19 <elect> you need to pack all the vertex attributes together in one buffer
20150729 08:08:25 <psyko_> with offset ?
20150729 08:08:32 <elect> you have 2 options
20150729 08:09:00 <elect> let's call P position, C color, UV uv and N normals
20150729 08:10:12 <elect> [P_0, C_0, UV_0, N_0, P_1, C_1, UV_1, N_1]
20150729 08:10:34 <elect> or [P_0, P_1, C_0, C_1, UV_0, UV_1, N_0, N_1]
20150729 08:10:40 <elect> the second is interleaved
20150729 08:11:13 <elect> and is suggested for performance point of view, since it exploits local data
20150729 08:12:14 <elect> for the interleaved, you will bind the (unique) VBO and then
20150729 08:12:25 <psyko_> ok so until now I had 4 buffer (P, C, UV and N) so now the only thing i have to do is to concatenate the 4
20150729 08:12:36 <elect> yes
20150729 08:12:40 <elect> glVertexAttribPointer
20150729 08:13:07 <elect> but better to interleave them instead concatenating them
20150729 08:13:34 <psyko_> so in your 2 options, the interleaved is the 1st one ? not the second ?
20150729 08:13:40 <elect> the second
20150729 08:14:20 <elect> no wait
20150729 08:14:30 <psyko_> [P_0, P_1] [C_0, C_1] [UV_0, UV_1] [N_0, N_1]
20150729 08:14:35 <psyko_> that's a concatenation :)
20150729 08:15:43 <elect> the first one, you right
20150729 08:16:00 <elect> ^^
20150729 08:16:22 <psyko_> ok so the interleaved is better for performance ?
20150729 08:16:28 <elect> definitely
20150729 08:16:39 <psyko_> ok I'll try this
20150729 08:17:00 <psyko_> because with the new code I show you, I have the exception at the very first rendered object :)
20150729 08:17:13 <elect> then in your glVertexAttribPointer, stride is [P+C+UV+N] and pointer is the i-th offset of each attribute
20150729 08:17:56 <psyko_> yeah I remember the stride attribute. never used it. I'll take a look at it
20150729 08:18:03 <elect> I cant assure you this is the only error, but definitely fix this first and then let's see
20150729 08:18:17 <psyko_> you're definitely right
20150729 08:19:17 <psyko_> so the interleaved will be
20150729 08:19:46 <monsieur_max> elect: that's why you should not have a real project, you're too good at debugging other's ;)
20150729 08:20:02 <elect> >.>
20150729 08:20:04 <psyko_> [ P_0.x P_0.y P_0.z P_0.w C_0.x C_0.y C_0.z C_0.w ...]
20150729 08:20:05 <psyko_> right ?
20150729 08:20:09 <elect> yes
20150729 08:20:44 <psyko_> ok I'll have to write the interleaving function
20150729 08:21:40 <monsieur_max> elect: it was supposed to be a compliment !
20150729 08:21:49 <elect> ^^
20150729 08:21:51 <elect> you bloody
20150729 08:22:09 <elect> anyway, we need to link and make better this list
20150729 08:22:10 <elect> https://www.opengl.org/wiki/Common_Mistakes
20150729 08:32:58 <psyko_> elect: with the interleaved array, I only have one VBO then ?
20150729 08:33:10 <elect> yes
20150729 08:33:15 <psyko_> ok
20150729 08:33:25 <eclesia> is there really a performance benefit ?
20150729 08:33:35 <elect> it depends on the program
20150729 08:33:54 <elect> anyway, better do it than dont
20150729 08:34:18 <elect> https://www.opengl.org/wiki/Vertex_Specification_Best_Practices#Interleaving
20150729 08:34:30 <monsieur_max> that's what they say when trying to tweak chernobyl's plant
20150729 08:35:28 <elect> :D
20150729 08:38:15 <elect> "You can specify vertex data as a series of arrays (also known as a struct of arrays) or as an array where each element includes multiple attributes (an array of structs). The preferred format on iOS is an array of structs with a single interleaved vertex format. Interleaved data provides better memory locality for each vertex."
20150729 08:38:19 <elect> https://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/TechniquesforWorkingwithVertexData/TechniquesforWorkingwithVertexData.html
20150729 08:39:46 <eclesia> for highly specific programs ok. but for more global/generic programs and for maintenance it's a pain
20150729 08:47:11 <elect> Im sorry to say, but it looks possible to draw using different vbos at one time
20150729 08:47:16 <elect> I didnt know that
20150729 08:47:17 <elect> ..
20150729 08:47:20 <elect> sorry psyko_
20150729 08:47:34 <psyko_> :)
20150729 08:47:45 <elect> you were right, you need just to bind each vbo to a differnt location
20150729 08:48:15 <psyko_> the rendering loop was working on some other computer
20150729 08:48:22 <elect> sorry for that
20150729 08:48:29 <psyko_> that sounded weird to me, but since I'm no expert, I listened
20150729 08:48:39 <psyko_> no problem, don't worry. Now you know it
20150729 08:49:05 <monsieur_max> ha ! elect was wrong !!!
20150729 08:49:13 <monsieur_max> ;)
20150729 08:49:22 <psyko_> So I'm not sure weither I should revert to previous version or continue with interleaved buffer
20150729 08:49:24 <elect> \o/
20150729 08:50:10 <elect> at wwhich point are you with the interleaved?
20150729 08:50:36 <elect> you may create another branch
20150729 08:50:52 <psyko_> I'm solving an OutOfBound exception
20150729 08:50:55 <psyko_> but I'm pretty much done
20150729 08:54:38 <elect> anyway, always on that opengl wiki page, "If your objects are static, then merge them all into as few VBOs as possible for best performance. See above section for more details on layout considerations.
20150729 08:54:38 <elect> If only some of the vertex attributes are dynamic, i.e. often changing, placing them in separate VBO makes updates easier and faster. "
20150729 08:54:59 <elect> I hope your objects are static, psyko_ ^^
20150729 08:55:46 <eclesia> I have multiple vbo per mesh. ~3 to 8. no performance issues here.
20150729 08:56:08 <elect> if you didnt profile one way and the other, you cant say it
20150729 08:56:52 <eclesia> just saying that is isn't critical
20150729 08:56:57 <eclesia> it*
20150729 08:57:29 <psyko_> elect: they are
20150729 08:57:36 <elect> fiuuuu
20150729 08:57:39 <psyko_> not sure for how long, but for now they are :)
20150729 08:58:29 <psyko_> Ok I think I'm done with the interleaved buffer
20150729 08:58:34 <psyko_> but my scene is empty :)
20150729 08:59:36 <elect> link
20150729 08:59:55 <psyko_> glBindVertexArray ?
20150729 09:00:03 <psyko_> glVertexAttribPointer is done too
20150729 09:01:44 <elect> can you show it?
20150729 09:02:24 <psyko_> https://framabin.org/?5af584b9dfa431ef#ZRB76ifaz3l8MQ1D9Xrw0WLU/j857ZAm6KPmORLx0jg=
20150729 09:02:45 <monsieur_max> psyko_: are you french ?
20150729 09:02:51 <psyko_> yes
20150729 09:03:14 <monsieur_max> ah elect, we are outnumbering you, beware of the guillotine
20150729 09:03:20 <elect> mierd
20150729 09:03:31 <psyko_> :)
20150729 09:03:35 <elect> *merde
20150729 09:04:53 <elect> show me the init buffers
20150729 09:05:09 <elect> move glVertexAttribPointer inside the init vbo
20150729 09:05:20 <elect> the vao will remember it
20150729 09:05:56 <elect> are you clearing color/depth bit and swapping buffers?
20150729 09:06:09 <psyko_> yep
20150729 09:06:16 <psyko_> some other renderer not using VBO are displayed
20150729 09:07:10 <psyko_> init https://framabin.org/?b88a8ce6fa4885d8#n/T+v/Y1xE3HJAkvvcJzB4Ej0sN+DWjKbH2daJpG3m4=
20150729 09:10:17 <elect> these other come before or later?
20150729 09:10:35 <psyko_> before
20150729 09:10:42 <psyko_> but it was working before
20150729 09:10:53 <psyko_> the issue is probably in the few change I just did
20150729 09:11:52 <elect> did you modify also the shaders?
20150729 09:11:57 <psyko_> nop
20150729 09:12:04 <elect> add all the locations
20150729 09:12:26 <psyko_> layout(location=1) ?
20150729 09:12:28 <elect> yes
20150729 09:12:33 <psyko_> they already are
20150729 09:12:36 <psyko_> they already were
20150729 09:12:44 <elect> ah, right
20150729 09:13:19 <elect> are you multiplying the position by a matrix?
20150729 09:13:33 <psyko_> yes, in the shader
20150729 09:13:48 <elect> btw if you dont get anymore the java exception we did a first step
20150729 09:14:09 <psyko_> yeah, but nothing get rendered :)
20150729 09:14:51 <elect> are you using gl_lines
20150729 09:14:52 <elect> ?
20150729 09:15:08 <psyko_> yes
20150729 09:15:25 <elect> whenever something doesnt work we have to go down to the simplest case
20150729 09:15:29 <elect> and then rise up again
20150729 09:15:38 <psyko_> yep
20150729 09:15:39 <elect> set matrix to identity
20150729 09:15:48 <elect> set position from 0, 0 to 1, 1
20150729 09:15:55 <elect> set line width to 1
20150729 09:16:13 <elect> pad the position with 0, 1
20150729 09:16:29 <elect> and hardcode color in the fragment
20150729 09:17:14 <elect> do nothing else in the shaders
20150729 09:18:17 <elect> note that if a variable is unused, compiler get rid of it, so if dont care if you get invalid uniform location
20150729 09:19:23 <elect> if it still doesnt work, let's sacrifice monsieur_max to GL god
20150729 09:20:13 <psyko_> still doesn't work :)
20150729 09:20:50 <eclesia> elect: you want to offend god ? you need a first class dev for a sacrifice ^^
20150729 09:20:59 <elect> comment out any previous render
20150729 09:21:08 <elect> good, eclesia is added after monsieur_max
20150729 09:21:27 * eclesia is a new noob
20150729 09:22:01 <elect> can you show the updated AbstractVboJoglRenderer and ThreeAxisRenderer?
20150729 09:23:30 <psyko_> ThreeAxisRenderer didn't change at all
20150729 09:24:11 <psyko_> VboRenderer is here https://framabin.org/?227f1f5b4147654c#JqsS/YU/ejVAXAXifLDFtWiUtzS5GEzdqhx0wz3sLjM=
20150729 09:24:51 <monsieur_max> !!!
20150729 09:26:45 <elect> how much is scale in the axis?
20150729 09:27:02 <psyko_> default is 10
20150729 09:27:40 <psyko_> I didn't changed the geometry construction. It's the same as on the other computer.
20150729 09:27:52 <elect> in buildInterleavedBuffer, switch FloatBuffer.allocate(getVerticesCount()*stride);
20150729 09:27:59 <psyko_> Beside some other renderer (Grid renderer) that use VBO are not displayed either
20150729 09:28:00 <elect> to GLBuffers.newDirectFloatBuffer(int)
20150729 09:30:15 <psyko_> tried, no difference
20150729 09:30:54 <elect> comment out enableAdditionalVertexAttribArray(gl); updateShaderData(gl);
20150729 09:31:02 <elect> comment also gl.glDrawArrays(getRenderPrimitive(), 0, getVerticesCount());
20150729 09:31:14 <elect> and if (instanceof axis) clear color
20150729 09:31:25 <elect> let's see if it clears
20150729 09:31:39 * monsieur_max is trying to compile the irc channel logs without success
20150729 09:33:40 <psyko_> I think we won't see if it clears
20150729 09:33:50 <elect> why?
20150729 09:34:01 <psyko_> it will be cleared for only one frame
20150729 09:34:07 <psyko_> until the next render loop
20150729 09:34:15 <elect> clear in the render loop
20150729 09:34:18 <psyko_> at 60 fps, I won't even see it
20150729 09:34:26 <elect> AbstractCoreJoglRenderer
20150729 09:34:45 <elect> you should see blinking
20150729 09:35:02 <elect> if you render something else
20150729 09:35:05 <elect> later
20150729 09:35:15 <elect> otherwise the clear should remain that one
20150729 09:35:49 <psyko_> ok I see
20150729 09:35:56 <psyko_> it's definitelly cleared :)
20150729 09:36:13 <psyko_> no blinking. I guess the last renderer is a ThreeAxisRenderer
20150729 09:37:12 <psyko_> I feel like I'm missing some kind of binding or link with Jogl
20150729 09:37:38 <elect> can I see the shaders?
20150729 09:38:02 <psyko_> https://github.com/cncgoko/Goko/tree/master/org.goko.gcode.viewer/src/org/goko/viewer/jogl/shaders/line
20150729 09:38:14 <psyko_> pretty simple :)
20150729 09:39:40 <elect> gl_Position = vertexPosition_modelspace;
20150729 09:40:06 <elect> color = vec4(1, 0, 0, 1)
20150729 09:40:15 <elect> try
20150729 09:40:43 <psyko_> nothing red
20150729 09:40:43 <elect> given the position (0,0,..) and (1, 1, ..)
20150729 09:40:44 <psyko_> :)
20150729 09:41:27 <psyko_> elect: got to go. Lunch time. I'll be back in a few (thanks for your help if you're not here when I get back)
20150729 09:41:37 <elect> ok
20150729 09:42:05 <psyko_> I'm pretty sure that if I replace my intereleaved related modification with the one I had this morning, the display would occur nicely
20150729 09:42:28 <psyko_> except that ther would be an exception on one type of renderer
20150729 09:42:43 <elect> you could also try to run with debug
20150729 09:42:47 <psyko_> that's why I think the error is in the interleaved buffer building/linking/transfer to the sader
20150729 09:42:56 <elect> -Djogl.debug.DebugGL
20150729 09:43:21 <psyko_> will this give specific output in the console ?
20150729 09:43:30 <elect> sometimes it helps
20150729 09:43:34 <psyko_> ok
20150729 09:43:42 <psyko_> I think I'm already using a DebugGL3
20150729 09:43:42 <monsieur_max> and surely, it fills the console
20150729 09:44:10 <psyko_> yeah the GL object given to the renderer is a wrapper
20150729 09:44:23 <psyko_> constructed like GL3 gl = new DebugGL3( gLAutoDrawable.getGL().getGL3());
20150729 09:44:58 <psyko_> gtg. Be back in a few
20150729 10:00:41 * zubzub (~zubzub@anon) Quit (*.net *.split)
20150729 10:00:47 * zubzub (~zubzub@anon) has joined #jogamp
20150729 10:04:54 * monsieur_max1 (~maxime@anon) has joined #jogamp
20150729 10:06:06 * monsieur_max (~maxime@anon) Quit (Ping timeout: 240 seconds)
20150729 11:19:46 * monsieur_max1 is now known as monsieur_max
20150729 11:23:03 <psyko_> elect: I'm back :)
20150729 11:23:11 <elect> oh shit
20150729 11:23:15 <elect> ehm, hi
20150729 11:23:16 <psyko_> :)
20150729 11:23:18 <elect> ^^
20150729 11:23:40 <elect> try tje debug
20150729 11:23:43 <elect> thr
20150729 11:23:43 <psyko_> found a solution
20150729 11:23:45 <elect> the
20150729 11:23:50 <elect> shoot
20150729 11:23:51 <psyko_> I wasn't calling glVertexAttribPointer
20150729 11:24:03 <psyko_> glEnableVertexAttribArray
20150729 11:24:08 <psyko_> I wasn't calling glEnableVertexAttribArray
20150729 11:24:21 <elect> it renders?
20150729 11:24:26 <psyko_> Added it, now I got some render
20150729 11:24:38 <psyko_> not what I want, but I do have something
20150729 11:25:01 <elect> you see, sacrifying a couple of french worked out
20150729 11:25:12 <elect> now step by step come back
20150729 11:25:16 <eclesia> :p
20150729 11:25:19 <elect> ^^
20150729 11:25:48 <elect> as I told you, glEnableVertexAttribArray & glVertexAttribPointer in the init VBO
20150729 11:25:56 <elect> when the VAO is bound
20150729 11:26:24 <elect> then in the render, just bind vao and vbo
20150729 11:29:07 <psyko_> ok
20150729 11:29:44 <psyko_> in glVertexAttribPointer, should offset be in byte as well ?
20150729 11:32:18 <elect> yes
20150729 11:34:39 <psyko_> I guess I have some OutOfBound index, cause I get a new JVM crash
20150729 11:35:21 <elect> as far as I saw, you only added position and color
20150729 11:35:42 <psyko_> I think I have it in my interleaved buffer creation
20150729 11:36:39 <elect> make also coherent the number of attribute's coordinate in glVertexAttribPointer and in the shader
20150729 11:37:04 <elect> ex vec4 and vec4
20150729 11:37:41 <psyko_> yep
20150729 11:37:47 <psyko_> this should be fine
20150729 11:39:05 <psyko_> ok now I'm back to the very beginning (well almost)
20150729 11:39:23 <psyko_> it works and display well (except that now I'm using interleaved array)
20150729 11:39:38 <psyko_> Let's try to display the problematic renderer
20150729 11:41:02 <psyko_> it looks like it's working
20150729 11:42:31 <psyko_> Thanks :D
20150729 11:43:53 <elect> ^^
20150729 11:44:09 <psyko_> I don't understand want changed... but it works
20150729 11:44:19 <elect> the sacrifice, it is clear
20150729 11:44:19 <psyko_> I hope it still works on the other computer
20150729 11:44:27 <elect> anyway, never mind
20150729 11:44:50 <psyko_> that's true... we haven't heard from monsieur_max yet :)
20150729 11:44:55 <elect> :D
20150729 11:45:16 <elect> anyway, you could help jogamp by sharing some feedback
20150729 11:45:35 <elect> I would like to restructure the wiki
20150729 11:45:39 <elect> any tip?
20150729 11:46:01 <psyko_> hmmm let me check it
20150729 11:46:19 <elect> I guess a vbo example should have been highlighting
20150729 11:46:32 <psyko_> I think so
20150729 11:47:25 <psyko_> maybe put the tutorial in front page
20150729 11:47:35 <psyko_> make them more visible. That's how you learn
20150729 11:48:07 <elect> yep, I think the same
20150729 11:48:13 <monsieur_max> hey i'm back... strange, i was in a very dark place ... smelling bad like the streets of Milano
20150729 11:48:31 <elect> milano is shit, why didnt you ask me before
20150729 11:48:52 <psyko_> maybe add more separation between Jogl, Joal, Jocl
20150729 11:49:01 <monsieur_max> not gone there yet, but that the common assumption here in france
20150729 11:49:03 <elect> what you mean?
20150729 11:49:19 <elect> you should ask me
20150729 11:50:03 <psyko_> well, when looking for help, you first search by framework
20150729 11:50:34 <psyko_> on the wiki main page there is, for instance, API Docs [ GlueGen, JOAL, JOGL, JOCL ]
20150729 11:51:15 <psyko_> Maybe it would be more obvious to have 4 large column in the main page, with category in it (Doc, License, ...)
20150729 11:52:11 <elect> ok
20150729 11:52:28 <psyko_> I'm not sure I'm clear :p
20150729 11:53:29 <monsieur_max> psyko_: what are you working on ?
20150729 11:54:29 <psyko_> a CNC control application
20150729 11:55:09 <monsieur_max> *googling*
20150729 11:55:55 <psyko_> just like a 3d printer I'm using a milling machine
20150729 11:57:00 <monsieur_max> nice :)
20150729 11:57:48 <psyko_> some pics of what the 3d part of the softwar elooks like
20150729 11:57:48 <psyko_> http://www.shapeoko.com/forum/viewtopic.php?f=30&t=5349
20150729 11:59:43 <elect> we need bigger tits
20150729 12:00:34 <psyko_> haha
20150729 12:00:45 <monsieur_max> can it make pizzas ?
20150729 12:01:00 <psyko_> plastic, wood one, yes
20150729 12:01:03 <monsieur_max> psyko_: that's a great project indeed
20150729 12:01:16 <elect> cool stuff, psyko_
20150729 12:01:33 <psyko_> it is, but kind of difficul, since I'm working with framework I'm very unfamiliar with
20150729 12:01:37 <eclesia> ply files ?
20150729 12:01:51 <psyko_> OSGI, Eclipse e4, Jogl :)
20150729 12:02:09 <eclesia> only the last one good :/
20150729 12:02:12 <monsieur_max> hehe :)
20150729 12:02:17 <psyko_> eclesia: no, nc file
20150729 12:02:19 <monsieur_max> let's start an IDE war !
20150729 12:02:28 <eclesia> netcdf ?
20150729 12:02:50 <psyko_> no idea what netcdf is :)
20150729 12:03:30 <psyko_> no NC files are simply code for numeric machine control
20150729 12:03:34 <eclesia> nc is the extension for netcdf files. use in meteorology and oceanography to store 3D images
20150729 12:03:49 <psyko_> https://en.wikipedia.org/wiki/G-code
20150729 12:13:48 <psyko_> anyway, thanks for the help elect
20150729 12:14:23 <elect> no problem, sorry just for the unecessary interleaving
20150729 12:16:04 <psyko_> no problem at all
20150729 12:16:20 <psyko_> it seems to have solved the issue, so maybe it wasn't that unecessary
20150729 12:28:10 <psyko_> by the way
20150729 12:28:29 <psyko_> anyone of you know if it's possible to simply change the width of a line in Jogl ?
20150729 12:30:06 <monsieur_max> well , gl.glLineWidth(int);
20150729 12:30:40 <monsieur_max> and don't forget gl.glEnable(GL2ES2.GL_LINE_SMOOTH);
20150729 12:31:24 <psyko_> well that doesn't work with shader, does it ?
20150729 12:32:36 <monsieur_max> mmmh it does, at least on my framework
20150729 12:33:20 <psyko_> ho ok... I think I never tried then
20150729 12:33:27 <psyko_> what's your framework ?
20150729 12:33:47 <monsieur_max> a pile of code i'm trying to make to build some adventure game :)
20150729 12:34:05 <psyko_> :) I see
20150729 12:36:30 * doev (~doev@anon) Quit (Ping timeout: 240 seconds)
20150729 12:38:00 <monsieur_max> pfiew, my brain is burning, i answered something here, other than "check the unit test"
20150729 12:41:14 <elect> :D
20150729 12:55:38 * doev (~doev@anon) has joined #jogamp
20150729 13:19:57 * eclesia (~husky@anon) Quit (Ping timeout: 244 seconds)
20150729 13:29:17 * eclesia (~husky@anon) has joined #jogamp
20150729 13:38:39 <psyko_> elect: haha I find some other funny bug
20150729 13:38:54 <psyko_> i thought it was working... maybe not
20150729 13:39:08 <elect> what
20150729 13:39:34 <psyko_> after the interleaved modification
20150729 13:39:57 <psyko_> it looks like the last renderer in my list is not displayed
20150729 13:40:41 <psyko_> I tried with the code before the modification of the interleaved buffer, they are all displayed nicely (I removed the one that was causing the JVM crash)
20150729 13:41:45 <psyko_> almost like something was not close/terminated/unbound correctly...
20150729 13:51:07 <sgothel> Fat jars .. http://jogamp.org/deployment/archive/master/gluegen_876-joal_603-jogl_1414-jocl_1066/archive/
20150729 13:51:22 <sgothel> http://jogamp.org/deployment/archive/master/gluegen_876-joal_603-jogl_1414-jocl_1066/fat/
20150729 13:51:34 <sgothel> https://jogamp.org/bugzilla/show_bug.cgi?id=1145 <- see details
20150729 13:51:53 <elect> what is the last renderer?
20150729 13:52:17 <psyko_> it doesn't matter
20150729 13:52:23 <psyko_> I switched them
20150729 13:52:39 <psyko_> the result is always that the last is not rendered
20150729 13:53:21 <psyko_> Let's say I have Grid Renderer, X Axis Renderer, Y Axis Renderer, Z Axis Renderer, then Z axis would not be rendered
20150729 13:53:39 <psyko_> if I have X Axis Renderer, Y Axis Renderer, Z Axis Renderer, Grid Renderer, then Grid would not be rendered
20150729 13:54:00 <psyko_> if I have X Axis Renderer, Y Axis Renderer, Z Axis Renderer, Grid Renderer, Another renderer, then Another would not be rendered
20150729 13:54:29 <psyko_> they are all subclass of AbstractVboJoglRenderer
20150729 13:55:05 <elect> start commenting things in the last renderer
20150729 13:55:14 <elect> use instanceof to select it among all
20150729 13:56:00 <elect> and see what doesnt make render the one before the last
20150729 13:56:52 <psyko_> I have to comment wisely to not affect the rendering of others
20150729 13:58:16 <bruce-> just introduce StopGapRenderer and consider the whole thing fixed!
20150729 14:00:17 <elect> :D
20150729 14:00:34 <psyko_> ok I found the issue
20150729 14:00:40 <elect> anyway, are you checking any gl errors at the end of rendering loop?
20150729 14:00:52 <psyko_> I only have one renderer that is still an old deprecated VBO object
20150729 14:01:17 <psyko_> and this one call glDisableVertexAttribArray at the end of its render() method
20150729 14:01:44 <psyko_> it was working before because all the renderer would call glActiveVertexAttribArray at the beginning of their render() method
20150729 14:02:12 <psyko_> but how you explained to me elect , the glEnableVertexAttribArray is now in the init method only
20150729 14:02:30 * eclesia (~husky@anon) Quit (Ping timeout: 255 seconds)
20150729 14:03:01 <elect> enabled vertex attributes are saved in the vao
20150729 14:03:09 <elect> when you init each object
20150729 14:03:25 <elect> you have to enable each attrib and attribPointer
20150729 14:03:50 <elect> dont call glDisableVertexAttribArray
20150729 14:03:59 <elect> on that bounded vao
20150729 14:04:10 <elect> otherwise you will deactive that attrib ofc
20150729 14:04:24 <psyko_> yeah I'm debugging now to confirm that this was the issue
20150729 14:04:32 <elect> now when in the rendering loop you will bind the vao
20150729 14:04:48 <elect> automatically all the vertex attrib will be active
20150729 14:04:58 <elect> as they were at the init of that object
20150729 14:05:19 <elect> that is also as they were at the last time you bound that vao
20150729 14:06:00 <elect> so if you glDisableVertexAttribArray on a binded vao, next time you bind it again you obviously dont have anymore that attrib
20150729 14:06:05 <elect> and you have to bind it again
20150729 14:06:09 <elect> state-machine
20150729 14:06:16 <elect> != sex machine
20150729 14:06:23 <elect> (this is for me)
20150729 14:08:13 <bruce-> I am not really following what is going on, but I have run into some issues with VAOs. once you bind/unbind a vao opengl no longer has its 'default' vao
20150729 14:09:33 <psyko_> ok I got it
20150729 14:09:54 <elect> be careful
20150729 14:10:03 <psyko_> In my deprecated renderer, I was binding the VAO. So when calling the disableVertexAttrib, it was always on the previously bound VAO
20150729 14:10:18 <psyko_> ** I was not binding the VAO **
20150729 14:10:26 <elect> opengl forbids default vao
20150729 14:10:33 <elect> but NV let it use the 0 one
20150729 14:10:37 <elect> dont rely on that
20150729 14:10:40 <sgothel> @bruce: JOGL initializes a default VAO in case the profile doesn't support it no more
20150729 14:10:58 <sgothel> GLContext has some methods in this regard
20150729 14:11:18 <bruce-> sgothel: oh nice, let me check that; I worked around that by generating a default vao myself
20150729 14:11:28 <sgothel> GLContext.getDefaultVAO()
20150729 14:11:41 <sgothel> this was required to be able to run our demos etc in core profile :)
20150729 14:11:55 <elect> btw, I strongly suggest you to add this to your rendering loop if you still dont have it, psyko_
20150729 14:11:56 <sgothel> .hasNoDefaultVAO()
20150729 14:11:56 <elect> https://gist.github.com/elect86/ce0eea7dd9044f82231c
20150729 14:12:19 <elect> then call checkError(gl3, "display");
20150729 14:12:32 <elect> change String if you call from other parts
20150729 14:13:07 <elect> if you app makes an error, next glError catches it, but the next one will be reset
20150729 14:13:22 <elect> unless you made another one in the meanwhile ^^
20150729 14:17:10 * eclesia (~husky@anon) has joined #jogamp
20150729 14:18:47 <psyko_> elect what do you mean ?
20150729 14:19:00 <psyko_> add a getDefaultVAO ?
20150729 14:19:45 <elect> always generate and use vao
20150729 14:19:52 <elect> if you dont plan to use them
20150729 14:20:00 <elect> generate one at the begin and leave it bound
20150729 14:20:54 <psyko_> I do use them
20150729 14:22:45 <psyko_> now th eabstract renderer will bin it automatically
20150729 14:23:31 * doev (~doev@anon) Quit (Read error: No route to host)
20150729 14:24:04 * doev (~doev@anon) has joined #jogamp
20150729 14:48:08 <psyko_> I got to go ! Thanks for the help elec and the other
20150729 14:48:26 <psyko_> elect: sorry :)
20150729 14:48:51 <psyko_> goodby
20150729 14:49:08 <psyko_> goodbye... damn fortunately it's the end of the day. got to get some rest
20150729 14:49:59 <elect> au revoir
20150729 14:50:23 <psyko_> merci :)
20150729 14:50:33 <psyko_> where are you from elect ?
20150729 14:51:26 <elect> italy ^^
20150729 14:51:43 <psyko_> ok
20150729 14:51:55 <psyko_> almost end of the day for you too then
20150729 14:53:04 <elect> yep
20150729 14:53:05 <psyko_> gtg ! bye
20150729 14:53:09 * psyko_ (51ffb2f3@anon) Quit (Quit: Page closed)
20150729 14:53:10 <elect> in half an hour
20150729 15:03:40 * doev (~doev@anon) Quit (Ping timeout: 246 seconds)
20150729 15:05:46 <monsieur_max> ah, those french developers, so lazy, they end their work day at 5pm !
20150729 15:09:07 * doev (~doev@anon) has joined #jogamp
20150729 15:20:42 <bruce-> after their 12-14 break
20150729 15:26:38 <elect> and the caffe
20150729 15:27:09 <elect> I understand them
20150729 15:32:47 <bruce-> elect: where in Italy are you?
20150729 15:34:07 * elect (~elect@anon) Quit (Ping timeout: 246 seconds)
20150729 15:39:41 <monsieur_max> bruce-: i don't like you :(
20150729 15:39:44 <monsieur_max> *he
20150729 15:39:48 <monsieur_max> doesnt
20150729 15:39:56 <monsieur_max> :( d'oh, i'm tired
20150729 15:40:46 <monsieur_max> totally feeling like : http://i.imgur.com/P4phhC7.jpg
20150729 15:41:25 <bruce-> haha
20150729 15:53:35 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20150729 15:54:46 * elect (~elect@anon) has joined #jogamp
20150729 15:59:10 * eclesia (~husky@anon) has left #jogamp
20150729 16:09:05 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20150729 16:10:01 * jvanek (jvanek@anon) has joined #jogamp
20150729 16:11:11 * jvanek (jvanek@anon) Quit (Client Quit)
20150729 16:13:24 * bigpet (uid25664@anon) Quit (Remote host closed the connection)
20150729 16:19:09 * doev (~doev@anon) Quit (Ping timeout: 252 seconds)
20150729 16:40:08 * bigpet (uid25664@anon) has joined #jogamp
20150729 18:54:37 * monsieur_max (~maxime@anon) has joined #jogamp
20150729 19:52:33 * elect (~elect@anon) Quit (Ping timeout: 252 seconds)
20150729 20:10:08 * elect (~elect@anon) has joined #jogamp
20150729 20:15:22 * Eclesia (~eclesia@anon) has joined #jogamp
20150729 20:15:29 <Eclesia> *pom pom pom*
20150729 20:30:33 * elect (~elect@anon) Quit (Ping timeout: 256 seconds)
20150729 20:53:33 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20150729 20:58:35 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20150730 05:05:26 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20150730050526.html