Hi All,

I have an Opengl application which hangs completely and I need to
reboot the system to make it up again. I was able to further
investigate by debugging and found that at the call glutBitmapCharacter
with the font GLUT_BITMAP_HELVETICA_10 is hanging. With other font like
GLUT_BITMAP_TIMES_ROMAN_24 the problem was not seen.

Also note that the application hangs with ATI RADEON 7500 and transport
TCPIP. I checked with ELSA-GLORIA and ATI RADEON 7000 with which the
application does not hang.

At the time of hang i analyzed the server process and could observe
that it was in routiene radeon_do_wait_for_idle, but in usual case the
applications keeps switching from routine radeon_do_wait_for_fifo and
radeon_do_wait_for_idle.

Can somebody explain me why the application is hung only for that
font.....

I deeply appreciate any suggestions given in this regard...

Thanks in advance...

Code snippet for reference...

#include
#include

static void printstring(void *font, char *string)
{
int len,i;

len=(int)strlen(string);
for(i=0;i glutBitmapCharacter(font,string[i]);
}


void display(void)

{
/* clear window */

glClear(GL_COLOR_BUFFER_BIT);


/* draw unit square polygon */

glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();

printstring(GLUT_BITMAP_HELVETICA_10,"OpenGl application");

/* flush GL buffers */

glFlush();

}


void init()
{

/* set clear color to black */

/* glClearColor (0.0, 0.0, 0.0, 0.0); */
/* set fill color to white */

/* glColor3f(1.0, 1.0, 1.0); */

/* set up standard orthogonal view with clipping */
/* box as cube of side 2 centered at origin */
/* This is default view and these statement could be removed */

/* glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); */
}

int main(int argc, char** argv)
{

/* Initialize mode and open a window in upper left corner of
screen */
/* Window title is name of program (arg[0]) */

/* You must call glutInit before any other OpenGL/GLUT calls */
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("simple");
glutDisplayFunc(display);
init();
glutMainLoop();
}






Regards,
Sandy