Despite the lack of updates on the main Brahma page, development is still on, and this morning saw the checking in of more code, with the following features for 1D and 2D data-parallel arrays.
- Identity transforms (obviously!)
- Simple arithmetic operations (supported operators are +, -, * and /.
- One function call (at the moment) to Math.Sqrt is supported. It’s quite simple to add more, so if there’s a HLSL intrinsic function you absolutely need, give me a holler.
- Dependent reads – You can use a looked up value to index into a data-parallel array again.
- Indexing – The “Current” property, “CurrentX” and “CurrentY” properties in DataParallelArray<T> and DataParallelArray2D<T> allow you to use adjacent elements in you computations.
Coming up, I am working on conditionals (ternary).
I am also contemplating the use of a DataParallelArray “pool”, which can quickly be used to get new textures instead of the current method of creating them when required. I would appreciate any feedback on this method, and any suggestions for speedup or other improvements you may need.
Get the latest sources from SVN as usual, Brahma.DirectX.Tests contains the code to get you started.