POV-Ray : Newsgroups : povray.bugreports : 3.7RC3 animation error (64 bit, linux) Server Time
31 Oct 2024 10:22:29 EDT (-0400)
  3.7RC3 animation error (64 bit, linux) (Message 1 to 6 of 6)  
From: cab15625
Subject: 3.7RC3 animation error (64 bit, linux)
Date: 12 May 2011 15:35:01
Message: <web.4dcc3572baec948634b971010@news.povray.org>
When trying to use the internal animation loop, the program segfaults when
starting the second frame (one frame renders correctly, but the second one
segfaults).  Is there an easy way to determine if this is something that I have
caused by compiling POV-Ray?

This occurred on a system running Debian-6.0.1a (64 bit).

The problem only occurs when I try to run on larger images.  Rendering an
800x800 animation causes POV to crash.  320x320 does not cause a crash.

Information from "povray --version":
Built-in features:
  I/O restrictions:          enabled
  X Window display:          enabled (using SDL)
  Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
  Unsupported image formats: -

Compilation settings:
  Build architecture:  x86_64-unknown-linux-gnu
  Built/Optimized for: x86_64-unknown-linux-gnu (using -march=native)
  Compiler vendor:     gnu
  Compiler version:    g++ 4.4.5
  Compiler flags:      -pipe -Wno-multichar -Wno-write-strings
-fno-enforce-eh-specs -s -O3 -ffast-math -march=native -pthread

Minimal Scene file that causes the problem:

Save it to "crash.pov" and run with
povray +v +d +w800 +h800 +a +am2 +wt4 +kfi0 +kff10 +icrash.pov

crash.pov:
#version 3.7 ;

global_settings { assumed_gamma 1.0 }

camera {}

box { -1, 1 pigment { colour rgb clock }}


Post a reply to this message

From: Le Forgeron
Subject: Re: 3.7RC3 animation error (64 bit, linux)
Date: 12 May 2011 16:30:01
Message: <4dcc4349$2@news.povray.org>
Le 12/05/2011 21:30, cab15625 nous fit lire :
> The problem only occurs when I try to run on larger images.  Rendering an
> 800x800 animation causes POV to crash.  320x320 does not cause a crash.
> 

I rendered the 11 frames fine, but I compile without io-restrictions.
And my gcc is 4.5.2... (Ubuntu 11.4, 64 bits)


Post a reply to this message

From: Le Forgeron
Subject: Re: 3.7RC3 animation error (64 bit, linux)
Date: 13 May 2011 03:59:12
Message: <4dcce4d0@news.povray.org>
Le 12/05/2011 22:30, Le_Forgeron a écrit :
> Le 12/05/2011 21:30, cab15625 nous fit lire :
>> The problem only occurs when I try to run on larger images.  Rendering an
>> 800x800 animation causes POV to crash.  320x320 does not cause a crash.

I tried it again on another system (fresh install of 3.7RC3 with all
defaults)
Another ubuntu (LTS, 10.04 Lucid Lynx)
Gcc 4.4.3

No crash either.
(on quadcore xeon)

povray: This is a RELEASE CANDIDATE version of POV-Ray. General
distribution is discouraged.
POV-Ray 3.7.0.RC3

This is a release candidate of POV-Ray version 3.7.0.
General distribution is strongly discouraged.

Copyright 1991-2003 Persistence of Vision Team
Copyright 2003-2011 Persistence of Vision Raytracer Pty. Ltd.

Built-in features:
  I/O restrictions:          enabled
  X Window display:          enabled (using SDL)
  Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
  Unsupported image formats: -

Compilation settings:
  Build architecture:  x86_64-unknown-linux-gnu
  Built/Optimized for: x86_64-unknown-linux-gnu (using -march=native)
  Compiler vendor:     gnu
  Compiler version:    g++ 4.4.3
  Compiler flags:      -pipe -Wno-multichar -Wno-write-strings
-fno-enforce-eh-specs -s -O3 -ffast-math -march=native -pthread


-- 
Software is like dirt - it costs time and money to change it and move it
around.

Just because you can't see it, it doesn't weigh anything,
and you can't drill a hole in it and stick a rivet into it doesn't mean
it's free.


Post a reply to this message

