From 0e5a1877a81ba962aa6918128da89a01d4d002ab Mon Sep 17 00:00:00 2001 From: castano Date: Thu, 5 Nov 2009 09:27:03 +0000 Subject: [PATCH] Some progress on the CUDA compressors. --- src/nvtt/cuda/CudaCompressDXT.cpp | 22 ++-- src/nvtt/cuda/CudaCompressDXT.h | 168 +++++++++++++++--------------- 2 files changed, 95 insertions(+), 95 deletions(-) diff --git a/src/nvtt/cuda/CudaCompressDXT.cpp b/src/nvtt/cuda/CudaCompressDXT.cpp index 8fe0f48..e6c9679 100644 --- a/src/nvtt/cuda/CudaCompressDXT.cpp +++ b/src/nvtt/cuda/CudaCompressDXT.cpp @@ -90,12 +90,12 @@ static void convertToBlockLinear(const Image * image, uint * blockLinearImage) #endif -CudaContext::CudaContext() : - bitmapTable(NULL), - bitmapTableCTX(NULL), - data(NULL), - result(NULL) -{ +CudaContext::CudaContext() : + bitmapTable(NULL), + bitmapTableCTX(NULL), + data(NULL), + result(NULL) +{ #if defined HAVE_CUDA // Allocate and upload bitmaps. cudaMalloc((void**) &bitmapTable, 992 * sizeof(uint)); @@ -114,10 +114,10 @@ CudaContext::CudaContext() : cudaMalloc((void**) &data, MAX_BLOCKS * 64U); cudaMalloc((void**) &result, MAX_BLOCKS * 8U); #endif -} - -CudaContext::~CudaContext() -{ +} + +CudaContext::~CudaContext() +{ #if defined HAVE_CUDA // Free device mem allocations. cudaFree(bitmapTableCTX); @@ -125,7 +125,7 @@ CudaContext::~CudaContext() cudaFree(data); cudaFree(result); #endif -} +} bool CudaContext::isValid() const { diff --git a/src/nvtt/cuda/CudaCompressDXT.h b/src/nvtt/cuda/CudaCompressDXT.h index b60bdf3..8747c8a 100644 --- a/src/nvtt/cuda/CudaCompressDXT.h +++ b/src/nvtt/cuda/CudaCompressDXT.h @@ -1,57 +1,57 @@ -// Copyright NVIDIA Corporation 2007 -- Ignacio Castano -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. - -#ifndef NV_TT_CUDACOMPRESSDXT_H -#define NV_TT_CUDACOMPRESSDXT_H - -#include -#include - -#include "nvtt/CompressDXT.h" - -struct cudaArray; - -namespace nv -{ - class Image; - - class CudaContext - { - public: - CudaContext(); - ~CudaContext(); - - bool isValid() const; - - public: - // Device pointers. - uint * bitmapTable; - uint * bitmapTableCTX; - uint * data; - uint * result; - }; - - +// Copyright NVIDIA Corporation 2007 -- Ignacio Castano +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +#ifndef NV_TT_CUDACOMPRESSDXT_H +#define NV_TT_CUDACOMPRESSDXT_H + +#include +#include + +#include "nvtt/CompressDXT.h" + +struct cudaArray; + +namespace nv +{ + class Image; + + class CudaContext + { + public: + CudaContext(); + ~CudaContext(); + + bool isValid() const; + + public: + // Device pointers. + uint * bitmapTable; + uint * bitmapTableCTX; + uint * data; + uint * result; + }; + + struct CudaCompressor : public CompressorInterface { CudaCompressor(CudaContext & ctx); @@ -65,49 +65,49 @@ namespace nv protected: CudaContext & m_ctx; }; - - struct CudaCompressorDXT1 : public CudaCompressor - { - CudaCompressorDXT1(CudaContext & ctx) : CudaCompressor(ctx) {} - + + struct CudaCompressorDXT1 : public CudaCompressor + { + CudaCompressorDXT1(CudaContext & ctx) : CudaCompressor(ctx) {} + virtual void setup(cudaArray * image, const nvtt::CompressionOptions::Private & compressionOptions); virtual void compressBlocks(uint first, uint count, uint w, uint h, nvtt::AlphaMode alphaMode, const nvtt::CompressionOptions::Private & compressionOptions, void * output); virtual uint blockSize() const { return 8; }; - }; - - /*struct CudaCompressorDXT1n : public CudaCompressor - { + }; + + /*struct CudaCompressorDXT1n : public CudaCompressor + { virtual void setup(const CompressionOptions::Private & compressionOptions); virtual void compressBlocks(uint blockCount, const void * input, nvtt::AlphaMode alphaMode, const nvtt::CompressionOptions::Private & compressionOptions, void * output) = 0; virtual uint blockSize() const { return 8; }; - };*/ - - struct CudaCompressorDXT3 : public CudaCompressor - { - CudaCompressorDXT3(CudaContext & ctx) : CudaCompressor(ctx) {} + };*/ + + struct CudaCompressorDXT3 : public CudaCompressor + { + CudaCompressorDXT3(CudaContext & ctx) : CudaCompressor(ctx) {} virtual void setup(cudaArray * image, const nvtt::CompressionOptions::Private & compressionOptions); virtual void compressBlocks(uint first, uint count, uint w, uint h, nvtt::AlphaMode alphaMode, const nvtt::CompressionOptions::Private & compressionOptions, void * output); virtual uint blockSize() const { return 16; }; - }; - - struct CudaCompressorDXT5 : public CudaCompressor - { - CudaCompressorDXT5(CudaContext & ctx) : CudaCompressor(ctx) {} - + }; + + struct CudaCompressorDXT5 : public CudaCompressor + { + CudaCompressorDXT5(CudaContext & ctx) : CudaCompressor(ctx) {} + virtual void setup(cudaArray * image, const nvtt::CompressionOptions::Private & compressionOptions); virtual void compressBlocks(uint first, uint count, uint w, uint h, nvtt::AlphaMode alphaMode, const nvtt::CompressionOptions::Private & compressionOptions, void * output); virtual uint blockSize() const { return 16; }; - }; - - /*struct CudaCompressorCXT1 : public CudaCompressor - { + }; + + /*struct CudaCompressorCXT1 : public CudaCompressor + { virtual void setup(const CompressionOptions::Private & compressionOptions); virtual void compressBlocks(uint blockCount, const void * input, nvtt::AlphaMode alphaMode, const nvtt::CompressionOptions::Private & compressionOptions, void * output) = 0; virtual uint blockSize() const { return 8; }; - };*/ - -} // nv namespace - - -#endif // NV_TT_CUDAUTILS_H + };*/ + +} // nv namespace + + +#endif // NV_TT_CUDAUTILS_H