Commit Graph

549 Commits

Author SHA1 Message Date
Pavel Krajcevski
cf937f2ad3 Refactor shape and mode selection
We suffered another performance hit. This time it comes from the fact
that we're copying around a lot of data based on what partition we're
choosing. We can get rid of this a tad by only copying the data that we
need once and then using getters/setters that selectively pull from
an array based on our shape index.
2014-03-21 18:02:02 -04:00
Pavel Krajcevski
26e816b3db Add settings for BPTC compression 2014-03-21 12:45:47 -04:00
Pavel Krajcevski
6954d7b154 Refactor RGBAEndpoints
Changed the RGBAEndpoints to use the vector/matrix classes in
FasTCBase. This caused a ~20ms performance hit on an 8-core machine
which is likely due to the compiler having difficulty compiling away
some procedure call overheads. Upon profiling, the biggest bottleneck
is still by far the QuantizedError function, so any and all further
optimization should be focused on that.
2014-03-21 01:21:07 -04:00
Pavel Krajcevski
2b17cf6f97 Add scalar-matrix multiplication 2014-03-21 01:17:19 -04:00
Pavel Krajcevski
63b8744917 Pull out multiplication routines so that they can be specialized if need be 2014-03-21 01:16:45 -04:00
Pavel Krajcevski
31c799a02a Add equality operators 2014-03-21 01:15:35 -04:00
Pavel Krajcevski
e06f60c536 Fix some compiler warnings. 2014-03-21 01:14:36 -04:00
Pavel Krajcevski
037cb0951b Built-in rand was causing severe perf issues. 2014-03-21 01:13:57 -04:00
Pavel Krajcevski
675ebc28a1 Add matrix equality operator 2014-03-20 18:33:24 -04:00
Pavel Krajcevski
125809d721 Add return type to function 2014-03-20 18:33:11 -04:00
Pavel Krajcevski
65b874693e Move stopwatch.h to Core/src/include 2014-03-20 18:32:54 -04:00
Pavel Krajcevski
840ae71cbc Add small tool that decompresses an image. 2014-03-18 19:37:42 -04:00
Pavel Krajcevski
ff210ed741 Fix serious bug in Image.cpp 2014-03-18 19:37:26 -04:00
Pavel Krajcevski
83588a0c97 Fix a bunch of bugs in the decoder 2014-03-18 19:37:03 -04:00
Pavel Krajcevski
44ebe5d0bb Hook ASTC decompressor into the rest of FasTC 2014-03-12 19:41:48 -04:00
Pavel Krajcevski
c6364cc2a7 Made utils functions static inline and removed block size from compression specification
I'm not completely sure what the best strategy is in this case. Ultimately, it's good
that the format itself carries the block dimensions. It makes a lot of the code somewhat
uglier though, but really the only thing that we're sullying is the succinct ability to
determine what large-scale format it's in (PVRTC vs ASTC instead of 2bpp PVRTC vs 4bpp).
2014-03-12 19:38:35 -04:00
Pavel Krajcevski
0afa26ac74 Add proper return value 2014-03-12 19:38:17 -04:00
Pavel Krajcevski
0cac0c5c0a Add .astc file loader 2014-03-12 19:26:39 -04:00
Pavel Krajcevski
d3afd51b3d Why is this signed? 2014-03-12 19:26:28 -04:00
Pavel Krajcevski
6738df64f4 Add ASTC values to KTX loader 2014-03-12 18:43:48 -04:00
Pavel Krajcevski
b5f3cde554 Add ASTC compression formats 2014-03-12 14:02:34 -04:00
Pavel Krajcevski
7ee0df9a5a Add 2bpp PVRTC compression format 2014-03-12 14:01:31 -04:00
Pavel Krajcevski
0a4726bfe2 Merge branch 'master' into DecompressASTC 2014-03-12 13:29:17 -04:00
Pavel Krajcevski
f1b5bc3831 Use references to images from image loader.
In general, we should really copy the images with the built-in Clone()
function, but then we'd need to manage memory, etc. To avoid that headache,
we can simply just use references.
2014-03-12 13:18:56 -04:00
Pavel Krajcevski
a51e63f5c0 Fix some KTX IO bugs 2014-03-12 13:18:43 -04:00
Pavel Krajcevski
865239542a Cast our strlens to uint32 to avoid compiler warnings. 2014-03-12 12:13:16 -04:00
Pavel Krajcevski
cc566471e9 Disambiguate the sqrts we're using 2014-03-12 12:12:20 -04:00
Pavel Krajcevski
6fdc3814b1 Seriously, I hate compiler warnings 2014-03-12 03:51:16 -04:00
Pavel Krajcevski
02e1749051 More compiler warnings 2014-03-12 03:46:23 -04:00
Pavel Krajcevski
b885ac2d15 Don't pull submodules when doing travis-ci builds 2014-03-12 03:43:20 -04:00
Pavel Krajcevski
caf4864761 More compiler warnings. 2014-03-12 03:40:45 -04:00
Pavel Krajcevski
33f575685d Add travis.ci image to readme 2014-03-12 03:36:03 -04:00
Pavel Krajcevski
c5d0a803e9 One more small piece of determinism 2014-03-12 03:31:53 -04:00
Pavel Krajcevski
7ecb217d20 More determinism 2014-03-12 03:29:05 -04:00
Pavel Krajcevski
98ee740c7a Update travis.yml to output the test log if it exists. 2014-03-12 03:14:59 -04:00
Pavel Krajcevski
88821fbbb0 Prevent the compiler from deciding whether or not the float is big enough to overflow or not... 2014-03-12 03:02:17 -04:00
Pavel Krajcevski
e96cecc13a Add some typename specifiers 2014-03-12 03:01:28 -04:00
Pavel Krajcevski
479ba8e76d Fix a bunch of MSVC compiler warnings and errors.
Most notably, we need to actually fix a bug in MSVC that doesn't know how to properly instantiate
enums in partial template specialization. There are more details outlined here:

