Manta Interactive Ray Tracer Development Mailing List

Text archives Help


Re: [MANTA] SSE performance


Chronological Thread 
  • From: Solomon Boulos <boulos@cs.utah.edu>
  • To: manta@sci.utah.edu
  • Subject: Re: [MANTA] SSE performance
  • Date: Mon, 17 Jul 2006 16:03:23 -0600 (MDT)

Speaking for the BVH, I would like to claim that it is not only not 
well-tested but known to work poorly in some cases (if Ingo is around ask 
him about +- Z axis on Thai statue, I believe it's +- X for Buddha).

As far as Manta's SSE performance, Manta has (due to Steve) the same 
performance as DynRT and DynBVH for generating rays and storing the 
results of tracing for large 1 spp images.  As far as stuff like 
acceleration structures go though, this is where Steve got to before he 
had to go back to other work (if I recall correctly).  

So other than the need to port the DynRT grid and BVH code into the Manta 
framework of Groups (the BVH is already in Manta but not the interval 
arithmetic culling aspect) and subpackets there is basically not that much 
work to do (it would be a good idea to extend the RayPacket to support the 
functionality necessary to build bounding planes or intervals for the 
necessary culling algorithms).  For my RT06 submission I worked out all 
the details for building general bounding planes around packets (no 
restriction to square packets and such) so doing that quickly in SSE and 
such might be a good start.

Like I said though, even before using bounding planes for the Grid and for 
triangle culling, it'd be nice to make sure that the intersection pipeline 
in Manta is up to snuff (I believe Steve's optimizations only went as far 
as ray generation and framebuffer writes).  This shouldn't be difficult 
and a basic implementation of Ingo's triangle test already exists in 
Models/Primitives/WaldTriangle which should hopefully perform at roughly 
the same level as similar code in DynRT (I also created a simple perftest 
scene or something like that that just has a couple triangles in it to 
test exactly this case).    

On Mon, 17 Jul 2006, Aaron Knoll wrote:

> Hi everyone (especially James and Steve) -
> 
> Thiago and I were talking a bit about Manta. Ideally, we'd like to port the
> DynRT grid code to Manta and use that as a permanent framework for our
> research.
> 
> Unfortunately, Manta has a ways to go before that works. Back in June I was
> experimenting with the SSE frustum/octree code in Manta, and it generally
> performed about 1/5th the speed it did under icc and linux. I spent a good
> week trying to get the SSE code performing before I gave up.
> 
> I'm not sure where the problem is; I suspect alignment in RayPacket could be
> the culprit but I'm not positive. There are other issues; for example we
> really need a way of generating packets of square tiles, and quickly
> determining corner rays for frusta traversal.
> 
> Could someone (maybe James?) devote some time to fully porting the DynRT
> RayPacket and renderer code into Manta? At this point, the DynRT grid and 
> BVH
> are well-tested and known to work fast. Once that is in there, and 
> performing
> on par with DynRT, then we'd have no problem abandoning DynRT and merging 
> into
> Manta.
> 
> Hope this request isn't too forward; really I want to work on Manta as much 
> as
> possible but I'd prefer not to spend a lot of time troubleshooting SSE
> architectural issues as long as DynRT is working and Chuck's trying to 
> squeeze
> research out of me :)
> 
> -Aaron
> 





Archive powered by MHonArc 2.6.16.

Top of page