View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002282 | FreeCAD | Bug | public | 2015-09-29 12:43 | 2015-09-30 21:09 |
Reporter | mrpace2 | Assigned To | wmayer | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | Windows | OS | Windows x64 | OS Version | 7 |
Product Version | 0.15 | ||||
Fixed in Version | 0.16 | ||||
Summary | 0002282: Cannot save image to file (QGLPixelBuffer: Unable to find a pixel format with pbuffer) | ||||
Description | I 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 Information | I 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'. | ||||
Tags | No tags attached. | ||||
FreeCAD Information | |||||
|
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. |
|
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. |
|
> 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. |
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 |