Add SwiftShader dump from Feb 6 2013
diff --git a/src/Renderer/PixelProcessor.cpp b/src/Renderer/PixelProcessor.cpp
index bd6ea30..0fbf0ea 100644
--- a/src/Renderer/PixelProcessor.cpp
+++ b/src/Renderer/PixelProcessor.cpp
@@ -1,6 +1,6 @@
// SwiftShader Software Renderer
//
-// Copyright(c) 2005-2012 TransGaming Inc.
+// Copyright(c) 2005-2013 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
@@ -19,12 +19,16 @@
#include "Constants.hpp"
#include "Debug.hpp"
+#include <string.h>
+
namespace sw
{
extern bool complementaryDepthBuffer;
extern Context::TransparencyAntialiasing transparencyAntialiasing;
extern bool perspectiveCorrection;
+ bool precachePixel = false;
+
unsigned int PixelProcessor::States::computeHash()
{
unsigned int *state = (unsigned int*)this;
@@ -59,7 +63,6 @@
// Round to nearest LOD [0.7, 1.4]: 0.0
// Round to lowest LOD [1.0, 2.0]: 0.5
- precacheDLL = 0;
routineCache = 0;
setRoutineCacheSize(1024);
}
@@ -788,7 +791,7 @@
void PixelProcessor::setRoutineCacheSize(int cacheSize)
{
delete routineCache;
- routineCache = new LRUCache<State, Routine>(clamp(cacheSize, 1, 65536));
+ routineCache = new RoutineCache<State>(clamp(cacheSize, 1, 65536), precachePixel ? "sw-pixel" : 0);
}
void PixelProcessor::setFogRanges(float start, float end)
@@ -828,7 +831,7 @@
{
state.alphaCompareMode = context->alphaCompareMode;
- state.transparencyAntialiasing = context->renderTarget[0]->getMultiSampleCount() > 1 ? transparencyAntialiasing : Context::TRANSPARENCY_NONE;
+ state.transparencyAntialiasing = context->getMultiSampleCount() > 1 ? transparencyAntialiasing : Context::TRANSPARENCY_NONE;
}
state.depthWriteEnable = context->depthWriteActive();
@@ -859,8 +862,8 @@
state.depthTestActive = true;
state.depthCompareMode = context->depthCompareMode;
state.quadLayoutDepthBuffer = context->depthStencil->getInternalFormat() != FORMAT_D32F_LOCKABLE &&
- context->depthStencil->getInternalFormat() != FORMAT_D32F_TEXTURE &&
- context->depthStencil->getInternalFormat() != FORMAT_D32F_SHADOW;
+ context->depthStencil->getInternalFormat() != FORMAT_D32FS8_TEXTURE &&
+ context->depthStencil->getInternalFormat() != FORMAT_D32FS8_SHADOW;
}
state.occlusionEnabled = context->occlusionEnabled;
@@ -891,8 +894,8 @@
state.targetFormat[i] = context->renderTargetInternalFormat(i);
}
- state.writeSRGB = context->writeSRGB && Surface::isSRGBwritable(context->renderTarget[0]->getExternalFormat());
- state.multiSample = context->renderTarget[0]->getMultiSampleCount();
+ state.writeSRGB = context->writeSRGB && context->renderTarget[0] && Surface::isSRGBwritable(context->renderTarget[0]->getExternalFormat());
+ state.multiSample = context->getMultiSampleCount();
state.multiSampleMask = context->multiSampleMask;
if(state.multiSample > 1 && context->pixelShader)