Have your tried a simple test case?  I would suggest a skeleton program 
with just 1 fragment and 1 vertex shader and link them into a program.

Are you calling glGetError and logging or aborting after every OpenGL ES 
API call?


On Thursday, May 24, 2012 6:37:17 PM UTC+1, sebastian_bugiu wrote:
>
> I have a LinkedQueue that stores the calls to anything from the GLES20 
> class. After loading it up I send a requestRender() call to 
> GLSurfaceView and in onDrawFrame() I process the queue and call the 
> actual GLES20 method. 
>
> Yet when I call GLES20.glLinkProgram() the function never returns. I 
> don't have anything in the logcat, no exception, no killed thread 
> nothing. It just remains there. 
>
> Any ideas in which conditions glLinkProgram() doesn't return and what 
> can I do to debug this situation? 
>
> I use a queue in which I add the gl commands issued by the renderer 
> and then I requestRender() to empty the queue by iterating through it 
> and calling each method in the added order. Some gl commands are of 
> get type and they can't be added to a queue so after issuing 
> glCreateShader I immediately requestRender() and store the retrieved 
> id that I then pass into the queue with the next commands like 
> glAttachShader etc. So in one onDrawFrame() call I create the shaders 
> and in the next I attach the source compile and link. 
>
> What I do may seem awkward but it does create both a vertex and 
> fragment shader and then compiles them both correctly. It also creates 
> a program with no errors. But linking the shaders to program just goes 
> into infinite loop or something


-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to