for some days I have experimented a bit with the extension named above and got some problems: I can tessellate just vertices, and the tessellation of the vertices looks correct in wireframe mode, but i can tessellate nothing else. Whenever I try to tessellate texture coordinates, normals etc. I get an access violation in atioglxx.dll. Colors don't cause errors, but the result is all black. My vertex shader is almost exactly like the example shader in the OpenGL registry (http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt ) . I also took a look at the examples given by this page (http://developer.amd.com/GPU/WGSDK/Pages/default.aspx), but in the example there are only vertices tessellated and the lines for colors are commented out. I compared the code with mine and didn't find any major differences.
If the example shader given in the OpenGL registry is right, the problem is definitely caused by the main program. I suppose there MAY be something wrong with the sampler locations. The example from this page does it like this:
vtxLoc = glGetUniformLocation(prgName, "vertex");
//m_colorLoc = glGetUniformLocation(prgName, "color");
//if(vtxLoc == -1 || colLoc == -1)
if (vtxLoc == -1)
//an error occured getting sampler locations
I do it similarly:
glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Vertex')), 0);
glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Color')), 1);
glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Normal')), 2);
glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Texcoord0')), 3);
// glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Temperature')), 4);
// glUniform1iARB(glGetUniformLocationARB(shader, PGLCharARB('Pressure')), 5);
Except of Pressure, the results of glGetUniformLocationARB are all higher than -1.
Has anyone ever worked with this extension and / or can anyone help me?
Thanks in advance for help.
p.s. I hope that it's possible to understand my English
Edit: Just managed to tessellate colors successfully using OpenGL 3.2, now I'm gonna try the rest...
Edit2: The colors work well now, but I still get the error with normals and texture coordinates. I would appreciate any kind of help.
Could you please provide the shader? We recommend to check uniform location first like
if (loc == -1)
// throw an error
You will get the location as -1 for two cases:
1. the uniform is inactive
2. it's a built-in uniform
You said that the location for "Pressure" was -1. I suggest you check the shader to see if "Pressure" is really active.