http://stackoverflow.com/questions/15466594/why-does-msvc-fail-to-compile-this-template-function

The fix in this commit closes #10

Also in this commit is a hacky way to allow GL defines. Apparently "LoadImage" is defined as a
macro even with WIN32_LEAN_AND_MEAN. This means that we have to #undef the code that includes
it, meaning that we also need to make sure not to actually mix GLDefines.h with any file that needs
to use the functions from Windows.h
2014-03-12 02:43:09 -04:00
Pavel Krajcevski
0eae5548a3 Make unit tests a bit more deterministic 2014-03-12 02:42:45 -04:00
Pavel Krajcevski
c5aab908ef Relax the test parameters on eigenvalue calculation 2014-03-12 02:42:09 -04:00
Pavel Krajcevski
ce99d79bab Add some static casts 2014-03-12 02:41:23 -04:00
Pavel Krajcevski
ebfd8f8f81 Override LoadImage for ktx files 2014-03-11 18:27:37 -04:00
Pavel Krajcevski
41a7abcdbb Let the image loader return the actual image pointer instead of having the data be constructed 2014-03-11 18:04:26 -04:00
Pavel Krajcevski
625b202b46 Add travis-ci yml file 2014-03-11 17:27:52 -04:00
Pavel Krajcevski
8acd89cbc5 Add virtual destructor 2014-03-11 17:26:55 -04:00
Pavel Krajcevski
272e753006 Add OpenGL defines for ASTC 2014-03-11 17:26:32 -04:00
Pavel Krajcevski
dd41fc6ba1 Finish first pass of ASTC decompressor
Added color unquantization, the partition selection function, and the
actual lerping of colors once the texels have been decoded.
2014-03-11 16:52:41 -04:00
Pavel Krajcevski
cebce26be1 Change our pixel component type to be signed 2014-03-11 16:52:02 -04:00
Pavel Krajcevski
3dd1444ff6 Add clamping to our pixels 2014-03-11 16:48:25 -04:00
Pavel Krajcevski
86678c0cfe Add 4-value pixel constructor 2014-03-11 16:40:31 -04:00