From: Ian R. <id...@us...> - 2004-07-30 23:59:50
|
Felix K=FChling wrote: > On Fri, 30 Jul 2004 15:24:03 -0700 > Ian Romanick <id...@us...> wrote: >=20 >>An old libGL will call the driver's CreateScreen function. This=20 >>function calls __driUtilCreateScreen, which does the extra work that is= =20 >>now done in a new libGL, then calls the driver's CreateNewScreen.=20 >>Whether you're using an old libGL or a new one, you eventually get to=20 >>CreateNewScreen. >=20 > Not quite. __driUtilCreateScreen does call __driUtilCreateNewScreen, bu= t > from there you never get back to the driver's CreateNewScreen function. > New interface drivers call __driUtilCreateNewScreen from > driverCreateNewScreen, not the other way around. And the savage driver, > which is not ported yet, doesn't even have a driverCreateNewScreen > function. So I still believe a new driver loaded by an old libGL never > checks the DRI/DDX/DRM versions. Hmm...I looked at the code in __driUtilCreateScreen in dri_util.c. I'm=20 inclined to say that the call to __driUtilCreateNewScreen should be a=20 call to __driCreateNewScreen instead. I don't want to have any more=20 code than absolutely necessary in the "old" API compatibility path. I=20 fully expect that code to get less and less testing as time goes on.=20 I'd rather not have bugs creep in. In any case, could you file a bug on this in X.org bugzilla? This code=20 is currently in the X.org tree, and there's a release coming up soon. ;) > I verified this with the radeon driver by inserting a debug printf at > the start of __driCreateNewScreen. Then I ran glxgears once with a new > libGL and once with an old one (from XFree86 4.3). In the first case I > saw the debug output, in the second case I didn't. >=20 > I guess the version check in the InitDriver/CreateScreen function is > still needed for the old interface. |