A fast texture compressor for various formats
Go to file
Pavel Krajcevski 53fe825e49 Add first pass of atomic implementation.
This is a first pass of what I believe to be a not too terrible
implementation of a cooperative thread-based compressor. The idea is
simple... If a compressor is invoked with the same parameters on multiple
threads, then the threads cooperate via an atomic counter to compress the
texture. Each thread can take as long as possible until the texture is finished.

If a caller calls a compression routine that has different parameters, then
it will help the current compression finish before starting on its own compression. In this
way, we can split the textures up among the threads and guarantee that we maximize the
resource usage between them. I.e. this becomes more efficient:

Thread 1:    Thread 2:   Thread N:
  tex0         texN        tex(N-1)N
  tex1         texN+1      tex(N-1)(N+1)
  ..           ..          ..
  texN-1       tex2N       tex(N-1)N

I have not tested this for bugs, so I'm still not completely convinced that it is deadlock-free
although it should be...
2013-03-06 18:47:15 -05:00
BPTCEncoder Add first pass of atomic implementation. 2013-03-06 18:47:15 -05:00
CLTool Reformat usage string. 2013-02-07 17:01:21 -05:00
Core Add Yield function to global namespace 2013-03-06 17:29:22 -05:00
IO Fix a bunch of memory leaks. 2013-02-07 17:01:38 -05:00
QtGUI Add license 2012-11-15 11:51:55 -05:00
Windows@1fad7ec01f Update windows module to contain all necessary libs... 2013-01-27 13:35:10 -05:00
.gitmodules Add submodule to keep track of windows include files and libraries 2013-01-27 12:14:55 -05:00
CMakeLists.txt Fix warnings on Windows and support the treat warnings as errors option. 2013-01-29 13:39:45 -05:00