Re: [Celestia-developers] Addendum VC++2008
Real-time 3D visualization of space
Status: Beta
Brought to you by:
cjlaurel
From: Fridger S. <fri...@de...> - 2009-06-25 18:18:15
|
Chris, yes, I was also aware of the URL you referred to. There are others relating to the non-effectiveness of /Oy in SP1. Altogether we seem to agree that the only semi-sensible explanation of the observed effects points towards a compiler bug. Now to return to reality ;-), how should we proceed?? I still vote for (/Oi /Oy /O2) since this combination doesn't seem to hurt anybody, leading instead to a reasonably good performance that matches the one from gcc in Linux. I have also run benchtests for Celestia-Qt but didn't report (yet), since it is less urgent than getting out 1.6! Fridger Chris Laurel wrote: > Fridger, > > I do not have SP1 for MS Visual C++ 2008 yet, so that could explain the > different results that we're getting. I noticed that Ulrich does have > SP1 and is seeing performance differences comparable to yours. The VS > 2008 SP1 bug you linked to seems unlikely to be at the root of the O2 vs > Ox difference since it apparently affects both modes. But here's > something else to look out for: > > http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/3108af8e-14f9-4cae-9631-981e35263fc3 > > <http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/3108af8e-14f9-4cae-9631-981e35263fc3>This > may have been at the the cause of the original problem with the > optimization getting disabled in the converted project file, and it > suggests that we should be careful when switching optimization modes. > > I experimented with switching switching from precise floating point to > fast floating point operations. The frame rates jumped significantly: > > Earth view: 200 (/Ox, /fp:precise) -> 221 (/Ox, /fp:fast) > M74: 160 (/Ox, /fp:precise) -> 200 (/Ox, /fp:fast) > > Enabling /fp:fast is not something I'd want to do for 1.6.0. It *is* > something to consider for the future after some testing. I'd be very > hesitant to enable it for analysis software, but for a visualization > package like Celestia, the effects of a bit of floating point precision > should be imperceptible if we've designed the software correctly. > > --Chris > > On Thu, Jun 25, 2009 at 7:43 AM, Fridger Schrempp > <fri...@de... <mailto:fri...@de...>> wrote: > > Could that MS bug be at the root of my findings? I do use SP1. Do you? > Here is the URL: http://support.microsoft.com/kb/960257 > > SYMPTOMS ------------------------------------------- > > When you use Microsoft Visual C++ 2008 Service Pack 1 (SP1), an > incorrect result is generated. This problem occurs when the > following conditions are true: > > * The project has floating-point code. > * The C/C++ /O2 (Maximize Speed) optimization option or the /Ox > (Full Optimization) optimization option is turned on. > > Note The problem only occurs on the x86 platform. > > To confirm that you are experiencing this problem, compare the > incorrect result to the result that is generated when the no > optimization /O2 option is turned on or when the /Ox compiling > option is turned on. > > -------------------------------------------- > > Fridger > > > Chris Laurel wrote: > > Selden: have you tried Fridger's experiment with M74 and a 16' > FOV? You might also try running windowed and reducing the frame > size so that GPU fill rate isn't a bottleneck. > > Fridger: I also experimented with SSE2 and saw no performance > benefit with it enabled. The situation is dramatically different > in my experiments with using Eigen in Celestia--enabling SSE2 > boosts performance a lot. > > I'm inclined to switch to O2 instead of Ox, though Fridger's > result is definitely an outlier so far. It would be worth > understanding what's going on here--if there's some sensitivity > in the code to a particular compiler optimization, we should > know about it. What results do you get with the Earth view in > the default start script? How does shrinking the window to > something very small--say 500x300--affect the performance? For > galaxy rendering, I expect that there are two main factors > affecting performance: > - Software transform of the galaxy sprites > - GPU memory bandwidth (lots of large, overlapping, alpha > blended sprites > It would be useful to reduce the influence of the latter in this > investigation. > > I notice that the frame rate with /O2 jumped to 73 fps--were any > other options changed? > > --Chris > > On Wed, Jun 24, 2009 at 2:26 PM, Selden E Ball Jr > <se...@co... <mailto:se...@co...> > <mailto:se...@co... <mailto:se...@co...>>> wrote: > > > For what it's worth, my O2 binary is slightly smaller than the Ox > binary: > > celestia_o2.exe: 2 835 968 bytes (compiled with O2 qualifier0 > celestia_ox.exe: 2 942 976 bytes (compiled with Ox qualifier0 > celestia_mr.exe: 3 235 840 bytes (compiled with VS2005 > makerelease.bat) > celestia.exe: 2 942 976 bytes ("final" downloaded from > shatters.net <http://shatters.net> <http://shatters.net>) > > > > s. > > Previously I wrote > > > I get essentially the same performance with all of the > > compilation configurations available to me: > > > VS2005 + makerelease.bat: 37.0 > > VS2008 + Ox: 37.0 > > VS2008 + O2: 37.2 > > Celestia "final" 38.0 > > > They all vary +/- about 0.5 > > I believe my slight difference in O2 performance is not > significant. > > > System: > > > 2GB, 1.86GHz, Core2Duo E6300, WinXP Pro SP3 > > 128MB, GF Quadro FX 550, ForceWare v169.47, vertical sync > forced off > > 1920x1600 LCD, full screen > > Celestia r4740 from svn > > viewing Earth at end of standard startup sequence > > with the same options each time > > > s. > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Celestia-developers mailing list > > Cel...@li... > <mailto:Cel...@li...> > <mailto:Cel...@li... > <mailto:Cel...@li...>> > > > > https://lists.sourceforge.net/lists/listinfo/celestia-developers > > > ------------------------------------------------------------------------------ > _______________________________________________ > Celestia-developers mailing list > Cel...@li... > <mailto:Cel...@li...> > <mailto:Cel...@li... > <mailto:Cel...@li...>> > > https://lists.sourceforge.net/lists/listinfo/celestia-developers > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Celestia-developers mailing list > Cel...@li... > <mailto:Cel...@li...> > https://lists.sourceforge.net/lists/listinfo/celestia-developers > > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Celestia-developers mailing list > Cel...@li... > https://lists.sourceforge.net/lists/listinfo/celestia-developers |