Add SwiftShader source to repo Oct 6 code drop from Transgaming Review URL: https://chromereviews.googleplex.com/3846015
diff --git a/src/Main/Config.cpp b/src/Main/Config.cpp new file mode 100644 index 0000000..4d0a4cf --- /dev/null +++ b/src/Main/Config.cpp
@@ -0,0 +1,74 @@ +// SwiftShader Software Renderer +// +// Copyright(c) 2005-2011 TransGaming Inc. +// +// All rights reserved. No part of this software may be copied, distributed, transmitted, +// transcribed, stored in a retrieval system, translated into any human or computer +// language by any means, or disclosed to third parties without the explicit written +// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express +// or implied, including but not limited to any patent rights, are granted to you. +// + +#include "Config.hpp" + +#include "Thread.hpp" +#include "Timer.hpp" + +#if PERF_PROFILE +Profiler profiler; + +Profiler::Profiler() +{ + reset(); +} + +void Profiler::reset() +{ + framesSec = 0; + framesTotal = 0; + FPS = 0; + + for(int i = 0; i < PERF_TIMERS; i++) + { + cycles[i] = 0; + } + + ropOperations = 0; + ropOperationsTotal = 0; + ropOperationsFrame = 0; + + texOperations = 0; + texOperationsTotal = 0; + texOperationsFrame = 0; + + compressedTex = 0; + compressedTexTotal = 0; + compressedTexFrame = 0; +}; + +void Profiler::nextFrame() +{ + ropOperationsFrame = sw::atomicExchange(&ropOperations, 0); + texOperationsFrame = sw::atomicExchange(&texOperations, 0); + compressedTexFrame = sw::atomicExchange(&compressedTex, 0); + + ropOperationsTotal += ropOperationsFrame; + texOperationsTotal += texOperationsFrame; + compressedTexTotal += compressedTexFrame; + + static double fpsTime = sw::Timer::seconds(); + + double time = sw::Timer::seconds(); + double delta = time - fpsTime; + framesSec++; + + if(delta > 1.0) + { + FPS = framesSec / delta; + + fpsTime = time; + framesTotal += framesSec; + framesSec = 0; + } +} +#endif \ No newline at end of file