AnsweredAssumed Answered

Issues with OpenGL application on Centos 6.4 with Dell M4800

Question asked by mvschenkelberg on Jan 7, 2014
Latest reply on Jan 8, 2014 by mvschenkelberg

I work on a major software project for the national weather service.  We develop in java and use jogl for opengl.  We have always used nvidia cards until recently a set of Dell M4800 laptops were ordered with the AMD FirePro M5100 card by mistake.  I took this as an opportunity to try and make our application work with non nvidia cards and have not had much success.  I've tried the driver from dell (Driver Details | Dell US) as well as the latest from the AMD site (AMD Linux Driver) and both had the same issues with our application (No issues found with the OS and compiz effects).  I haven't done a full test on everything that doesn't work but for starters:

 

1. Image tiles would be completely wrong occasionally.  See images here: Graphics Issues - Imgur.  We use LUMINANCE textures and apply colormapping in the fragment shader.  Zooming and panning around on our map would cause the tiles to display horribly at certain zoom/pan locations.  They were consistent in the locations they would display poorly in. I only saw the issue with internal format GL_LUMINANCE16 and texture type of GL_SHORT and could not get it to happen with textures GL_LUMINANCE8 (GL_BYTE) and GL_LUMINANCE32 (GL_FLOAT).

 

2. When doing a render to (luminance) texture with a frame buffer object, after the render to texture was done, when attempting to draw the texture that was rendered to, we get the error: GL_INVALID_FRAMEBUFFER_OPERATION_EXT (1286).  This only happens immediately after rendering to the texture.  We are able render the texture after we do the R2T and it displays correctly so I know the fbo was correctly rendered to.  The error occurs in this block of code when drawing the mesh for the image rendered to:

 

 

            // Clear error bit

            gl.glGetError();

 

            gl.glEnableClientState(GL.GL_VERTEX_ARRAY);

            gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);

 

            gl.glInterleavedArrays(GL.GL_T2F_V3F, 0, fb.rewind());

            int error = gl.glGetError();

 

I'm guessing maybe the firepro card doesn't support rendering a texture that was just rendered to in the frame but I'm not sure.

 

I'm mostly concerned about #2 because I can always attempt to switch my short data to float data to see if it works (although I would like to save the graphics memory and keep it as floats). But for #2, I'm out of ideas.

 

Thanks

 

Max

Outcomes