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>