Commit graph

138 commits

Author SHA1 Message Date
Pavel Krajcevski 2540032acc Some small formatting changes 2013-09-13 16:25:00 -04:00
Pavel Krajcevski 9b7bb2cbc7 Add hooks to support outputing images whose pixels are not in block-stream order 2013-09-06 01:38:52 -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 af2318027b More refactoring 2013-08-26 16:11:53 -04:00
Pavel Krajcevski 25eba39870 Change the name of everything to FasTC 2013-08-22 18:35:01 -04:00
Pavel Krajcevski fc1baea05f Add a lot of comments and code cleanup 2013-08-22 18:33:42 -04:00
Pavel Krajcevski 7c3b3d8144 Fix a few bugs in our CompressionJobList's 2013-03-11 14:41: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 abd3961a09 Add a new interface to compressing files which we will call a 'compression job' 2013-03-09 13:22:42 -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 2127c04987 Add flag to compression settings to use atomics. 2013-03-06 19:01:31 -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 771b91b795 Fix a bunch of memory leaks. 2013-02-07 17:01:38 -05:00
Pavel Krajcevski fa5d5e865c Fix some more compiler warnings. This time some were actually very useful\! 2013-01-28 20:20:52 -05:00
Pavel Krajcevski 42e4e8d4aa Amalgamate the different architecture problems with printf... 2013-01-28 17:49:57 -05:00
Pavel Krajcevski 8c666bcd3f Fix more compiler warnings 2013-01-28 17:37:43 -05:00
Pavel Krajcevski 1b30efe488 Got rid of some more compiler warnings. 2013-01-28 16:57:15 -05:00
Pavel Krajcevski 5dd1fbbd48 Fix a lot of compiler warnings. 2013-01-28 16:30:04 -05:00
Pavel Krajcevski cdbf72b6c0 Merge MSVC support into master. 2013-01-28 11:49:03 -05:00
Pavel Krajcevski deac1e7fad Fix some compiler errors... 2013-01-28 11:44:14 -05:00
Pavel Krajcevski 45e926536a Move Thread.h out of the include directory, and update the BlockStatManager to compensate. 2013-01-27 14:36:19 -05:00
Pavel Krajcevski f4629fa35a Add boost libraries for windows. 2013-01-27 11:49:06 -05:00
Pavel Krajcevski f1e502c8f5 Remove hack for adding a libpath flag in visual studio by requiring extra libraries from boost. 2013-01-27 11:49:05 -05:00
Pavel Krajcevski 42c350878e Fix property variable. 2013-01-26 14:11:37 -05:00
Pavel Krajcevski 5eba3ba6f7 Add license 2012-11-15 11:51:55 -05:00
Pavel Krajcevski 8761821220 More compiler fixes. 2012-11-07 18:01:02 -05:00
Pavel Krajcevski 680625d03e Fix a bunch of compiler warnings. 2012-11-07 17:10:26 -05:00
Pavel Krajcevski 05e6ca0bc9 Fix windows issues with blockstats... 2012-11-07 16:52:06 -05:00
Pavel Krajcevski 562d9e905d Make sure to return a value for the = operator... 2012-11-07 16:51:44 -05:00
Pavel Krajcevski 53b8d4c9a9 Fix compiler errors with functions not returning values. 2012-11-07 15:21:55 -05:00
Pavel Krajcevski 9360e80a56 Fix issues with stop watch on windows. 2012-11-07 15:21:02 -05:00
Pavel Krajcevski e3757fde74 Fix MSVC interpretation of our types. 2012-11-07 15:20:25 -05:00
Pavel Krajcevski 790df0736f Make stats collection threadsafe. 2012-11-01 18:56:13 -04:00
Pavel Krajcevski 1abc54cf21 Make sure to take alpha into account when computing PSNR 2012-10-31 17:50:40 -04:00
Pavel Krajcevski 1424765866 Fix bug where we forgot to store the new height and width 2012-10-31 17:50:39 -04:00
Pavel Krajcevski 545a6f68e2 Add new structure to support creating Images and ImageFiles from compressed images 2012-10-31 17:50:38 -04:00
Pavel Krajcevski 71fbbca1ee Fix a few issues and make sure that when we write out to a file, only the intended values are reported. We still have to fix the accumulated stat reporting and make it thread-safe. 2012-10-31 17:48:53 -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 1e6a2d4c7b Add new compression function that collects preliminary stats. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski fcbca9ca8d Add files for new block stats in order to track things in our compression algorithms 2012-10-31 17:48:52 -04:00
Pavel Krajcevski f82173f423 Add platform independent file stream reading and writing in order to allow us to write out logs. 2012-10-31 17:48:52 -04:00
Pavel Krajcevski 6c723ca289 Fix some problems with our not so smart pointers. 2012-10-31 17:46:15 -04:00
Pavel Krajcevski 04cbf615f5 Make sure that our thread api preferences are saved in the cache. 2012-10-31 17:46:14 -04:00
Pavel Krajcevski 78ed5f5e92 On OS X, replace pthread_yield with sched_yield 2012-10-31 17:46:14 -04:00
Pavel Krajcevski d3f03a1fd3 Move ThreadGroup to new abstracted thread scheme. 2012-10-31 17:46:14 -04:00
Pavel Krajcevski 28af6ec225 Add threaded barrier operation modeled after that of boost. 2012-10-31 17:46:14 -04:00
Pavel Krajcevski 920c947d55 Add pthread module for threading. 2012-10-31 17:46:14 -04:00
Pavel Krajcevski 4d52ea18ad Move some more common code out of boost file into its own module 2012-10-31 17:46:14 -04:00
Pavel Krajcevski 03b4f16b06 Add virtual destructors to fix issues with thread abstraction code. 2012-10-31 17:46:14 -04:00
Pavel Krajcevski ed63255514 Move worker queue implementation over to new abstracted scheme. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski 8dffb602bf Add framework for threading API abstraction. 2012-10-31 17:46:13 -04:00
Pavel Krajcevski 6b4adcc95b Fix bug where we didn't initialize a variable properly, which led to a crash 2012-10-31 17:46:13 -04:00
Pavel Krajcevski 01c01b96cd For more accurate timing results with the worker queue, make sure that all threads are done processing an image before restarting the compression when testing multiple compressions. 2012-10-31 17:46:13 -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 62ca4ffee0 Add files for implementing a worker queue threading scheme 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 e25e5bae90 Add flag to modify the number of compressions in order to take an average of the compression time. 2012-09-15 10:29:36 -04:00
Pavel Krajcevski 341842d725 Make sure to not even compile the definition for the SIMD function. 2012-09-13 17:43:58 -04:00
Pavel Krajcevski 47fbfa1615 Avoid SIMD functions if they're not defined. 2012-09-13 16:57:10 -04:00
Pavel Krajcevski ba8ac8e292 Fix memory leak 2012-08-31 23:22:05 -04:00
Pavel Krajcevski 7b69c38da5 Switch OSX timer to real-time too. 2012-08-31 18:26:59 -04:00
Pavel Krajcevski f2b9c39801 Change unix clock to realtime 2012-08-31 18:05:29 -04:00
Pavel Krajcevski 278a59e24a Now that we fixed sync issues, we should have better timings... 2012-08-31 17:45:55 -04:00
Pavel Krajcevski 44884a18b3 Add join synchronization. 2012-08-31 17:33:54 -04:00
Pavel Krajcevski a6bbc3989f Implement threading capabilities. Still need better thread synchronization... 2012-08-31 14:58:51 -04:00
Pavel Krajcevski fc4cf7758b Add ability to change quality of BPTC encoder. 2012-08-30 17:46:34 -04:00
Pavel Krajcevski 588f58b237 Fix stop watch for unix. 2012-08-30 17:13:36 -04:00
Pavel Krajcevski 70674e5665 Merge branch 'CommandLineTool' of git.cs.unc.edu:pavel/TexComp into CommandLineTool 2012-08-30 16:58:06 -04:00
Pavel Krajcevski d8fc05a763 Fix timing functions for various platforms. 2012-08-30 16:56:42 -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 2ad2e94584 Move type defines into core library... all modules should have a standard set of types. 2012-08-30 13:28:28 -04:00
Pavel Krajcevski 1a0c3365da Remove old main.cpp and move stop watch to core library. 2012-08-30 11:59:08 -04:00
Pavel Krajcevski 11f3ec9c36 Add stdlib includes 2012-08-29 17:57:04 -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