v0.2.2-f1
libfloor v0.2.2
- based on https://github.com/a2flo/floor/tree/v0.2.2 / commit d0bc8cd
changes since v0.2.1
- upgraded to a Clang/LLVM/libc++ 3.8.1 toolchain (the default now), the 3.5.2 toolchain still exists as a fallback
- NOTE: spir-encoder and applecl-encoder for writing LLVM 3.2 bitcode, a LLVM 3.5 bitcode writer for Metal, and the spir-verifier have been directly integrated into LLVM 3.8.1 (those are no longer separate binaries)
- added initial and still experimental SPIR-V/OpenCL support, 3.8.1 toolchain only (using SPIRV-LLVM/spirv-3.6.1, SPIR/spirv-1.0, SPIRV-Tools/v2016.1)
- NOTE: new toolchain binaries: spirv-as, spirv-dis and spirv-val (from SPIRV-Tools), and llvm-spirv (from SPIRV-LLVM)
- added initial Metal graphics support (it is possible to write basic vertex and fragment shaders -> floor_examples for example code)
- extended image support (added mip-mapping support with explicit lod and gradient sampling + write at explicit lod, added sampling with integer offsets, added depth compare sampling)
- numerous vector lib and const_math improvements (there now is a math:: namespace to select between run-time and compile-time math functions)
- added initial sub-group support (CUDA and OpenCL with extension)
- added compute_algorithm header with generic work-group reduce, sub-group reduce, and work-group inclusive/exclusive scan functions
- improved compilation process: this will now directly compile to bitcode and no longer to human-readable LLVM IR, and all IR fixes are now applied in the compiler
- added support for MinGW/MSYS2 on Windows (x64/64-bit only)
- added initial C++17 support (disabled by default, enable with "./build.sh c++17", requires Clang 3.9+)
- countless bug fixes, performance improvements and misc new things (-> git log for all of them)
deprecation notes
- this will be the last release to support AppleCL/OpenCL on OS X (OpenCL has been superseded by Metal on OS X/iOS and is in an utterly broken state since 10.11)
- this will be the last release to support OS X 10.9/10.10 (going forward, only OS X 10.11+ will be supported)
- this might be the last release to support sm_20/sm_21 (Fermi) on CUDA
Install Instructions (Linux / OS X)
- copy this folder to /opt (-> /opt/floor)
Install Instructions (Windows)
- copy this folder to "C:/Program Files/" or %ProgramFiles% (-> "C:/Program Files/floor")
Notes (Linux / OS X / iOS)
- this has been compiled with the default configuration, i.e. all optional dependencies are enabled
- when using libfloor in a project, you will thus have to have these libraries installed (-> Requirements)
- this library comes in the form of 64-bit dynamic (Linux / OS X) and static (Linux / OS X / iOS) libraries
- release mode libraries: libfloor_static.a and libfloor.so/libfloor.dylib
- debug mode libraries: libfloord_static.a and libfloord.so/libfloord.dylib
- Linux binaries have been built on Arch Linux (with clang/llvm/libc++ 3.8.0 and gcc 6.1.1), you will probably need to
build from source on other Linux distributions (-> build instructions and requirements)
Notes (Windows with MSVC)
- this has been compiled with the default configuration, i.e. only compute-related parts and dependencies are enabled,
this includes CUDA, OpenCL and Host-Compute support - when using libfloor in a project, you will thus have to have an OpenCL SDK installed, in addition to SDL2 (-> Requirements)
- this library comes in the form of a 32-bit static library on Windows
- release mode library: floor.lib
- debug mode library: floord.lib
- binaries have been built with VS 2015 and LLVM 3.8 (http://llvm.org/builds),
any project using libfloor will have to do the same (LLVM-vs2014 platform)
Notes (Windows with MinGW/MSYS2)
- this has been compiled with the default configuration, i.e. all optional dependencies are enabled
- when using libfloor in a project, you will thus have to have these libraries installed (-> Requirements)
- this library comes in the form of a 64-bit static library on Windows with MinGW/MSYS2
- release mode library: libfloor_static.a
- debug mode library: libfloord_static.a
- libfloor binaries have been built with clang/llvm 3.8.0 and libstdc++ 5.4.0, toolchains have been built with gcc 5.4.0
please consult the included README.textile for further information