POV-Ray : Newsgroups : povray.general : Q: max_trace_level with POV 3.02? Server Time
15 Nov 2024 19:21:16 EST (-0500)
  Q: max_trace_level with POV 3.02? (Message 1 to 4 of 4)  
From: Swift
Subject: Q: max_trace_level with POV 3.02?
Date: 16 Dec 1998 08:54:39
Message: <3677BB5F.1450C804@fanpro.com>
Hi there!

Most of my scenes use many reflective and colored transparent surfaces,
but when I increase the max_trace_level-value to 35 for example, POV for
Win 3.02 crashes when rendering the scene (invalid page fault at
0157:0041ba9c). Under DOS (also 3.02) it works fine until a value of 35
or 40, above that I got a crash, too.

Is there a way to increase the max_trace_level to 40 or more? And why do
both programs crash with higher values?

Thanks...!

 ... swift (tobias wiersch)


Post a reply to this message

From: Nieminen Mika
Subject: Re: Q: max_trace_level with POV 3.02?
Date: 16 Dec 1998 09:36:53
Message: <3677c585.0@news.povray.org>
Swift <swi### [at] fanprocom> wrote:
: but when I increase the max_trace_level-value to 35 for example, POV for
: Win 3.02 crashes when rendering the scene

  This is a "known" bug.
  I think that it's a stack overflow problem.
  Reflections and refractions mean recursive functions calls. Recursive
function calls mean using of stack. When the stack is full and there's no
stack overflow checking, the program crashes.
  Watcom links a 8k stack by default. This is too little.
  I just tested Povray 3.02 for UNIX with max_trace_level set to 150 and no
problem. I think there's no stack limit in UNIX.

  I think that your only chance is to recompile povray with a bigger stack.

-- 
main(i){char*_="BdsyFBThhHFBThhHFRz]NFTITQF|DJIFHQhhF";while(i=
*_++)for(;i>1;printf("%s",i-70?i&1?"[]":" ":(i=0,"\n")),i/=2);} /*- Warp. -*/


Post a reply to this message

From: Ken
Subject: Re: Q: max_trace_level with POV 3.02?
Date: 16 Dec 1998 17:59:10
Message: <36783B02.7373@pacbell.net>
Nieminen Mika wrote:
> 
> Swift <swi### [at] fanprocom> wrote:
> : but when I increase the max_trace_level-value to 35 for example, POV for
> : Win 3.02 crashes when rendering the scene
> 
>   This is a "known" bug.
>   I think that it's a stack overflow problem.
>   Reflections and refractions mean recursive functions calls. Recursive
> function calls mean using of stack. When the stack is full and there's no
> stack overflow checking, the program crashes.
>   Watcom links a 8k stack by default. This is too little.
>   I just tested Povray 3.02 for UNIX with max_trace_level set to 150 and no
> problem. I think there's no stack limit in UNIX.
> 
>   I think that your only chance is to recompile povray with a bigger stack.


If it's a stack problem you can increase your stack settings
at least for the dos version with an addittion of a single line
to your config.sys file. It will eat memory to do so but it is
possible.


Ken Tyler


Post a reply to this message

From: Nieminen Mika
Subject: Re: Q: max_trace_level with POV 3.02?
Date: 17 Dec 1998 09:03:50
Message: <36790f46.0@news.povray.org>
Ken <tyl### [at] pacbellnet> wrote:
: If it's a stack problem you can increase your stack settings
: at least for the dos version with an addittion of a single line
: to your config.sys file. It will eat memory to do so but it is
: possible.

  I think that the stack segment of a program has nothing to do with the
stacks-option in config.sys file.

  I had the same stack overflow problem with my triangle mesh smoother.
There is a recursive function there and I was compiling with the stack
overflow checking turned off. When the input was too big, the program
crashed. I din't know why. Then I tried to compile without any optimization,
and there it was: It ended the program with a "Stack overflow" message.
  Then I compiled with all the optimizations set but without removing the
stack overflow checking and increased the stack size to 1M with the linker,
and the program worked. (Of course if you give it a very gigantic mesh, it
will end with the "Stack overflow" error message).

-- 
main(i){char*_="BdsyFBThhHFBThhHFRz]NFTITQF|DJIFHQhhF";while(i=
*_++)for(;i>1;printf("%s",i-70?i&1?"[]":" ":(i=0,"\n")),i/=2);} /*- Warp. -*/


Post a reply to this message

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