LWJGL
February 03, 2012, 23:40:52 *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: LWJGL 2.8.3 released!
 
   Home   Help Search Login Register  



Pages: 1 [2] 3 4 5
  Print  
Author Topic: [FIXED] new ATI 10.1 drivers don't support some GL1x functions?  (Read 13902 times)
princec
Nerdus Imperius
*****
Posts: 1751



WWW
« Reply #15 on: February 01, 2010, 09:37:01 »

New build out ASAP? I'd pull the old one too, as it doesn't work properly...

Cas Smiley
Logged

spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #16 on: February 01, 2010, 10:44:00 »

I'd say yes, we need a new build.

There's no point pulling the last one btw. The problem exists in every build since LWJGL 2.1.0, but it only triggered with the latest ATI driver.

edit: since 2.1.0, not 2.2.0
Logged

Notch
Newbie
*
Posts: 38


« Reply #17 on: February 06, 2010, 13:08:50 »

I got the nightly 2.3 build, and it's still happening:

Logged
spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #18 on: February 07, 2010, 04:16:26 »

I cannot test the indev Minecraft version. The 3 public versions use an old 2.1.0 build that doesn't have this problem. Could you please add the following piece of code in Minecraft to help me out?

Code:
System.out.println("GL RENDERER: " + GL11.glGetString(GL11.GL_RENDERER));
System.out.println("GL VENDOR: " + GL11.glGetString(GL11.GL_VENDOR));
System.out.println("GL VERSION: " + GL11.glGetString(GL11.GL_VERSION));

ContextCapabilities caps = GLContext.getCapabilities();

System.out.println("OpenGL 3.0: " + caps.OpenGL30);
System.out.println("OpenGL 3.1: " + caps.OpenGL31);
System.out.println("OpenGL 3.2: " + caps.OpenGL32);
System.out.println("ARB_compatibility: " + caps.GL_ARB_compatibility);

if ( caps.OpenGL32 ) {
IntBuffer buffer = ByteBuffer.allocateDirect(16 * 4).order(ByteOrder.nativeOrder()).asIntBuffer();

GL11.glGetInteger(GL32.GL_CONTEXT_PROFILE_MASK, buffer);
int profileMask = buffer.get(0);

System.out.println("PROFILE MASK: " + Integer.toBinaryString(profileMask));

System.out.println("CORE PROFILE: " + ((profileMask & GL32.GL_CONTEXT_CORE_PROFILE_BIT) != 0));
System.out.println("COMPATIBILITY PROFILE: " + ((profileMask & GL32.GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) != 0));
}

Feel free to replace println with whatever you use for logging and make sure you run the code immediately after creating the GL context (or at least before calling anything else in GL, especially anything deprecated).

I may have found the root of the problem anyway, but I'd appreciate it if you could help me verify it. Anyone else on ATI with 10.1 feel free to run this code as well.
Logged

Matzon
Administrator
Demigod
*****
Posts: 2158



« Reply #19 on: February 07, 2010, 05:29:22 »

thanks for working quickly on this - will release 2.3 shortly after confirmed fix.
Logged

http://certusgames.com (Free Online Multiplayer Java Games)
http://lwjgl.org (OpenGL/OpenAL for Java)
spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #20 on: February 07, 2010, 07:18:33 »

Preferably, test with the next available build (build # > 384).
Logged

Notch
Newbie
*
Posts: 38


« Reply #21 on: February 07, 2010, 09:02:49 »

Your account is now paid so you can test it. Thank you. =)

I updated to the latest LWJGL since the next build isn't available yet. This is what I get:

Quote
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: false
ARB_compatibility: true
Logged
Matzon
Administrator
Demigod
*****
Posts: 2158



« Reply #22 on: February 07, 2010, 09:05:00 »

I thought this issue was Ati specific ?
Logged

http://certusgames.com (Free Online Multiplayer Java Games)
http://lwjgl.org (OpenGL/OpenAL for Java)
Notch
Newbie
*
Posts: 38


« Reply #23 on: February 07, 2010, 09:13:25 »

Yes. it works for me. I just posted that for reference.
Logged
spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #24 on: February 07, 2010, 09:25:12 »

I tried the indev version and it works on my ATI, no exceptions or anything. But your report shows that there's a problem on NV as well. Could you please run Minecraft with -Dorg.lwjgl.util.Debug=true and let me know if any functions are reported as missing on context creation?
Logged

Notch
Newbie
*
Posts: 38


« Reply #25 on: February 07, 2010, 09:32:39 »

It works? In 10.1? Well, that's good! Cheesy

