eryar / occQt

A simple OpenCASCADE Qt demo.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VBO creation for Primitive Array has failed for 169 vertices. Out of memory?

siserte opened this issue · comments

I have compiled the program and when I execute it, I get the following error:

 TKOpenGl | Type: Performance | ID: 0 | Severity: Low | Message:   
VBO creation for Primitive Array has failed for 169 vertices. Out of memory?

Any idea?

My testbed:

  • Intel i7 with 8GB of memory
  • Windows 10
  • OpenCascade 6.9.1 vc12-64
  • QT 5.5.1

Have you tried with OpenCASCADE7.3.0?

Not yet. Does it mean that it cannot work with OCC 6.9.1?

What operation cause that Out of memory error?

I've executed the original code without changes.
Before the error I get this message:

QWidget::repaint: Recursive repaint detected
TKOpenGl | Type: Performance | ID: 0 | Severity: Low | Message:
  VBO creation for Primitive Array has failed for 169 vertices. Out of memory?

Does it help? If not, I am happy to follow your guides to debug!

Thank you!

For opencascade6.9.x I remember that you should set several environment variables, such as:
set CSF_ShaderDirectory=%CASROOT%\src\Shaders
set CSF_GraphicShr=TKOpenGl.dll

you can define them in a *.bat file before run the occQt.exe.

I've added those variables to the "Run environment" in QT (and also in the .pro file) without any difference.
I understand that from there they should be read.

We are missing something...

Thank you!

Could you give a screenshot for that error?

Here it goes!

image

Thank you!

From your screenshot, I think it is the shader environment variable problem, you can refer the older version of occQt to handle this for opencascade6.9.x:

37e96f5#diff-118fcbaaba162ba17933c7893247df3a

For opencascade7.x version solve this problem and do not need set environment variable for shader path. It is better to use the opencascade7.x version.

Hi @siserte,
Have you solved the problem?

Sorry! I wanted to test it a little bit more.
The program compiles and runs.
However, although I can add objects, I cannot rotate, move, etc... them.

Thank you!

@siserte Ok, I will close this issue.

You can not rotate, move, .etc the displayed objects in the current version.
The rotate, move and pan function is only for the 3d viewer.

I will add the AIS_Manipulator to move, rotate the objects soon.

Thank you! I'm looking forward for that feature!

The class AIS_Manipulator is introduced in opencascade7.2.0,
so the version before 7.2.0 will not support this feature.

Hi @eryar , @siserte
Do you have any more info about this issue? I have the same error with OCCT 7.4.0

Requesting OpenGL 4.3 core context succeeded
TKOpenGl | Type: Performance | ID: 0 | Severity: Low | Message:
  VBO creation for Primitive Array has failed for 46 vertices. Out of memory?

Sometimes I also get this error:

Requesting OpenGL 4.3 core context succeeded
TKOpenGl | Type: Error | ID: 0 | Severity: High | Message:
  FBO blitting has failed [Error #1282]
  Please check your graphics driver settings or try updating driver.
  MSAA settings should not be overridden by driver!

Thank you in advance.

@mnesarco Maybe your graphics driver problem, try to update your graphics?

Hi @eryar
It was a synchronization problem, i accidentally modify the renderer state from the gui thread. I have fixed it and now it is working as expected.