diff --git a/src/nvimage/Filter.cpp b/src/nvimage/Filter.cpp index 6bcfded..e650a21 100644 --- a/src/nvimage/Filter.cpp +++ b/src/nvimage/Filter.cpp @@ -112,22 +112,25 @@ float Filter::sampleDelta(float x, float scale) const float Filter::sampleBox(float x, float scale, int samples) const { - float sum = 0; + double sum = 0; float isamples = 1.0f / float(samples); for(int s = 0; s < samples; s++) { float p = (x + (float(s) + 0.5f) * isamples) * scale; float value = evaluate(p); + + //printf("%f: %.8f (%X)\n", p, value, *(uint32 *)&value); + sum += value; } - return sum * isamples; + return float(sum * isamples); } float Filter::sampleTriangle(float x, float scale, int samples) const { - float sum = 0; + double sum = 0; float isamples = 1.0f / float(samples); for(int s = 0; s < samples; s++) @@ -142,7 +145,7 @@ float Filter::sampleTriangle(float x, float scale, int samples) const sum += value * weight; } - return 2 * sum * isamples; + return float(2 * sum * isamples); } @@ -586,6 +589,8 @@ PolyphaseKernel::PolyphaseKernel(const Filter & f, uint srcLength, uint dstLengt { const float sample = f.sampleBox(left + j - center, scale, samples); + //printf("%f %X\n", sample, *(uint32 *)&sample); + m_data[i * m_windowSize + j] = sample; total += sample; } diff --git a/src/nvtt/cuda/CudaUtils.cpp b/src/nvtt/cuda/CudaUtils.cpp index e880f8b..2ef9b66 100644 --- a/src/nvtt/cuda/CudaUtils.cpp +++ b/src/nvtt/cuda/CudaUtils.cpp @@ -23,7 +23,7 @@ // OTHER DEALINGS IN THE SOFTWARE. #include "nvcore/Debug.h" -#include "nvcore/Library.h" +//#include "nvcore/Library.h" #include "CudaUtils.h" #if defined HAVE_CUDA diff --git a/src/nvtt/tools/compress.cpp b/src/nvtt/tools/compress.cpp index 4d69185..70e729d 100644 --- a/src/nvtt/tools/compress.cpp +++ b/src/nvtt/tools/compress.cpp @@ -453,7 +453,7 @@ int main(int argc, char *argv[]) // Block compressed textures with mipmaps must be powers of two. if (!noMipmaps && format != nvtt::Format_RGB) { - inputOptions.setRoundMode(nvtt::RoundMode_ToNearestPowerOfTwo); + inputOptions.setRoundMode(nvtt::RoundMode_ToPreviousPowerOfTwo); } if (normal)