Add SwiftShader dump from Feb 6 2013
diff --git a/src/Shader/SamplerCore.cpp b/src/Shader/SamplerCore.cpp
index dbd98b8..1c428f2 100644
--- a/src/Shader/SamplerCore.cpp
+++ b/src/Shader/SamplerCore.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
@@ -23,11 +23,11 @@
void SamplerCore::sampleTexture(Pointer<Byte> &texture, Vector4i &c, Float4 &u, Float4 &v, Float4 &w, Float4 &q, Vector4f &dsx, Vector4f &dsy, bool bias, bool fixed12, bool gradients, bool lodProvided)
{
#if PERF_PROFILE
- AddAtomic(Pointer<Long>(&profiler.texOperations), Long(4));
+ AddAtomic(Pointer<Long>(&profiler.texOperations), 4);
if(state.compressedFormat)
{
- AddAtomic(Pointer<Long>(&profiler.compressedTex), Long(4));
+ AddAtomic(Pointer<Long>(&profiler.compressedTex), 4);
}
#endif
@@ -73,16 +73,16 @@
{
if(!cubeTexture)
{
- computeLod(texture, lod, anisotropy, uDelta, vDelta, uuuu, vvvv, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod(texture, lod, anisotropy, uDelta, vDelta, uuuu, vvvv, q.x, dsx, dsy, bias, gradients, lodProvided);
}
else
{
- computeLod(texture, lod, anisotropy, uDelta, vDelta, lodU, lodV, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod(texture, lod, anisotropy, uDelta, vDelta, lodU, lodV, q.x, dsx, dsy, bias, gradients, lodProvided);
}
}
else
{
- computeLod3D(texture, lod, uuuu, vvvv, wwww, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod3D(texture, lod, uuuu, vvvv, wwww, q.x, dsx, dsy, bias, gradients, lodProvided);
}
if(cubeTexture)
@@ -173,8 +173,8 @@
case FORMAT_A32B32G32R32F:
break;
case FORMAT_D32F_LOCKABLE:
- case FORMAT_D32F_TEXTURE:
- case FORMAT_D32F_SHADOW:
+ case FORMAT_D32FS8_TEXTURE:
+ case FORMAT_D32FS8_SHADOW:
c.y = c.x;
c.z = c.x;
c.w = c.x;
@@ -189,11 +189,11 @@
void SamplerCore::sampleTexture(Pointer<Byte> &texture, Vector4f &c, Float4 &u, Float4 &v, Float4 &w, Float4 &q, Vector4f &dsx, Vector4f &dsy, bool bias, bool gradients, bool lodProvided)
{
#if PERF_PROFILE
- AddAtomic(Pointer<Long>(&profiler.texOperations), Long(4));
+ AddAtomic(Pointer<Long>(&profiler.texOperations), 4);
if(state.compressedFormat)
{
- AddAtomic(Pointer<Long>(&profiler.compressedTex), Long(4));
+ AddAtomic(Pointer<Long>(&profiler.compressedTex), 4);
}
#endif
@@ -233,16 +233,16 @@
{
if(!cubeTexture)
{
- computeLod(texture, lod, anisotropy, uDelta, vDelta, uuuu, vvvv, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod(texture, lod, anisotropy, uDelta, vDelta, uuuu, vvvv, q.x, dsx, dsy, bias, gradients, lodProvided);
}
else
{
- computeLod(texture, lod, anisotropy, uDelta, vDelta, lodU, lodV, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod(texture, lod, anisotropy, uDelta, vDelta, lodU, lodV, q.x, dsx, dsy, bias, gradients, lodProvided);
}
}
else
{
- computeLod3D(texture, lod, uuuu, vvvv, wwww, Float(q.x), dsx, dsy, bias, gradients, lodProvided);
+ computeLod3D(texture, lod, uuuu, vvvv, wwww, q.x, dsx, dsy, bias, gradients, lodProvided);
}
if(cubeTexture)
@@ -327,8 +327,8 @@
case FORMAT_A32B32G32R32F:
break;
case FORMAT_D32F_LOCKABLE:
- case FORMAT_D32F_TEXTURE:
- case FORMAT_D32F_SHADOW:
+ case FORMAT_D32FS8_TEXTURE:
+ case FORMAT_D32FS8_SHADOW:
c.y = c.x;
c.z = c.x;
c.w = c.x;
@@ -1197,7 +1197,7 @@
}
}
- void SamplerCore::computeLod(Pointer<Byte> &texture, Float &lod, Float &anisotropy, Float4 &uDelta, Float4 &vDelta, Float4 &uuuu, Float4 &vvvv, Float &lodBias, Vector4f &dsx, Vector4f &dsy, bool bias, bool gradients, bool lodProvided)
+ void SamplerCore::computeLod(Pointer<Byte> &texture, Float &lod, Float &anisotropy, Float4 &uDelta, Float4 &vDelta, Float4 &uuuu, Float4 &vvvv, const Float &lodBias, Vector4f &dsx, Vector4f &dsy, bool bias, bool gradients, bool lodProvided)
{
if(!lodProvided)
{
@@ -1263,11 +1263,11 @@
lod = lodBias + *Pointer<Float>(texture + OFFSET(Texture,LOD));
}
- lod = Max(lod, Float(0));
+ lod = Max(lod, 0.0f);
lod = Min(lod, Float(MIPMAP_LEVELS - 2)); // Trilinear accesses lod+1
}
- void SamplerCore::computeLod3D(Pointer<Byte> &texture, Float &lod, Float4 &uuuu, Float4 &vvvv, Float4 &wwww, Float &lodBias, Vector4f &dsx, Vector4f &dsy, bool bias, bool gradients, bool lodProvided)
+ void SamplerCore::computeLod3D(Pointer<Byte> &texture, Float &lod, Float4 &uuuu, Float4 &vvvv, Float4 &wwww, const Float &lodBias, Vector4f &dsx, Vector4f &dsy, bool bias, bool gradients, bool lodProvided)
{
if(state.mipmapFilter == MIPMAP_NONE)
{
@@ -1662,7 +1662,7 @@
c.x.z = *Pointer<Float>(buffer[f2] + index[2] * 4);
c.x.w = *Pointer<Float>(buffer[f3] + index[3] * 4);
- if(state.textureFormat == FORMAT_D32F_SHADOW && state.textureFilter != FILTER_GATHER)
+ if(state.textureFormat == FORMAT_D32FS8_SHADOW && state.textureFilter != FILTER_GATHER)
{
Float4 d = Min(Max(z, Float4(0.0f)), Float4(1.0f));
@@ -1698,13 +1698,13 @@
if(state.textureType != TEXTURE_CUBE)
{
- buffer[0] = *Pointer<Pointer<Byte>>(mipmap + OFFSET(Mipmap,buffer[0]));
+ buffer[0] = *Pointer<Pointer<Byte> >(mipmap + OFFSET(Mipmap,buffer[0]));
}
else
{
for(int i = 0; i < 4; i++)
{
- buffer[i] = *Pointer<Pointer<Byte>>(mipmap + OFFSET(Mipmap,buffer) + face[i] * sizeof(void*));
+ buffer[i] = *Pointer<Pointer<Byte> >(mipmap + OFFSET(Mipmap,buffer) + face[i] * sizeof(void*));
}
}
}
@@ -1824,8 +1824,8 @@
case FORMAT_L8:
case FORMAT_A8L8:
case FORMAT_D32F_LOCKABLE:
- case FORMAT_D32F_TEXTURE:
- case FORMAT_D32F_SHADOW:
+ case FORMAT_D32FS8_TEXTURE:
+ case FORMAT_D32FS8_SHADOW:
return false;
case FORMAT_L16:
case FORMAT_G16R16:
@@ -1845,28 +1845,28 @@
{
switch(state.textureFormat)
{
- case FORMAT_G8R8: return component < 2;
- case FORMAT_X8R8G8B8: return component < 3;
- case FORMAT_A8R8G8B8: return component < 3;
- case FORMAT_V8U8: return false;
- case FORMAT_Q8W8V8U8: return false;
- case FORMAT_X8L8V8U8: return false;
- case FORMAT_R32F: return component < 1;
- case FORMAT_G32R32F: return component < 2;
- case FORMAT_A32B32G32R32F: return component < 3;
- case FORMAT_A8: return false;
- case FORMAT_R8: return component < 1;
- case FORMAT_L8: return component < 1;
- case FORMAT_A8L8: return component < 1;
- case FORMAT_D32F_LOCKABLE: return false;
- case FORMAT_D32F_TEXTURE: return false;
- case FORMAT_D32F_SHADOW: return false;
- case FORMAT_L16: return component < 1;
- case FORMAT_G16R16: return component < 2;
- case FORMAT_A16B16G16R16: return component < 3;
- case FORMAT_V16U16: return false;
- case FORMAT_A16W16V16U16: return false;
- case FORMAT_Q16W16V16U16: return false;
+ case FORMAT_G8R8: return component < 2;
+ case FORMAT_X8R8G8B8: return component < 3;
+ case FORMAT_A8R8G8B8: return component < 3;
+ case FORMAT_V8U8: return false;
+ case FORMAT_Q8W8V8U8: return false;
+ case FORMAT_X8L8V8U8: return false;
+ case FORMAT_R32F: return component < 1;
+ case FORMAT_G32R32F: return component < 2;
+ case FORMAT_A32B32G32R32F: return component < 3;
+ case FORMAT_A8: return false;
+ case FORMAT_R8: return component < 1;
+ case FORMAT_L8: return component < 1;
+ case FORMAT_A8L8: return component < 1;
+ case FORMAT_D32F_LOCKABLE: return false;
+ case FORMAT_D32FS8_TEXTURE: return false;
+ case FORMAT_D32FS8_SHADOW: return false;
+ case FORMAT_L16: return component < 1;
+ case FORMAT_G16R16: return component < 2;
+ case FORMAT_A16B16G16R16: return component < 3;
+ case FORMAT_V16U16: return false;
+ case FORMAT_A16W16V16U16: return false;
+ case FORMAT_Q16W16V16U16: return false;
default:
ASSERT(false);
}