Мы получили новый ноутбук с Nvidia 880m
он пришел с win8.1, мы установили 7 x64
Пытаюсь запустить jogl, java крашится
происходит сбой при вызове glLinkProgram
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j jogamp.opengl.gl4.GL4bcImpl.dispatch_glLinkProgram1(IJ)V+0
j jogamp.opengl.gl4.GL4bcImpl.glLinkProgram(I)V+46
j javax.media.opengl.DebugGL4bc.glLinkProgram(I)V+9
j glsl.GLSLProgramObject.initializeProgram(Ljavax/media/opengl/GL3;Z)V+113
Я создаю шейдер, используя код, который я написал в прошлом, он всегда работал, и у меня никогда не было проблем, поэтому я боюсь, что это как-то связано с драйвером nvidia opengl.
Я инициализирую программу таким образом
public final void initializeProgram(GL3 gl3, boolean cleanUp) {
_progId = gl3.glCreateProgram();
for (int i = 0; i < _vertexShaders.size(); i++) {
gl3.glAttachShader(_progId, _vertexShaders.get(i));
}
for (int i = 0; i < _fragmentShaders.size(); i++) {
gl3.glAttachShader(_progId, _fragmentShaders.get(i));
}
gl3.glLinkProgram(_progId);
int[] params = new int[]{0};
gl3.glGetProgramiv(_progId, GL3.GL_LINK_STATUS, params, 0);
if (params[0] != 1) {
System.err.println("link status: " + params[0]);
gl3.glGetProgramiv(_progId, GL3.GL_INFO_LOG_LENGTH, params, 0);
System.err.println("log length: " + params[0]);
byte[] abInfoLog = new byte[params[0]];
gl3.glGetProgramInfoLog(_progId, params[0], params, 0, abInfoLog, 0);
System.err.println(new String(abInfoLog));
}
gl3.glValidateProgram(_progId);
if (cleanUp) {
for (int i = 0; i < _vertexShaders.size(); i++) {
gl3.glDetachShader(_progId, _vertexShaders.get(i));
gl3.glDeleteShader(_vertexShaders.get(i));
}
for (int i = 0; i < _fragmentShaders.size(); i++) {
gl3.glDetachShader(_progId, _fragmentShaders.get(i));
gl3.glDeleteShader(_fragmentShaders.get(i));
}
}
}
Какие-нибудь советы?
Драйверы 337 и 340 терпят неудачу