I was coding and testing my extension loading lib, and when it came time to try it out on an older card that said “supports OpenGL 1.5,” I find out that even though the GL_VERSION string returns 1.5.5, it’s not truly OpenGL 1.5 compliant because while it had buffer objects, it didn’t have occlusion queries or shadow functions. In fact, it wasn’t even truly 1.3 compliant because it didn’t have multisampling either.
So my question is: are card vendors actually allowed to provide only ‘partial’ OpenGL implementations and still be allowed to return a ‘full’ version string?
No, everything up to an including the version reported must be supported.
Are you sure you tried to verify it with the presense of the correct functions? Taking some arbitrary function from multisampling as an example, did you really check for glSampleCoverage and not glSampleCoverageARB? The implementation may not support multisampling in hardware and chooses not to expose it as an extension, but must expose it as a core function. You cannot check for 1.3 compliance by looking for the extension version of multisampling.
I guess they should not. Did you ensure you have the latest drivers ?
Wow Bob, you are absolutely right, though the GL_ARB_multisample string doesn’t appear in the extensions string, loading glSampleCoverageARB works fine. Thx for the info, I didn’t know card vendors did that.