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
8e76d149ba
Remove a bunch of code that assumes that we get our pixel data in block stream order...
2013-11-06 18:23: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
89110be602
Get rid of a bunch of MSVC compiler warnings.
2013-10-15 00:31:33 -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
03f693f104
Add a hook into the PVRTexLib compressor if it's been found via cmake.
2013-09-30 12:38:09 -04:00
Pavel Krajcevski
63a235958d
When creating a compressed image from data make sure to set the block stream order based upon the format that you're compressing to. Yet more of this bug....
2013-09-29 14:32:59 -04:00
Pavel Krajcevski
89fbaf8170
Keep track of the image size with the base image rather than the compressed image. It's not always the case that the image data is RGBA8 data.
2013-09-28 22:40:48 -04:00
Pavel Krajcevski
c3cb8403b5
Fix our threadsafe streambuf to accept a sink that receives all of the proper output...
2013-09-28 21:44:50 -04:00
Pavel Krajcevski
43bd44b6ca
Add a threadID function
2013-09-28 21:42:50 -04:00
Pavel Krajcevski
13af957ab9
Remove BlockStatManager in favor of ostreams
2013-09-28 21:42:24 -04:00
Pavel Krajcevski
7bd54105e4
Add simple implementation of our thread-safe stream buffer.
2013-09-28 18:11:41 -04:00
Pavel Krajcevski
8bc81edf14
Add skeleton for thread safe stream buffer.
2013-09-28 17:30:25 -04:00
Pavel Krajcevski
157295efa3
Squelch some compiler warnings.
2013-09-27 17:38:36 -04:00
Pavel Krajcevski
dcf389d346
Merge PVRTC compressor into split library.
2013-09-27 17:30:16 -04:00
Pavel Krajcevski
36ce478821
Refactor PSNR calculations.
2013-09-26 20:18:26 -04:00
Pavel Krajcevski
264e447e80
Deal with this bug once and for all. If we have an image in block stream order, then explicitly reorder it before doing any work. Then keep it that way. I probably could have fixed this in the amount of time I've wasted on it. -____-
2013-09-26 20:17:07 -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
29bd1368e6
Fix a few compiler warnings and add the BPTCEncoder license.
2013-09-15 14:56:09 -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
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