I create the context with just Display.create(). I'm not passing any parameters.

I get no warnings about missing functions here, all extra output I get from passing that flag is:

Code:
Initial mode: 1680 x 1050 x 32 @60Hz
OpenGL32 was reported as available but an entry point is missing
getPathFromClassLoader: searching for: OpenAL32
Failed to locate findLibrary method: java.lang.NoSuchMethodException: sun.misc.Launcher$AppClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.net.URLClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.security.SecureClassLoader.findLibrary(java.lang.String)
getPathFromClassLoader: searching for: lwjgl
Failed to locate findLibrary method: java.lang.NoSuchMethodException: sun.misc.Launcher$AppClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.net.URLClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.security.SecureClassLoader.findLibrary(java.lang.String)
getPathFromClassLoader: searching for: lwjgl
Failed to locate findLibrary method: java.lang.NoSuchMethodException: sun.misc.Launcher$AppClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.net.URLClassLoader.findLibrary(java.lang.String)
Failed to locate findLibrary method: java.lang.NoSuchMethodException: java.security.SecureClassLoader.findLibrary(java.lang.String)
Found 32 OpenAL paths
T
Failed to load C:\Program Files (x86)\Java\jre6\bin\OpenAL64.dll: C
T
Failed to load .\OpenAL64.dll: C
T
Failed to load C:\Windows\Sun\Java\bin\OpenAL64.dll: C
T
Failed to load C:\Windows\system32\OpenAL64.dll: C
T
Failed to load C:\Windows\OpenAL64.dll: C
T
Failed to load C:/Program Files (x86)/Java/jre6/bin/client\OpenAL64.dll: C
T
Failed to load C:/Program Files (x86)/Java/jre6/bin\OpenAL64.dll: C
T
Failed to load C:\Program Files (x86)\JavaFX\javafx-sdk1.2\bin\OpenAL64.dll: C
T
Failed to load C:\Program Files (x86)\JavaFX\javafx-sdk1.2\emulator\bin\OpenAL64.dll: C
T
Failed to load C:\Windows\system32\OpenAL64.dll: C
T
Failed to load C:\Windows\OpenAL64.dll: C
T
Failed to load C:\Windows\System32\Wbem\OpenAL64.dll: C
T
Failed to load C:\Windows\System32\WindowsPowerShell\v1.0\\OpenAL64.dll: C
T
Failed to load C:\Program Files (x86)\Java\jdk1.6.0_17\bin\OpenAL64.dll: C
T
Failed to load E:\mc_dev\Minecraft.Client\OpenAL64.dll: C
T
Failed to load OpenAL64.dll: C
T
Failed to load C:\Program Files (x86)\Java\jre6\bin\OpenAL32.dll: C
T
F
Logged
spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #26 on: February 07, 2010, 09:52:43 »

Quote
OpenGL32 was reported as available but an entry point is missing

This is the important line. You should be getting a message that says which function is missing, not sure why it doesn't print.
Logged

Notch
Newbie
*
Posts: 38


« Reply #27 on: February 07, 2010, 10:06:25 »

Oh, there's another line when I quit the game:

Code:
Could not locate symbol glGetInteger64i_v
Logged
spasi
Nerdus Imperius
*****
Posts: 606



WWW
« Reply #28 on: February 07, 2010, 10:58:10 »

OK, try the next build (hmm, why hasn't the previous one shown up yet?).

What I did is to allow certain functions to be made optional when loading an extension. LWJGL has always been checking for the availability of all the functions in an extension (or core GL version). When one of them was missing, it would make it so that the whole extension was not available. For now, I've marked the following functions as optional:

glDrawElementsBaseVertex (GL32)
glDrawRangeElementsBaseVertex (GL32)
glDrawElementsInstancedBaseVertex (GL32)

The above 3 are missing from the current ATI driver.

glGetInteger64i_v (GL32)

This one is missing from the current NV driver.

This means that, for example, you'll be able to use all GL32 functions on an NV implementation, but calling glGetInteger64i_v will throw an exception. Hopefully the latest commit fixes both AMD and NV issues.
Logged

Endolf
Regular nerd
**
Posts: 96



WWW
« Reply #29 on: February 07, 2010, 11:04:56 »

OK, try the next build (hmm, why hasn't the previous one shown up yet?).

Because, almost without fail, the windows machines (either 32 or 64 bit) fall out of the farm whenever I go away. Just got back, win64 machines back in farm, building has resumed Smiley

Endolf
Logged

Pages: 1 [2] 3 4 5
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines
SMFAds for Free Forums
Valid XHTML 1.0! Valid CSS!