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