View Issue Details

IDProjectCategoryView StatusLast Update
0002282FreeCADBugpublic2015-09-30 21:09
Reportermrpace2 Assigned Towmayer  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
PlatformWindowsOSWindows x64OS Version7
Product Version0.15 
Fixed in Version0.16 
Summary0002282: Cannot save image to file (QGLPixelBuffer: Unable to find a pixel format with pbuffer)
DescriptionI am trying to save an image to a file (Tools > Save picture). It fails. The status bar briefly shows "Cannot save image to file '<filename>'". An image file is created with zero size.

I tried different image formats (png, jpeg, bmp, tiff). I do have permission to save to that location.
Steps To Reproduce- Open project or create a new project
- Select Tools > Save picture...
- Provide a filename (e.g. test.png)
- Click Save
Additional InformationI started Freecad with the -l option. %APPDATA%\FreeCAD\FreeCAD.log records this error:

Log: QGLPixelBuffer: Unable to find a pixel format with pbuffer - giving up.
Err: <unknown exception traceback><type 'exceptions.RuntimeError'>: Cannot save image to file 'C:/Users/<myusername>/Downloads/test.png'.
TagsNo tags attached.
FreeCAD Information

Activities

wmayer

2015-09-30 12:04

administrator   ~0006471

The message comes from Qt: https://github.com/openwebos/qt/blob/master/src/opengl/qglpixelbuffer_win.cpp#L295
So, it's basically a problem with your graphic driver that you can't use pixel buffer.

It has nothing to do with the format in which you want to save the image because the problem appears much earlier when an image should be created by off-screen rendering.

So try this: go to Tools > Parameter editor. There go to the group BaseApp > Preferences > Document and create a boolean key called "DisablePBuffers" and set it to true. Try saving again an image.

If this doesn't work then set the above value to false (or remove it) and create a second key "CoinOffscreenRenderer" and set it to true.

If this doesn't work then try to get a preview version of 0.16. And if even this fails then there is nothing more we can do about it since it's clearly not a bug in FreeCAD but related to the driver.

However, in FreeCAD we can avoid to save an empty file, at least.

mrpace2

2015-09-30 12:26

reporter   ~0006472

I tried the workarounds you suggested. The parameters did not resolve the issue with 0.15. So I tried 0.16-dev. Without the parameters, 0.16-dev out of the box failed with a red error message in the status bar: "Cannot save null image". Same for DisablePBuffers=true. However, 0.16-dev works with CoinOffscreenRenderer=true. Thanks for proposing the workaround.

Let me know if there is anything else you want me to try or log. Whatever the issue is, it did not surface with 0.14.

wmayer

2015-09-30 21:08

administrator   ~0006473

> Let me know if there is anything else you want me to try or log. Whatever the issue is, it did not surface with 0.14.
Thanks but there is nothing more to test. With v0.15 there is no way to get it working (unless a driver update may fix the issue).

v0.16 re-enables OpenInventor's (Coin3D) off-screen renderer which apparently uses old OpenGL calls for pixel buffer while Qt uses new OpenGL functions which don't work properly with your driver.

As said there is nothing more we can do from our side. So, I close the ticket as solved.

Issue History

Date Modified Username Field Change
2015-09-29 12:43 mrpace2 New Issue
2015-09-30 12:04 wmayer Note Added: 0006471
2015-09-30 12:26 mrpace2 Note Added: 0006472
2015-09-30 21:08 wmayer Note Added: 0006473
2015-09-30 21:09 wmayer Status new => closed
2015-09-30 21:09 wmayer Assigned To => wmayer
2015-09-30 21:09 wmayer Resolution open => no change required
2015-09-30 21:09 wmayer Fixed in Version => 0.16