13 Commits

Author SHA1 Message Date
aeddd65f81 Update README.md 2020-12-21 11:05:34 -08:00
4eafedd848 Update README.md 2020-12-21 10:52:45 -08:00
756e1da914 Update README.md 2020-12-18 23:24:46 -08:00
e2508fbb80 Update README.md 2020-12-18 23:14:12 -08:00
e393b6db04 Update README.md 2020-12-18 23:02:29 -08:00
2fdd22c2da Update README.md 2020-12-18 21:40:20 -08:00
c209cb1bb9 Update README.md 2020-12-18 21:39:07 -08:00
70f2618dfb Update README.md 2020-12-18 21:37:46 -08:00
248f84ca46 Merge pull request #331 from voyageur/tests_path
Fix data testsuite path
2020-09-07 10:27:39 -07:00
4c95dc8716 Fix data testsuite path
Add separator between base path and set path if base path is set

Fixes #299
2020-09-07 14:45:14 +02:00
249d678b25 Merge pull request #330 from MaddTheSane/arm64
Better AARCH64/Arm64 support.
2020-08-23 23:44:26 -07:00
b700982b1f Have NV_CPU_ARM and NV_CPU_AARCH64 reference the same code on Darwin. 2020-08-24 00:42:58 -06:00
3a8e89d6f6 Better AARCH64 support. 2020-08-23 18:55:14 -06:00
4 changed files with 46 additions and 3 deletions

View File

@ -1,3 +1,43 @@
# NVTT is discontinued
After more than 14 years maintaining and updating this library on my spare time, I've decided to officially discontinue it and focus my energy on other projects.
When I released NVTT there was very little public information about compression for GPU texture formats. Existing codecs were closed-source, encumbered by patents, and not particularly efficient or high quality. A lot has changed since then. NVTT doesn't support the latest formats anymore, some of its codecs are outdated, and it's source code has aged. Today most IHVs maintain their own open source codecs and several companies develop high quality commercial products around texture compression.
If you are looking for alternative texture compression tools and processing algorithms I recommend you check these out:
## Open Source Encoders
* I still maintain [A High Quality SIMD BC1 Encoder](https://github.com/castano/icbc).
* [rgbcx](https://github.com/richgel999/bc7enc/blob/master/rgbcx.h) is another high-performance (but scalar) BC1-5 encoder.
* [stb_dxt](https://github.com/nothings/stb/blob/master/stb_dxt.h) is a single header library that provides low quality, but fast BC1-5 encoders.
* [Binomial](https://www.binomial.info/) is an image and texture compression company that develops [Basis a universal texture codec](https://github.com/BinomialLLC/basis_universal) and also has [other open source codecs](https://github.com/BinomialLLC).
* [Intel ISPC Texture Compressor](https://github.com/GameTechDev/ISPCTextureCompressor) is a set of set of open source SIMD texture encoders that are very fast, but low quality.
* [AMD Compressonator](https://gpuopen.com/compressonator/) offers various open source encoders that also run on the GPU.
* [Betsy](https://github.com/darksylinc/betsy/) is a compressor for various GPU formats using compute shaders.
* For ETC encoders see Google's [Etc2Comp](https://github.com/google/etc2comp), Bartosz Taudul's [etcpak](https://github.com/wolfpld/etcpak) and Rich Geldreich's [rg-etc1](https://github.com/richgel999/rg-etc1).
* [ARM ASTC Encoder](https://github.com/ARM-software/astc-encoder) is an excellent ASTC encoder.
* This is [a good overview of the state of texture encoders in 2020](https://aras-p.info/blog/2020/12/08/Texture-Compression-in-2020/).
## Image Processing and IO
* [stb_image_resize](https://github.com/nothings/stb/blob/master/stb_image_resize.h) provides polyphase image resize filters that are similar to what NVTT supports.
* [Dario Manesku's cube map filtering tool](https://github.com/dariomanesku/cmft) seems like a good alternative for the cube map filtering functions in NVTT.
* [CubeMapGen](https://gpuopen.com/archived/cubemapgen/) is another source of information for cubemap filtering algorithms, but is now unsupported as well.
* Deano Calver supports [three tiny libraries](https://deanoc.com/2019/09/tiny) that provide support for DDS and KTX file formats, and pixel format conversion.
* [stb_image](https://github.com/nothings/stb/blob/master/stb_image.h) and [stb_image_write](https://github.com/nothings/stb/blob/master/stb_image_write.h) are two handy single header libraries to read and write images in various formats.
* https://github.com/syoyo/tinyexr
* https://lodev.org/lodepng/
* [texturec](https://bkaradzic.github.io/bgfx/tools.html#texture-compiler-texturec) is a handy command line tool similar to `nvcompress`, built on top of [bimg](https://github.com/bkaradzic/bimg).
* The venerable [ImageMagick](https://imagemagick.org/) still provides many valuable tools and utilities.
## Commercial Libraries
* [Oodle Texture](http://www.radgametools.com/oodletexture.htm) is a suite of commercial RDO texture codecs.
* [NVIDIA Texture Tools exporter](https://developer.nvidia.com/nvidia-texture-tools-exporter) is based on a private fork of this project and offers additional GPU accelerated codecs, but it's not open source.
-------------------------------
# NVIDIA Texture Tools [![Actions Status](https://github.com/castano/nvidia-texture-tools/workflows/build/badge.svg)](https://github.com/castano/nvidia-texture-tools/actions) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![GitHub](https://img.shields.io/badge/repo-github-green.svg)](https://github.com/castano/nvidia-texture-tools)
The NVIDIA Texture Tools is a collection of image processing and texture

View File

@ -604,7 +604,7 @@ namespace
# elif NV_CPU_X86
ucontext_t * ucp = (ucontext_t *)secret;
return (void *) ucp->uc_mcontext->__ss.__eip;
# elif NV_CPU_ARM
# elif NV_CPU_ARM || NV_CPU_AARCH64
ucontext_t * ucp = (ucontext_t *)secret;
return (void *) ucp->uc_mcontext->__ss.__pc;
# else

View File

@ -97,7 +97,7 @@
// NV_CPU_X86_64
// NV_CPU_PPC
// NV_CPU_ARM
// NV_CPU_ARM_64
// NV_CPU_AARCH64
// NV_CPU_E2K
#define NV_CPU_STRING POSH_CPU_STRING
@ -112,7 +112,7 @@
#elif defined POSH_CPU_STRONGARM
# define NV_CPU_ARM 1
#elif defined POSH_CPU_AARCH64
# define NV_CPU_ARM_64 1
# define NV_CPU_AARCH64 1
#elif defined POSH_CPU_E2K
# define NV_CPU_E2K 1
#else

View File

@ -509,6 +509,9 @@ int main(int argc, char *argv[])
nvtt::Context context;
context.enableCudaAcceleration(!nocuda);
if (basePath.length() > 0) {
basePath.appendSeparator();
}
basePath.append(set.basePath);
FileSystem::changeDirectory(basePath.str());