[vtkusers] OpenGL errors upon move from 6.3.0 to 7.0.0 - not out of the woods yet
Richard Frank
rickfrank at me.com
Sat Feb 27 15:31:58 EST 2016
Hi,
I'm having a different problem now related to rendering an image volume using vtkOpenGLGPUVolumeRayCastMapper.
Tracing through the code I find that a shader fails to compile at line
79 in vtkShader.cxx
The failure is handled:
// Handle shader compilation failures.
if (!isCompiled)
{
GLint length(0);
glGetShaderiv(handle, GL_INFO_LOG_LENGTH, &length);
if (length > 1)
{
char *logMessage = new char[length];
glGetShaderInfoLog(handle, length, NULL, logMessage);
this->Error = logMessage;
delete[] logMessage;
}
glDeleteShader(handle);
return false;
and the log message is
0(169) : error C1008: undefined variable "g_aspect".0(170) : error C1008: undefined variable "g_aspect".0(171) : error C1008: undefined variable "g_aspect"
later, vtkOpenGLShaderCache::ReadyShaderProgram returns NULL:
// return NULL if there is an issue
vtkShaderProgram *vtkOpenGLShaderCache::ReadyShaderProgram(
vtkShaderProgram *shader)
{
if (!shader)
{
return NULL;
}
// compile if needed
if (!shader->GetCompiled() && !shader->CompileShader())
{
return NULL;
}
the null pointer gets passed up to vtkOpenGLGPUVolumeRayCastMapper at line 2512 and crashes because at line 2514 the null pointer is accessed.
if (!this->Impl->ShaderProgram->GetCompiled())
{
vtkErrorMacro("Shader failed to compile");
}
I think the access of the pointer is a bug. However, could anything on my side result in the failure of the shader to compile?
Thanks
Rick
Thanks
Rick
On Feb 27, 2016, at 12:08 PM, Ken Martin <ken.martin at kitware.com> wrote:
Awesome! I'll try to think about adding some sort of check for that condition. I can see it biting a number of folks.
Thanks
Ken
On Sat, Feb 27, 2016 at 9:48 AM, Richard Frank <rickfrank at me.com> wrote:
Hi,
We found the shared mapper, which was being copied during an object assignment operator. Problem solved. Thanks for the pointers! ( no pun, well maybe a small pun, intended)
Rick
Sent from my iPad
On Feb 24, 2016, at 12:16 PM, Ken Martin <ken.martin at kitware.com> wrote:
Thanks that helps. I am starting to wonder if the issue is related to multiple render windows. With multiple windows it is important to not share actors or mappers in the new OpenGL backend. Each window needs its own mappers and actors. They can share the same data source/readers but not the opengl pieces like actors/mappers. Does the problem still exist if you only have one renderWindow?
Thanks
Ken
On Wed, Feb 24, 2016 at 12:04 PM, Richard Frank <rickfrank at me.com> wrote:
I traced through the VTK code and then added a vtkOpenGLCheckErrorMacro :
vtkOpenGLPolyDataMapper::UpdateShaders(
vtkOpenGLHelper &cellBO, vtkRenderer* ren, vtkActor *actor)
{
vtkOpenGLRenderWindow *renWin = vtkOpenGLRenderWindow::SafeDownCast(ren->GetRenderWindow());
cellBO.VAO->Bind();
vtkOpenGLCheckErrorMacro("failed after cellBO.VAO->Bind()");
ERROR: In vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line 1390
vtkOpenGLPolyDataMapper (0000025BBD546CB0): failed after cellBO.VAO->Bind() 1 OpenGL errors detected
0 : (1282) Invalid operation
and the gl log has
GL ERROR - Function glBindVertexArray generated error GL_INVALID_OPERATION
GL ERROR - Function glDrawRangeElements generated error GL_OUT_OF_MEMORY
I'm guessing the glBindVertexArray is generating the error? Any ideas what might cause that?
The 6.3.0 code seemed to not use any shaders when rendering my model - when I launched the Shader Editor using 6.3.0 it was blank. When I launched the 7.0.0 code there were a bunch of shaders being used.....
Thanks
Rick
On Feb 23, 2016, at 11:58 AM, Ken Martin <ken.martin at kitware.com> wrote:
Hmm something is really odd there. 16600 points/normals is trivially small. Even if you had 100 actors each with 16600 points that would be small. There are a couple ways to debug something like this. One is to go old school and sprinkle
vtkOpenGLCheckErrorMacro("failed after something");
throughout the code to see where the issue is. Another option on windows is to use
https://github.com/dtrebilco/glintercept
which produces a log showing the specific call that caused the problem and when run in the debugger it will break on opengl errors. There are other tools with similar capabilities available as well.
If you can boil it down to something smaller I could try it out, my dev systems are all Qt4 though...
Ken
On Tue, Feb 23, 2016 at 11:37 AM, Richard Frank <rickfrank at me.com> wrote:
There are 16600 points and 16600 normals in each model, I'm using Qt 5.5 and there are four of these models - 1 in each renderview - (Sagital, Axial, Coronal, etc). Each model is composed of surfaces created with triangle strips.
Each model contains a number of actors for each surface, (variable, depends on anatomy) put together into an assembly.
It's a medical application. Works fine in VTK 6.3.0
NVidia quadro K5200
Graphics Card should be beefy enough.
Rick
On Feb 22, 2016, at 09:44 PM, Ken Martin <ken.martin at kitware.com> wrote:
Out of memory is an unusual one. Maybe the mesh is too big to load all at once in the new backend. How big is the mesh you are trying to render (number of points, number of triangles) and does it use cell colors or cell normals? That would help me get a feel if it is really just exceeding what the card can handle.
Thanks
Ken
On Mon, Feb 22, 2016 at 6:50 PM, Richard Frank <rickfrank at me.com> wrote:
Hi,
I get the following errors ( and my fairly complex polygon mesh fails to render ) when using VTK 7.0.
ERROR: In
\vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line 1440
vtkOpenGLPolyDataMapper (0000016618EFD490): failed after UpdateShader 1 OpenGL errors detected
0 : (1282) Invalid operation
ERROR: In \vtk770\Rendering\OpenGL2\vtkOpenGLActor.cxx, line 91
vtkOpenGLActor (0000016619E228B0): failed after Render 1 OpenGL errors detected
0 : (1285) Out of memory
This is code is " works " fine in 6.3.0.
I'm using an NVidia quadro K5200 with 8G.
Any tips on how to debug this?
Thanks
Rick
Sent from my iPad
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
Search the list archives at: http://markmail.org/search/?q=vtkusers
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtkusers
--
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971
This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error please notify us immediately and destroy the original message. Thank you.
--
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971
This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error please notify us immediately and destroy the original message. Thank you.
--
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971
This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error please notify us immediately and destroy the original message. Thank you.
--
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971
This communication, including all attachments, contains confidential and legally privileged information, and it is intended only for the use of the addressee. Access to this email by anyone else is unauthorized. If you are not the intended recipient, any disclosure, copying, distribution or any action taken in reliance on it is prohibited and may be unlawful. If you received this communication in error please notify us immediately and destroy the original message. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160227/fa304cd0/attachment.html>
More information about the vtkusers
mailing list