From: cab15625
Subject: Re: 3.7RC3 animation error (64 bit, linux)
Date: 13 May 2011 14:40:01
Message: <web.4dcd7a3da5d5536cb78589070@news.povray.org>
OK, I've tried a couple of different compile flag combinations, and I still get
the crash with my system.

So, I tried to compile with debugging enabled.

Running in a debugger shows that segfault occurs in disp_sdl.cpp at line 345

the debugger is claiming that the int "ofs" used as an index has been "optimized
out".

ofs is set in the previous line by

unsigned int ofs = ix + iy * m_display->w;

So, my question now is, does this occur as a result of a compiler error, or is
it a problem with something else.

Note 1: As a matter of curiosity I also ran the test without the display
enabled.  Running povray with "-d" rather than "+d" results in a successful
render of all frames.

Note 2: I thought I had compiled without optimization, but apparently I made a
typo when running configure.


Post a reply to this message

From: Le Forgeron
Subject: Re: 3.7RC3 animation error (64 bit, linux)
Date: 16 May 2011 05:15:02
Message: <4dd0eb16@news.povray.org>
Le 13/05/2011 20:36, cab15625 a écrit :
> OK, I've tried a couple of different compile flag combinations, and I still get
> the crash with my system.
> 
> So, I tried to compile with debugging enabled.
> 
> Running in a debugger shows that segfault occurs in disp_sdl.cpp at line 345
> 
> the debugger is claiming that the int "ofs" used as an index has been "optimized
> out".
> 
> ofs is set in the previous line by
> 
> unsigned int ofs = ix + iy * m_display->w;
> 
> So, my question now is, does this occur as a result of a compiler error, or is
> it a problem with something else.
> 
> Note 1: As a matter of curiosity I also ran the test without the display
> enabled.  Running povray with "-d" rather than "+d" results in a successful
> render of all frames.
> 
> Note 2: I thought I had compiled without optimization, but apparently I made a
> typo when running configure.
> 
> 
To compile without optimisation is harder than removing the "-s -O3" flags.
By default gcc is -O2, so removing optimisation requires to use "-O0"
(Oscar Zero)

I'm very interested in this issue.

-- 
Software is like dirt - it costs time and money to change it and move it
around.

Just because you can't see it, it doesn't weigh anything,
and you can't drill a hole in it and stick a rivet into it doesn't mean
it's free.


Post a reply to this message

From: cab15625
Subject: Re: 3.7RC3 animation error (64 bit, linux)
Date: 16 May 2011 12:40:00
Message: <web.4dd152fba5d5536cb78589070@news.povray.org>
Le_Forgeron <lef### [at] freefr> wrote:
> Le 13/05/2011 20:36, cab15625 a écrit :
> > OK, I've tried a couple of different compile flag combinations, and I still get
> > the crash with my system.
> >
> > So, I tried to compile with debugging enabled.
> >
> > Running in a debugger shows that segfault occurs in disp_sdl.cpp at line 345
> >
> > the debugger is claiming that the int "ofs" used as an index has been "optimized
> > out".
> >
> > ofs is set in the previous line by
> >
> > unsigned int ofs = ix + iy * m_display->w;
> >
> > So, my question now is, does this occur as a result of a compiler error, or is
> > it a problem with something else.
> >
> > Note 1: As a matter of curiosity I also ran the test without the display
> > enabled.  Running povray with "-d" rather than "+d" results in a successful
> > render of all frames.
> >
> > Note 2: I thought I had compiled without optimization, but apparently I made a
> > typo when running configure.
> >
> >
> To compile without optimisation is harder than removing the "-s -O3" flags.
> By default gcc is -O2, so removing optimisation requires to use "-O0"
> (Oscar Zero)
>
> I'm very interested in this issue.
>
> --
> Software is like dirt - it costs time and money to change it and move it
> around.
>
> Just because you can't see it, it doesn't weigh anything,
> and you can't drill a hole in it and stick a rivet into it doesn't mean
> it's free.

I'm not sure how to proceed from here.  If I render with display turned off,
everything works fine.  If I render with display turned on, but small frames
(320x320) everything works fine.  If I render large frames (800x800) with
display turned on, the SDL code used to make displays work in X seems to crash
due to problems with optimization.  Is there anything that I can try to narrow
down the problem?

Would changing the CFLAGS environment variable be sufficient to override what
the POV-Ray compile does?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.