<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Flightgear crashes during splashboot with R600 driver and mesa 11.0.2"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92214#c9">Comment # 9</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Flightgear crashes during splashboot with R600 driver and mesa 11.0.2"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92214">bug 92214</a>
from <span class="vcard"><a class="email" href="mailto:mister.freeman@laposte.net" title="Barto <mister.freeman@laposte.net>"> <span class="fn">Barto</span></a>
</span></b>
<pre>with apitrace I found maybe an interesting thing when I replay my trace file
for the bug :
t seems that the function "glRasterPos2i(0,0)" is the last openGL call before
the crash, if I try to run this call in apitrace ( with a double click ) I can
see this error message :
caught an unhandled exception
glretrace+0x23c99c
/usr/lib/libpthread.so.0+0x10d5f
?+0x7f2f764655eb
apitrace: info: taking default action for signal 4
I followed my instinct, I found a C++ source code in google about
glRasterPos2i() function and I compile it in order to test the glRasterPos2i()
function :
#include <iostream>
#include <GL/glut.h>
#include <string>
using namespace std;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3ub(255,0,0);
glPushMatrix();
glScalef(5,5,5);
glBegin(GL_QUADS);
glVertex2f(-1,-1);
glVertex2f(1,-1);
glVertex2f(1,1);
glVertex2f(-1,1);
glEnd();
glPopMatrix();
glColor3ub(0,255,0); // A
glRasterPos2i(0,0); // B
string tmp( "wha-hey!" );
for( size_t i = 0; i < tmp.size(); ++i )
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, tmp[i]);
}
glutSwapBuffers();
}
void reshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
double aspect_ratio = (double)w / (double)h;
glOrtho(-10*aspect_ratio, 10*aspect_ratio, -10, 10, -1, 1);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(800,600);
glutCreateWindow("Text");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return EXIT_SUCCESS;
}
If I run this test code I get the same error message : "illegal instruction",
but if I comment the line "glRasterPos2i(0,0);" then there is no bug, the test
program can run and I see a screen with a red square,
I am a newbie in openGL programming but it seems that mesa 11.0.2 has a problem
with "glRasterPos2i()" function if the r600 gallium driver is used ( amd radeon
HD4650 Pcie graphic card )</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>