[SOLVED] Acces Violation Error

I don’t really know where to start with this one so I’m afraid it will be a bit vague.

I’m working with VAOs in OpenGL and the following code gives me an exception access violation:


	public void draw() {
		editable = false;
		
		for (int i = 0; i < rawVertexDataList.size(); i++) {
			FloatBuffer fb = BufferUtils.createFloatBuffer(rawVertexDataList.get(i).size());
			for (int u = 0; u < fb.capacity(); u++) {
				fb.put(rawVertexDataList.get(i).get(u));
			}
			fb.flip();
			vertexBuffer.add(fb);

			fb = BufferUtils.createFloatBuffer(rawTextureDataList.get(i).size());
			for (int u = 0; u < fb.capacity(); u++) {
				fb.put(rawTextureDataList.get(i).get(u));
			}
			fb.flip();
			textureBuffer.add(fb);
		}
		
		for (int i = 0; i < textureBuffer.size(); i++) {
			if (useTexture)
				GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
			
			GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
			
			if(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D) != i + 1)
				GL11.glBindTexture(GL11.GL_TEXTURE_2D, i + 1);
			
			GL11.glVertexPointer(2, 0, vertexBuffer.get(i));
			
			if(useTexture)
				GL11.glTexCoordPointer(2, 0, textureBuffer.get(i));
			
			GL11.glDrawArrays(GL11.GL_QUADS, 0, vertexCount);
			
			GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
			
			if (useTexture)
				GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
		}
		
		vertexBuffer.clear();
		textureBuffer.clear();
	}

Error it gives me:


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006917d930, pid=4616, tid=9100
#
# JRE version: 7.0_01-b08
# Java VM: Java HotSpot(TM) 64-Bit Server VM (21.1-b02 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [atio6axx.dll+0x24d930]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\dev\java\Triad\hs_err_pid4616.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

I understand from looking around a bit, that if the glDrawArrays call fails, it can throw this exception. If this is the case, what is making it fail?

Thanks in advance :slight_smile:

Ok, so here’s the answer to my own question if anyone else has this issue:

My glDrawArrays call was failing, the reason for this was that I had lots of different texture and vertex buffers, but i hadn’t given each one its own individual vertex count variable. So i changed my glDrawArrays call to something like this:


GL11.glDrawArrays(GL11.GL_QUADS, 0, bufferSizes.get(i));