# Job Util - Changes

This document lists the changes for each Job Util release and the work we are currently doing.

## Version 3.05.00

- Changed the BatchProcessor interface GetArray to GetArrayTypeless because this was causing some problems with some compilers.

## Version 3.04.01

- Changed some parameters of the BatchProcessor's constructor from uint32_t to size_t as this works better together with on 64-bit platforms with the uintptr_t that the jobs themselves are using.

## Version 3.04.00

- Added support for Vita
- Fixed build dependency for memcpy_job
- Updated manifest to enable testing on pc64/unix

## Version 3.03.00

- Added support for bulk builds

## Version 3.02.01

- Modified the ParallelForEach allocator to use block counts instead of bytes to mirror the AtomicAllocator API changes made in Job Manager 3.02.01.

## Version 3.01.00

- Build output cleaned of remarks generated by SNC.
- Added build dependencies for buildable SPU modules so that it can build with Job Manager 3.01.00.

## Version 3.00.03

- Added AsyncMemCpyNotReady which submits a memcpy job in a not-ready state.
- As part of the Job Manager 3 redo, the implementation of atomics has been moved into the Job Manager package. As a result, using Job Manager 3 with Job Util necessitates an upgrade to Job Util-3.00.03.

## Version 1.04.01

- Minor fix for new Code Warrior version.

## Version 1.04.00

- Fixed PFE to schedule the gather job in the same environment as the user provided entrypoint.

## Version 1.03.00

- API Change AtomicAdd now returns the new value on all platforms. Before it would return the old value on PS3 and the new value on all other platforms.
- Fixed incorrect assert message
- Minor SNC issues
- Fixed version.h defines

## Version 1.02.00

- ForEach descriptor limit raised to 64.

- More change required for SNC Support. (Use SNC at your own risk still as it requires dev lines of other packages.)

- AsyncMemCpy

## Version 1.01.00

### Minor Changes

- Official Wii Support.

- Atomic Inc/Dec return original value.

- Atomic fetch added.

- Documentation fixes. (Thanks to Russ Tront.)

## Version 1.00.00

### Major Changes

- ParallelForEach is fire-and-forget, with a limit of 16 PFEs in simultaneous flight.

- ImageDesc and ImageProcessor have been added. These classes can be used with ParallelForEach to distribute image processing tasks across multiple processors.

- A division mode of NONE should be used when directly using your own BatchDesc/Batch or ImageDesc/ImageProcessor objects.

- Replaced `int` with `size_t` when referring to sizes in `job_util/dma.h`

### Minor Changes

- Added an assert to prevent using pass-through-mode when any array's input != output (if both are set to non-null values).

### Minor bug-fixes

### Upgrading from 0.09.00 to 1.00.00

- BATCH_DIVISION has changed to FOR_EACH_DIVISION.

- A maximum of 16 descriptors (image and batch) can be in use at any one time via the serial or parallel for each classes. We manage a preallocated set of 16 descriptors to ensure they stay valid during job execution.

## Version 0.09.00

Pre one-point-oh release for community feedback.