Commit graph

45 commits

Author SHA1 Message Date
Pavel Krajcevski 7ee0df9a5a Add 2bpp PVRTC compression format 2014-03-12 14:01:31 -04:00
Pavel Krajcevski f12ee09f7e Some formatting and rearrange the BPTC code to be more structured like the others 2014-01-21 14:46:25 -05:00
Pavel Krajcevski 6794a0fffb Add hooks to NVTT bc7_export library if present on the users machine. Assumes that all of the cross platform problems are fixed for incorporation into FasTC... Otherwise the options to use NVTT are ignored. 2013-11-19 12:03:03 -05:00
Pavel Krajcevski a80944901e Refactor CompressionJob struct.
In order to better facilitate the change from block stream order to non-block stream order,
a lot of changes were introduced to the way that we feed texture data to the compressors. This
data is embodied in the CompressionJob struct. We have made it so that the compression job
points to both the in and out pointers for our compressed and uncompressed data. Furthermore,
we have made sure that the struct also contains the format that its compressing for, so that if
any threading programs would like to chop up a compression job into smaller chunks based on the
format, it doesn't need to know the format explicitly, it just needs to know certain properties
about the format.

Moreover, the user can now define the start and end pixels from which we would like to compress
to. We can compress subsets of data by changing the in and out pointers and the width and height
values. The compressors will read data linearly until they reach the out pixels based on the width
of the given pixel.
2013-11-08 16:31:19 -05:00
Pavel Krajcevski bae71bbe4f Add Rich Geldreich's ETC1 compressor. 2013-10-21 17:23:33 -04:00
Pavel Krajcevski 674c18b9d9 Add DXT encoder from J.M.P. Van Waveren 2013-10-16 16:40:38 -04:00
Pavel Krajcevski c8101b46f7 Make sure not to break compilation if we don't have any atomics. 2013-10-14 20:58:11 -04:00
Pavel Krajcevski 3e35fb2c0d Merge SplitCoreLibrary 2013-10-10 11:04:40 -04:00
Pavel Krajcevski 4baf2ce311 Combine image functionality from PVRTCEncoder into Base library. 2013-10-04 18:35:18 -04:00
Pavel Krajcevski ce7bb8e891 Add command line flags to choose between whether or not to use PVRTexLib or FasTC 2013-09-30 12:46:23 -04:00
Pavel Krajcevski 219777687f Small refactoring. 2013-09-30 12:39:26 -04:00
Pavel Krajcevski 13af957ab9 Remove BlockStatManager in favor of ostreams 2013-09-28 21:42:24 -04:00
Pavel Krajcevski dcf389d346 Merge PVRTC compressor into split library. 2013-09-27 17:30:16 -04:00
Pavel Krajcevski 1093447055 Plug in the infrastructure to start passing images to be compressed. 2013-09-20 12:43:59 -04:00
Pavel Krajcevski 28cf254fe5 Initial decoupling of base library from core library. Includes a few formatting changes as well. 2013-09-13 19:36:37 -04:00
Pavel Krajcevski 03a7934644 Get rid of evil tabs once and forever (from cpp/h files) 2013-08-26 16:54:08 -04:00
Pavel Krajcevski ae2324153d Repurpose the rest of our scaffolding to use Compression Jobs 2013-03-09 13:36:39 -05:00
Pavel Krajcevski 435f935de3 Update atomics compression algorithm
In general, we want to use this algorithm only with self-contained compression
lists. As such, we've added all of the proper synchronization primitives in
the list object itself. That way, different threads that are working on the
same list will be able to communicate. Ideally, this should eliminate the
number of user-space context switches that happen. Whether or not this is
faster than the other synchronization algorithms that we've tried remains
to be seen...
2013-03-09 13:34:10 -05:00
Pavel Krajcevski dbabd5e399 Add command line option to choose atomics path for compression. 2013-03-06 20:58:01 -05:00
Pavel Krajcevski 2a41e873fa Add function for compressing a texture using atomics... 2013-03-06 20:44:25 -05:00
Pavel Krajcevski c475ee1dec Use standard library min/max 2013-03-06 19:01:19 -05:00
Pavel Krajcevski 8ebdc30394 Add Yield function to global namespace
In order to develop a threadsafe texture compression function, we will need
to preempt threads in order to not kill performance while we initialzie everything...
2013-03-06 17:29:22 -05:00
Pavel Krajcevski 1b30efe488 Got rid of some more compiler warnings. 2013-01-28 16:57:15 -05:00
Pavel Krajcevski cdbf72b6c0 Merge MSVC support into master. 2013-01-28 11:49:03 -05:00
Pavel Krajcevski 5eba3ba6f7 Add license 2012-11-15 11:51:55 -05:00
Pavel Krajcevski 680625d03e Fix a bunch of compiler warnings. 2012-11-07 17:10:26 -05:00
Pavel Krajcevski 790df0736f Make stats collection threadsafe. 2012-11-01 18:56:13 -04:00
Pavel Krajcevski 99534bc5d0 Add stats function to serial encoder. Otherwise, continue to use non-stats function in threaded mode. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski 54cb951f71 Add command line options to invoke worker queue. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski c7bb6170f3 Fleshes out the worker queue implementation. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski 2c22889533 Broke the coupling between ImageFile and Image. One is strictly for IO, the other can be platform and file format agnostic. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski c1222d75f9 Reorganize a lot of code. Should probably split image and image file classes to separate IO operations and whatnot. 2012-10-31 17:46:12 -04:00
Pavel Krajcevski 72c44f51d1 Partition compression code into separate functions. 2012-10-31 17:46:12 -04:00
Pavel Krajcevski 9fa011f8d1 Make sure that the compressed image gets created regardless of the number of threads used. 2012-09-18 22:33:47 -04:00
Pavel Krajcevski 78da9499ec Add output for error metric 2012-09-18 19:00:20 -04:00
Pavel Krajcevski 8bea381389 Use the flag to perform 'n' computations and average the total time taken. 2012-09-17 13:36:39 -04:00
Pavel Krajcevski 7116cc8b89 Redid thread synchonization in order to be able to signal threads to run without having to initialize them again. We can use this to average the running times. 2012-09-15 12:13:32 -04:00
Pavel Krajcevski 47fbfa1615 Avoid SIMD functions if they're not defined. 2012-09-13 16:57:10 -04:00
Pavel Krajcevski fc4cf7758b Add ability to change quality of BPTC encoder. 2012-08-30 17:46:34 -04:00
Pavel Krajcevski 720ad0ac6f Add stopwatch to both threaded and unthreaded paths. Still need to actually write unix stopwatch implementation. 2012-08-30 14:00:18 -04:00
Pavel Krajcevski d102cbcda7 Add threading support in core lib via boost libraries. 2012-08-29 14:43:37 -04:00
Pavel Krajcevski 213d98f985 Finish the hooking up of the compression library to the core library 2012-08-28 19:42:28 -04:00
Pavel Krajcevski 9e625a4065 Start working on command line tool -- Currently just making sure that everything builds and links. Also rearranged some function definitions to better accomodate this. 2012-08-28 15:47:19 -04:00
Pavel Krajcevski a076d1efb8 Fleshed out some more of the library 2012-08-27 18:34:37 -04:00
Pavel Krajcevski 39d7f2c942 Added files for core library. 2012-08-27 13:36:59 -04:00