[GRASS-user] [bug #3041] nviz max resolution ppm image dump

William Hargrove hnw at fire.esd.ornl.gov
Tue Aug 29 08:43:59 EDT 2006


Thanks, Hamish:

Notice that my error:

Creating PBuffer Using GLX 1.3
Final Assembled Image will be 1 x 1
Writing Tile 1 of 1
Assembling Tiles

is a little different from your error:

Create PixMap Using GLX 1.1
Final Assembled Image will be 1935 x 2048
Writing Tile 1 of 9
Writing Tile 2 of 9
Writing Tile 3 of 9
MALLOC Failed


Mine does not seem to read the PBuffer screen size correctly from GLX, while yours does.
Yours fails on the MALLOC, while mine just segfaults.

The relevant code seems to be in do_zoom.c, but I can't make much sense out of it.

Perhaps Covill can help?

Bill H.



Hamish wrote:

>William Hargrove wrote:
>  
>
>>>>My nviz dies with a segfault when I try to dump an image as maximum 
>>>>resolution ppm.
>>>>
>>>>I have this same problem with grass 6.1 under FC 5, and under grass
>>>>5.4 under FC 4.
>>>>        
>>>>
>..
>  
>
>>>>I can dump the other formats just fine.
>>>>
>>>>The map products look great on the screen, but aren't much use if I 
>>>>can't get them into a high-res image file.
>>>>
>>>>Does anyone have any advice on this problem?
>>>>        
>>>>
>
>Hamish wrote:
>  
>
>>>what's the date on the 6.1? 6.1.0 or 6.1-cvs? This was an old known
>>>problem on 64bit &/or big endian (Mac G5), I had thought that it was
>>>fixed by Glynn & crew some months ago.
>>>      
>>>
>
>I guess it is this bug after all:
>
>  
>
>>>http://intevation.de/rt/webrt?serial_num=3041
>>>      
>>>
>
>
>William Hargrove wrote:
>  
>
>>This is 6.1.0 built from source, running under 64-bit FC 5.
>>
>>Here is what happens when I try to dump a max-res ppm:
>>
>>recalculating normals...
>>recalculating normals...
>>Diagnostic: invalid command name "Nviz_animation_save" --  Save 
>>procedure for panel animation may not be defined
>>Diagnostic: invalid command name "Nviz_kanimator_save" --  Save 
>>procedure for panel kanimator may not be defined
>>Diagnostic: invalid command name "Nviz_query_save" --  Save procedure 
>>for panel query may not be defined
>>Diagnostic: invalid command name "Nviz_sdiff_save" --  Save procedure 
>>for panel sdiff may not be defined
>>Diagnostic: invalid command name "Nviz_label_save" --  Save procedure 
>>for panel label may not be defined
>>Diagnostic: invalid command name "Nviz_scale_save" --  Save procedure 
>>for panel scale may not be defined
>>Diagnostic: invalid command name "Nviz_pos_save" --  Save procedure
>>for  panel pos may not be defined
>>Diagnostic: invalid command name "Nviz_resize_save" --  Save procedure
>>
>>for panel resize may not be defined
>>Diagnostic: invalid command name "Nviz_pick_save" --  Save procedure
>>for  panel pick may not be defined
>>Diagnostic: invalid command name "Nviz_highlight_save" --  Save 
>>procedure for panel highlight may not be defined
>>Creating PBuffer Using GLX 1.3
>>Final Assembled Image will be 1 x 1
>>Writing Tile 1 of 1
>>Assembling Tiles
>>GLX -- destroy pbuffer
>>./donviz: line 2: 10088 Segmentation fault      nviz 
>>elevation=elev48.new color=neon2.25
>>vector=states100,neondomains_states
>>
>>Any ideas?
>>    
>>
>
>
>I get a segfault too:   (32bit P4, 2gig RAM, Debian/stable)
>
>Speafish with nviz window made to be large:
>
>G63> nviz elevation.10m
>Loading Data
>Update elev null mask
>Loading Data
>translating colors from fp
>recalculating normals...
>r200_makeX86Normal3fv/197 CVAL 0 OFFSET 14 VAL 8260df0
>r200_makeX86Normal3fv/198 CVAL 4 OFFSET 20 VAL 8260df4
>r200_makeX86Normal3fv/199 CVAL 8 OFFSET 25 VAL 8260df8
>r200_makeX86Normal3fv done
>% recalculating normals...
>Creating PBuffer Using GLX 1.3
>Create PixMap Using GLX 1.1
>Final Assembled Image will be 1935 x 2048
>Writing Tile 1 of 9
>Writing Tile 2 of 9
>Writing Tile 3 of 9
>MALLOC Failed
>Segmentation fault
>
>(hard to replicate)
>
>The "MALLOC Failed" message comes from lib/ogsf/gsd_prim.c
>
>/************************************************************************/
>int gsd_writeView(unsigned char **pixbuf, unsigned int xsize,
>                  unsigned int ysize)
>{
>
>    /* Malloc Buffer for image */
>    *pixbuf = malloc(xsize * ysize * 4);
>
>
>    if (!*pixbuf) {
>        fprintf(stderr, "MALLOC Failed\n");
>        return (0);
>    }
>
>    /* Read image buffer */
>    glReadBuffer(GL_FRONT);
>
>    /* Read Pixels into Buffer */
>    glReadPixels(0, 0, xsize, ysize, GL_RGBA, GL_UNSIGNED_BYTE, *pixbuf);
>    return (1);
>}
>
>/************************************************************************/
>
>
>
>
>
>
>with window left at starting size:  [note larger "Final Assembled Size"]
>
>G63> nviz elevation.10m
>Loading Data
>Update elev null mask
>Loading Data
>translating colors from fp
>recalculating normals...
>r200_makeX86Normal3fv/197 CVAL 0 OFFSET 14 VAL 82613f8
>r200_makeX86Normal3fv/198 CVAL 4 OFFSET 20 VAL 82613fc
>r200_makeX86Normal3fv/199 CVAL 8 OFFSET 25 VAL 8261400
>r200_makeX86Normal3fv done
>% Creating PBuffer Using GLX 1.3
>Create PixMap Using GLX 1.1
>Final Assembled Image will be 2048 x 2048
>Writing Tile 1 of 9
>Writing Tile 2 of 9
>Writing Tile 3 of 9
>Writing Tile 4 of 9
>Writing Tile 5 of 9
>Writing Tile 6 of 9
>Writing Tile 7 of 9
>Writing Tile 8 of 9
>Writing Tile 9 of 9
>Assembling Tiles
>pnmcat: Zero byte allocation
>pnmcat failed to create assembled image
>Check that pnmcat is installed and path is set
>pnmcat: Zero byte allocation
>pnmcat failed to create assembled image
>Check that pnmcat is installed and path is set
>pnmcat: Zero byte allocation
>pnmcat failed to create assembled image
>Check that pnmcat is installed and path is set
>pnmcat: EOF / read error reading magic number
>pnmcat failed to create assembled images
>Check that pnmcat is installed and path is set
>Destroy Pixmap and GLXPixmap
>
>no segfault, NVIZ keeps running, these files are left behind:
>(easy to replicate)
>
>
>      0 Aug 29 17:24 spearNVhi2.ppm
>3145745 Aug 29 17:24 spearNVhi2_1_1.ppm
>3145745 Aug 29 17:24 spearNVhi2_1_2.ppm
>     14 Aug 29 17:24 spearNVhi2_1_3.ppm
>3145745 Aug 29 17:24 spearNVhi2_2_1.ppm
>3145745 Aug 29 17:24 spearNVhi2_2_2.ppm
>     14 Aug 29 17:24 spearNVhi2_2_3.ppm
>     14 Aug 29 17:24 spearNVhi2_3_1.ppm
>     14 Aug 29 17:24 spearNVhi2_3_2.ppm
>     11 Aug 29 17:24 spearNVhi2_3_3.ppm
>      0 Aug 29 17:24 spearNVhi2tmp1.ppm
>      0 Aug 29 17:24 spearNVhi2tmp2.ppm
>      0 Aug 29 17:24 spearNVhi2tmp3.ppm
>      0 Aug 29 17:30 spearNVhi3.ppm.ppm
>
>assembly of rows then full image fail as partials are not valid images
>(14 byte ones). Images with data assemble, but contain random x-window
>buffer weirdness: multi-virtual-desktop collages.
>
>Summary: the partial tiles are broken.
>
>I haven't tried it with just one workspace.
>
>
>minimizing the NVIZ window (before clicking "ok" for the output
>filename) gives the same result.
>
>
>at the end of the bug report Glynn offers a reason, but I have no idea
>where to go from there. Dumb debugging effort: I still get the broken
>result if I comment out "Nset_cancel_func update" in
>  visualization/nviz/scripts/nviz2.2_script
>and rebuild nviz.
>
>
>?
>Hamish
>  
>


-- 
William W. Hargrove                     hnw at fire.esd.ornl.gov
Environmental Sciences Division         (865) 241-2748
Oak Ridge National Laboratory           (865) 574-4665 (fax)
P.O. Box 2008, M.S. 6407                http://research.esd.ornl.gov/~hnw
Oak Ridge, TN  37830-6407               FedEx/UPS, use "Bethel Valley Rd."




More information about the grass-user mailing list