Funny ATI drivers

Hey guys,

I recently installed Catalyst 7.12 on a RadeonX850XT and really was surprised to note GL_VERSION “2.1.7169” Yeah!

It offers now:
GL_AMD_performance_monitor (whatever this is, has some new entry points, too)
GL_ATI_meminfo (ditto)
GL_EXT_gpu_program_parameters
GL_EXT_packed_depth_stencil (finally!!)
GL_EXT_texture_sRGB
WGL_EXT_framebuffer_sRGB

GL_SHADING_LANGUAGE_VERSION returns now 1.2

Additionally I found entry points to
glRenderbufferStorageMultisampleEXT
and glBlitFramebufferEXT, which looks like both extensions are on the way and might be officially exposed in near future.

Now the funny part… for some reason (after some reboots, can’t reproduce what I did), the 2.1 opengl driver got somehow replaced by some older 2.0.6xxx Version (missing all the new and exciting stuff).

So I did some research and found, that there are now two ATI OpenGL DLLs in windows/system32:

atioglxx.dll (~5 megs)
atiogl2x.dll (~9.5 megs)

After changing all registry references to atioglxx.dll into atiogl2x.dll, the 2.1 driver was back online :smiley:

I encourage everyone to take a look at these DLLs… They contain funny things like
“__vglSwitchTextureSurfaceUsageFastPathDoom3: Implement me!”
or “Wide or float format buffer(s) currently bound and alpha test, blend, etc. in use on ASIC that doesn’t handle wide/float formats correctly” (among other reasons that lead to a software path). The codename (?) “ORCA” especially caught my eye: “MOV result.orca_stencil, texel.w” (Shader can output stencil values?) Speculation is up to you now :wink:

I am happy that ATI finally seems to catch up on the all-important framebuffer extensions. This means I can finally get rid off all the legacy Pbuffer and clean up the multi-context mess a bit.

Happy new year!

Happy new yea!

Are you sure it’s atiogl2x.dll or atioglx2.dll?
I once tried to use the half-documented uberbuffer extension and nothing would happen. I’ve also noticed that they have a bunch entry points that are perhaps in some extension specs I have never read like
glODEEXT
glDrawWireTrianglesFGL (something to do with Fire GL?)
glDrawElementsFGL

I’m sad to say I was able to make my system hang. I count how many frames I render. Sometimes it renders 3, it hangs, sometimes 10, sometimes 8, 6, 11.
I suspect a certain shader.
Debugging showed that it always hangs on SwapBuffers.
No, I’m not using undocumented features.

There’s just one problem… Do you want to create an application that works on your machine only, or will you provide a manual for users saying that they should modify their registry? :slight_smile:

I guess they’re gonna fix that installation issue very soon, so we will have these features available on customer machines, not just on developer’s machines.

First one is the legacy driver. Second one is the newer driver (Orca) that was rewritten from scratch. Both are shipped so this is normal.

This refers to a bug in R300 that was fixed in later hardware.

Figured that out already :wink:

I wonder, why these textual reasons for a software-fallback never made it to the public. I mean, why didn’t ATI release an official list of reasons the leads the driver into software… Instead, people blindly fall into these traps and don’t know what happened. If they were lucky, this forum could be a help.

I would be cool, if there would exist a mechanism to ask OpenGL “Am I in software emulation mode? If yes, why?”. Or abolish software emulation at all :wink:

I find it just useless to have a correctly rendered image, but only get 0.1fps… What’s the use of SW emulated features anyway?

Last, but not least: WHY THE HELL DO I HAVE TO FIND OUT ABOUT THE ALL NEW OPENGL DRIVER BY MYSELF? Orca wasn’t mentioned anywhere (except some speculations in this forum). Not even in the release notes. Isn’t ATI proud enough of its new baby to say “This driver contains the new OpenGL 2.1 implementation which is faster and more stable than the od one”?

enough rant for today, time to sleep :wink:

Apple provides this for all vendor’s drivers on the Mac.

If yes, why?"

This is a lot harder to quantify. What if you fell off for multiple reasons? For obscure technical reasons specific to the current ASIC / driver? It won’t necessarily help you avoid the pitfall.

I find it just useless to have a correctly rendered image, but only get 0.1fps…

Although you’re probably in the majority, there are some applications that value correctness more than speed. And applications where the software emulation is “fast enough”.

What’s the use of SW emulated features anyway?

Mostly, the spec requires it.

But I find there is also some use in having a good software renderer, to compare with the hardware results, and also to use extensions which aren’t available on your hardware.

Something like a “debug runtime” equivalent for OpenGL would be nice.

When OpenGL was first released it made sense. Hardware was hardly available, except on a few expensive professional workstations. Also, software rendering and hardware was much more comparable back then. Software was only “noticably slower”, rather than tens of thousands slower as is the case now. Software fallback doesn’t make much sense anymore these days and I’d prefer if drivers could be relieved of this burden.

Whenever I have hit a software fallback, it didn’t actually work - it usually crashes / locks up.

On the other hand, a stable and up-to-date D3D-like “reference rasterizer” (MESA?) could be useful.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.