Create repository and add Code::Blocks GUI files
Add generic logging support with log4cpp
Implement Chunk classes and the createPrism method
Convert AtomicChunk to a struct for compatibility with OpenCL code
Fix bug in index creation for listchunks
Export geometry in simplified OpenInventor format for debugging purposes
Break up the Chunk class hierarchy into three specific classes (Geometry, ListChunk, AtomicChunk)
Update logger class
Initialize OpenCL and prepare contexts, queues and programs
Move utility methods to separate file
Rework ListChunk class to use OpenCL
Template the Point definition in utility.h and use it everywhere
Improve calculation of required allocation size for atomic chunks
Create new class ClDeviceQueue to collect all relevant OpenCl data in one structure
Cosmetic improvements
Two optimizations
Store chunk list in a plain vector instead of a hash map.
Code cosmetics and improved debug/timing information
Unify code for all 3 calculation methods
Use vector data types to simplify code
Try to unify the code to compile with different CPUs and GPUs without conditional compilation
Implement memory layout variant 1 without OpenCL (single-threaded)
Improve error handling in ClDriver
Miscellaneous fixes
Prism creation: Implement draft parallel algorithm
Prism creation: Improve draft parallel algorithm (memory usage)
Handle OpenCL intialization once for class ListChunk
Prism display: Precalculate all unique subchunks and re-use the nodes
Prism creation: Improve draft parallel algorithm (flat list for uniqueing step)
Prism creation: Improve draft parallel algorithm with memory access coalescence
Change namespace for utilities to Util::
Implement first part of prism creation in an OpenCL kernel
Silence C++ parser warnings
Use C interface for accessing OpenCL because C++ wrapper gives trouble with nVidia CUDA devices
Move OpenCL datatype definitions to a separate header
Detect CMake debug build and evaluate the define in the source code
Check maximum allowed buffer size before allocating it
Move OpenCL kernels to separate files
Implement ClBuffer class to wrap OpenCL buffer functionality for SVM und non-SVM devices
Implement kernel for prism creation
Improve enqueuing of kernels
Some code refactoring
Implement kernels for uniqueing and collecting of subchunks
Fix minor issues
Code cosmetics
The collection step after eliminating duplicate subchunks can be optimized away
Implement logic to pad and sanitize workitem and workgroup sizes
Rework kernels to handle splitting of the workitems into workgroups either by user request or by necessity (device cannot handle arbitrary workgroup sizes)
Implement benchmarking for createPrism()
Fix classes that manage resources to properly handle copying and moving
Keep track of whether a buffer is mapped / unmapped
Support two GPUs in ClDriver
Put all timing code into the BENCHMARK conditional
Listchunk: Ensure that buffers are correctly mapped / unmapped
Implement public header atomics.h that includes all relevant headers
Allow turning off OpenCL features (mainly usefull for debugging and benchmarking)
Implement some utility methods
Cleanup code and commit minor forgotten items
Improve timing and benchmarking in class geometry
Update CMakeLists.txt for compiling the benchmark
Default-initialize atomic chunks
Improve mapping and unmapping of buffers
Implement inversion of listchunks
Implement merging of listchunks with a boolean operation
Define type idx6_t for geometry
Implement merging of subchunks in geometry
Some bits and pieces
Fix two bugs that crashed the kernels
Cleanup
Fix error in kernels
Fix more bugs in kernels
Improve documentation / debugging
Improve listchunk merge and fix some bugs
Fix bugs and minor cleanup
Allow setting the dimensions of the geometry in the constructor
Implement subchunk merging in class Geometry
ClBuffer: Use std::allocator instead of malloc
Allow turning off CL for testing/debugging purposes
Geometry: Remove member currentChunk and use reserve() / resize() more efficiently instead
Geometry: Fix merge algorithm to make a copy of existing chunks before modifying them
Numerous minor fixes
Implement copy constructor and assignment operator for listchunks
Implement a method to copy a CL buffer
ClDriver: Implement method to get buffer size and use it to improve the code
Improve atomic chunk inversion/merging by a linear iteration
Improve mapping and resizing of CL buffers when creatinga prism in listchunk
Improve method for creating Open Inventor geometry, make it more compatible with FreeCAD
Implement simple method to return Open Inventor geometry of an atomic chunk
Improve method for merging listchunks
Improve method for creating Open Inventor geometry for list chunks
Minor fixes and forgotten items
Allow setting the granularity of Open Inventor rendering of geometry
Preserve some experimental and obsolete code
Implement simple method for getting the bounding box of geometry (experimental code)
Update test code