Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Apr 2009 16:41:13 +0200
From:      Oliver Lehmann <lehmann@ans-netz.de>
To:        x11@freebsd.org
Subject:   Problem with OpenGL and ATI HD3850
Message-ID:  <20090429164113.f0b48048.lehmann@ans-netz.de>

next in thread | raw e-mail | index | archive | help
Hi,

I must admit that I'm not that familiar with the topic, but anyhow:

I'm trying to get an application to run which is called "freeorion". It
uses as a backend GiGi which itself uses Ogre3D. Inside Ogre3D, the GL
Renderer is used for rendering (Not SDL for example). When I now startup
the application, All I get is

unknown chip id 0x9515, can't guess.
main() caught exception(std::exception): basic_string::_S_construct NULL
not valid

The exception is caused because glGetString(GL_VERSION) returns NULL
which is assigned afterwards.

The "unknown chip id..." comes out of dri from the radeon driver.

It is clear to me, that there is no hardware 3D support for my card.
This is not the point.

I wonder why the GL is moving to the radeon driver. Shouldn't DRI support
a software 3D emulation which should be used if there is no hardware
support?

Executing glxgears for example says

olivleh1@kartoffel olivleh1> glxgears -info
unknown chip id 0x9515, can't guess.
GL_RENDERER   = Software Rasterizer
GL_VERSION    = 2.1 Mesa 7.4
GL_VENDOR     = Mesa Project

So GL_VERSION seems to be indeed something - So I wonder what could cause
the NULL exception here....

In Ogre3D, the failing code part is:

    void GLSupport::initialiseExtensions(void)
    {
        // Set version string
        const GLubyte* pcVer = glGetString(GL_VERSION);
printf("ogre 110\n");
        assert(pcVer && "Problems getting GL version string using
glGetString"); printf("ogre 110.1\n");
        String tmpStr = (const char*)pcVer;
printf("ogre 110.2\n");
        LogManager::getSingleton().logMessage("GL_VERSION = " + tmpStr);
printf("ogre 110.3\n");
        mVersion = tmpStr.substr(0, tmpStr.find(" "));


110.1 gets printed out and then the exception is raised. 110.2 is not
printed out.

assert(pcVer && "Problems getting GL version string using glGetString");

should rule out that pcVer contains a NULL string so

String tmpStr = (const char*)pcVer;

could not raise a NULL-exception or am I wrong?

Unfortunally I was not able to printout with a printf what glGetString()
really returns here. Everything I tried resultet in a SegViol.

-- 
 Oliver Lehmann
  http://www.pofo.de/
  http://wishlist.ans-netz.de/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090429164113.f0b48048.lehmann>