Skip to content

LeiZou/ofxMSAOpenCL

 
 

Repository files navigation

ofxMSAOpenCL

Introduction

C++ openFrameworks addon for very simple to use wrapper for OpenCL. All underlying openCL objects are accessible to allow advanced features too if need be. Demo (1M particles @ 100-200 fps) at vimeo.com/7332496

Licence

The code in this repository is available under the MIT License.
Copyright (c) 2008-2012 Memo Akten, www.memo.tv
The Mega Super Awesome Visuals Company

Some Windows & OpenGL / interop specific additions (c) tgfrerer, placed under MIT license.

Installation

Copy to your openFrameworks/addons folder.

I've had some problems on 10.8 with OpenCL. I've had to install these drivers www.nvidia.com/object/cuda-mac-driver.html for my graphics card to work.

Windows / VS 2012

On Windows using Visual Studio, make sure to point your compiler to the right location of the OpenCL headers. You'll find an example .props property file in libs/OpenCL/lib/vs/ - this file should work for the latest Windows CUDA/OpenCL Nvidia SDK. You can add it to your project by clicking "Add Existing Property Sheet" in the vs2012 Property Manager window. If it doesn't work, inspect it using a text editor and make sure the path to the OpenCL headers is correct for your development system.

Dependencies

Windows / NVidia

Examples

Some examples also require [ofxMSATimer]{https://github.com/memo/ofxMSATimer}

Compatibility

openFrameworks 0.8+
I am generally testing only with openFrameworks, however it should work with Cinder too. If it doesn't, please file an issue.

Known issues

none

Version history

v2.3

  • additions for safe OpenGL/OpenCL interop on windows and OS X
  • reliable detection of platforms and devices on windows, OS X
  • MSAOpenCLBufferManagedT to be compatible with GL interop elements (see particle example)

v2.2

  • MSAOpenCLBufferManagedT: Memory Object High level wrapper, allocates and manages host and client memory objects

v2.1 23/09/2012

  • compatible with OF0072
  • renamed (uppercase) MSA namespace to (lowercase) msa. (kept MSA as an alias for backwards compatibility)
  • no longer requires MSACore

v2.0

  • move to centralized MSALibs (requires MSACore)
  • everything is MSA:: namespace

v0.3

  • added image support
  • restructured buffer/memory management
  • minor break in backwards compatability: createBuffer returns ofxOpenCLBuffer instead of cl_mem. so
    • writeBuffer and readBuffer are methods of ofxOpenCLBuffer, not ofxOpenCL
    • when passing buffer (or image) as parameter to ofxOpenCLKernel::setArg, use ofxOpenCLBuffer::getMemoryObject() (which returns the cl_mem)

v0.2

  • added support for multiple devices
  • sharing context with opengl (only on mac osx at the moment)
  • better handling of multi-dimensional data (minor backwards compatability break with kernel::run)
  • support for opengl/opencl buffer+texture sharing
  • can load programs from binary (support for creating binary coming soon)

v0.1

  • initial version

About

C++ openFrameworks addon for very simple to use wrapper for OpenCL. All underlying openCL objects are accessible to allow advanced features too if need be

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.5%
  • C 6.5%