Cloo Changelog

What's new in Cloo 0.7.3

Jul 22, 2010
  • Breaking changes:
  • Renamed ComputeDevice.ComputeCommmandQueueFlags to CommandQueueFlags.
  • Renamed MemoryObjectAllocationComputeException to MemoryObjectAllocationFailureComputeException.
  • New functionality:
  • Added OpenCL 1.1 raw bindings and enum tokens.
  • Added OpenCL error code to ComputeException.Message.
  • Added ComputePlatform.QueryDevices().
  • ComputeContextPropertyList now implements ICollection.
  • Added ComputeKernel.SetLocalArgument().
  • Added ComputeSampler.ToString().
  • Added check to prevent modifying of read-only event collections of events passed as arguments to ComputeCommandQueue methods.
  • Added extensions cl_khr_migrate_memobject and cl_khr_icd.
  • Bugfixes:
  • CL10.CreateImage3D() calls clCreateImage2D().
  • Missing Cloo.xml documentation file.
  • Deprecated bits:
  • Some of the ComputeCommandQueue methods are marked as deprecated and shouldn't be used any more. Starting with 0.8.0 they will be removed in order to avoid confusion with the new OpenCL 1.1 related CommandQueue functionality.
  • Internals:
  • Reformatted Clootils code to match Visual Studio default formatting.
  • ComputeProgram.Build() won't prevent from building the same program multiple times anymore.
  • Documentation:
  • Revised documentation for most of the public bits of the library.
  • Added doxygen generated documentation.

New in Cloo 0.7.2 (Jul 22, 2010)

  • Bugfixes:
  • Changing platform in Clootils configuration doesn't update device list.
  • Clootils crash on certain device selections for multidevice platforms.
  • Clootils syntax checking cripples source before sending it to the compiler.
  • Internals:
  • Reformatted Cloo source to match Visual Studio default formatting.

New in Cloo 0.7.1 (Jul 22, 2010)

  • Breaking changes:
  • Removed ComputeContextPropertyList.Platform property.
  • Renamed ComputeCommandQueue.Execute( kernel, events ) to ExecuteTask.
  • New functionality:
  • Added a bunch of overload methods to ComputeCommandQueue that default hidden parameters to safe values.
  • Added ComputeBuffer contstructor that accepts a pointer to the data to initialize the buffer with.
  • Added ComputeContext.Platform property.
  • Added ComputeContextPropertyList.GetByName() method.
  • Added ComputeMemoryFlags.None token.
  • Bugfixes:
  • ComputeContextPropertyList.properties field stays null after constructor run.
  • ComputeBuffer constructor creates zero-sized buffer.
  • Internals:
  • None.
  • Documentation:
  • Documented new overloads in ComputeCommandQueue.

New in Cloo 0.7.0 (Jul 22, 2010)

  • Breaking changes:
  • Changes affecting ComputeCommandQueue.Read()/Write() methods in order to fix a bug concerning non-blocking calls. The responsibility of allocating/freeing memory or GC Handles is now up to the application. See VectorAddTest.cs for an example of use.
  • New functionality:
  • Enabled public access to the raw OpenCL bindings.
  • Added enum tokens for the cl_khr_icd extension.
  • Bugfixes:
  • ComputeCommandQueue.Read() returns invalid data if invoked as non-blocking.
  • ComputeCommandQueue.Unmap() doesn't append the event to the list.
  • Internals:
  • The bindings no longer have "out" parameters. Everything converted to pointers for consistency.

New in Cloo 0.6.2 (Feb 19, 2010)

  • Breaking changes:
  • Renamed ComputeImage.PixelSize to ElementSize.
  • New functionality:
  • Track kernel arguments until kernel execution. Added new Set*Arguments() methods for this purpose.
  • New ComputeProgram constructor with a single source string.
  • Bugfixes:
  • ComputeCommandQueue.Wait() calls CL10.WaitForEvents().
  • ComputeCommandQueue.Read( ComputeImage... ) allocates wrong amount of memory.
  • ComputeCommandQueue..ctor() misintereprets the flags argument.
  • Internals:
  • Existing ComputeKernel.Set*Arguments() will automatically track the arguments since this is the safe option. In order to block this behaviour you can use the overloads with a bool parameter.

