[FIXED] new ATI 10.1 drivers don't support some GL1x functions?

Started by indexunknown, January 30, 2010, 21:44:11

Previous topic - Next topic

spasi

Markus, could you please update Minecraft to the latest build so we can test and get an official release out asap?

Notch

Done!

I get this now:

LWJGL version: 2.3
GL RENDERER: GeForce GTX 260/PCI/SSE2
GL VENDOR: NVIDIA Corporation
GL VERSION: 3.2.0
OpenGL 3.0: true
OpenGL 3.1: true
OpenGL 3.2: true
ARB_compatibility: true
PROFILE MASK: 0
CORE PROFILE: false
COMPATIBILITY PROFILE: false

spasi

Works fine on nvidia now right? No exceptions or anything?


spasi

Works on ATI 10.1 too, so I guess we can consider this fixed.

Rene

When I am king, they shall not have bread and shelter only, but also teachings out of books, for a full belly is little worth where the mind is starved - Mark Twain

Notch

Now it's not working on some other driver version for ATi. I don't know which driver version that is, though, sorry:
It's a "XFX ATI RADEON HD5870 1GB GDDR5"

Reading certificates from 2388 http://minecraft.net/indev/client/lwjgl_util_applet.jar?v=14 | C:\Users\ez\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\7\7df4b9c7-17664ff0.idx
Laddade bild: http://minecraft.net/indev/client/logo_small.png
Laddade bild: jar:http://minecraft.net/indev/client/lwjgl_util_applet.jar?v=14!/appletprogress.gif
Reading certificates from 2152 http://minecraft.net/indev/client/lzma.jar?v=14 | C:\Users\ez\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\0\3b677940-19b1b04b.idx
43
org.lwjgl.opengl.OpenGLException: Invalid operation (1282)
	at org.lwjgl.opengl.Util.checkGLError(Util.java:54)
	at org.lwjgl.opengl.Display.makeCurrentAndSetSwapInterval(Display.java:884)
	at org.lwjgl.opengl.Display.create(Display.java:847)
	at org.lwjgl.opengl.Display.create(Display.java:771)
	at org.lwjgl.opengl.Display.create(Display.java:752)
	at net.minecraft.client.d.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


spasi

This is a context creation error and since you are not using ContextAttribs it shouldn't be any different from old LWJGL versions. Can that user run the non-indev versions of Minecraft? The same error should happen there, I'll investigate further if not.

Notch

She could play the indev version up until yesterday, she's played the old versions a lot. This error was still there after a reboot.


Matzon

pardon my ignorance, but why do we have to update code when ATI updates its drivers?

spasi

Fixed on next build. I had to revert to an old driver version to test this and of course ATI behaved exactly like NV before 10.1 (ARB_compatibility exposed), with the difference that it generates an INVALID_OPERATION error if you try to retrieve GL_CONTEXT_PROFILE_MASK (which is what I had to do to fix the original 10.1 problem). ::)

spasi


kappa

just curious how exactly did you fix this ati problem? do you now have ati driver version specific hacks or general code that works the same everywhere?

spasi

Quote from: javalwjgl on February 09, 2010, 22:07:46general code that works the same everywhere?

This. I added another condition to the code that forces forward compatible mode (fc mode = no deprecated functions are loaded). That condition is basically checking a GL3.2 core mask (GL_CONTEXT_PROFILE_MASK) to see if the compatibility profile has been loaded. If either ARB_compatibility or the compatibility profile are available, forward compatible mode isn't forced (the application can still enable it if desirable).

So, the code is general, but parts of it only apply to specific implementations. The driver behavior I've seen so far for the default context creation:

- NVIDIA: ARB_compatibility exposed, GL_CONTEXT_PROFILE_MASK returns 0.
- ATI pre 10.1: ARB_compatibility exposed, retrieving GL_CONTEXT_PROFILE_MASK produces an INVALID_OPERATION error.
- ATI 10.1: ARB_compatibility *not* exposed, GL_CONTEXT_PROFILE_MASK returns GL_CONTEXT_COMPATIBILITY_PROFILE_BIT.