New in Cloo 0.6.1 (Feb 19, 2010)

  • Breaking changes:
  • Renamed ComputeDeviceMemoryCacheType to ComputeDeviceGlobalMemoryCacheType.
  • Changed signature of ComputeCommandQueue.Read( ComputeImage ).
  • Changed return type of ComputeCommandQueue.Read( ComputeImage... ) from IntPtr to byte[].
  • New functionality:
  • ComputeImage.ToString().
  • ComputeProgram..ctor() that takes a single string as an argument.
  • Bugfixes:
  • ComputeCommandQueue methods causing memory leaks by creating (and not releasing) unnecessary event objects.
  • ComputeCommandQueue.Read() ignores "count" parameter.
  • CommandQueue.Flush() calls CL10.Finish().
  • Clootils not working with ATI Stream on Windows.
  • Internals:
  • Added workaround to prevent a program being built multiple times. Fixes memory leak in the drivers.
  • Documentation:
  • Added or modified: ComputeBuffer.CreateFromGLBuffer(), ComputeCommandQueue.AcquireGLObjects(), ComputeCommandQueue.Execute(),
  • ComputeCommandQueue.ReleaseGLObjects(), ComputeCommandQueue.Read(), ComputeCommandQueue.Unmap(), ComputeCommandQueue.Wait(),
  • ComputeContext..ctor(), ComputeContextNotifier().

New in Cloo 0.6.0 (Feb 8, 2010)

  • Breaking changes:
  • Replaced all OpenTK enums with new ones.
  • Restructured ComputeMemory and its dependents' architecture.
  • Modified ComputeContext constructors. Added ComputeContextProperty and ComputeContextPropertyList for this purpose.
  • Project Clootils replaced ClooInfo and ClooTester.
  • New functionality:
  • Image support.
  • Added ComputeCommandQueueFlags.None.
  • Added delegates for callback functions.
  • OpenCL/OpenGL sharing API.
  • Extension loading mechanism.
  • Config file for out-of-the-box Linux and MacOS support.
  • Bugfixes:
  • ComputeImage2D.GetSupportedFormats() returns a list of 3D image formats.
  • Internals:
  • Replaced OpenTK DllImports and enums with a new layer of bindings. Removes dependency on OpenTK.
  • Documentation:
  • Added comments for some of the new public bits.
  • Added/modified missing comments around existing bits.

New in Cloo 0.5.1 (Feb 8, 2010)

  • Breaking changes:
  • ComputeJobQueue renamed to ComputeCommandQueue. Avoids confusion for new users.
  • All ComputeEvent properties that included "Job" in their names are renamed as well.
  • AddBarrier(), AddMarker() and WaitFor() of ComputeCommandQueue renamed to Barrier(), Marker() and Wait() respectively.
  • New functionality:
  • None.
  • New overloads/helpers:
  • GetByName() and GetByVendor() methods in ComputePlatform.
  • Inner changes:
  • Extension queries modified in order to give an empty list of tokens instead of a list containing one empty token in case no extensions are supported.
  • Bugfixes:
  • Enumeration of devices of an OpenCL platform.
  • Fixed bug that prevented creation of ComputeContext on ATI Stream 1.0 final in 64bit OS's.
  • ComputeCommandQueue.Read( ComputeBuffer... ) now reads the specified count of items and not the whole buffer.
  • Crash on ComputeCommandQueue.Wait().
  • Documentation:
  • A lot of small tweaks, fixes and new lines.

New in Cloo 0.4.1 (Feb 8, 2010)

  • changed: Public IntPtrs replaced by longs
  • changed: Fixed CLS-Compliancy related warnings
  • changed: ComputeObject.GetInfo methods no longer provide conversion between native type and queried type
  • changed: Most fields converted to readonly
  • added: Missing comments on public methods and properties
  • added: ComputeKernel.SetSamplerArg for setting sampler_t kernel arguments

New in Cloo 0.3.1 (Feb 8, 2010)

  • fixed: kernel signature for the ray-triangle intersection
  • added: a general ComputeKernel.SetArg method that closely follows clSetKernelArg.
  • added: an internal test for kernel args passing
  • added: ClooInfo, a winforms based app for printing CL related info

New in Cloo 0.2.1 (Feb 8, 2010)

  • changed: error checking method moved to ComputeException
  • fixed: ComputeProgram.Build(...) reading binary after unsuccessful build
  • added: Ray-Triangle intersection test
  • added: compute exception classes for all the error codes

New in Cloo 0.1.1.100 (Feb 8, 2010)

  • removed: unmanaged allocs and unnecessary transfers between managed