<link href="../style_sheet.css" rel="stylesheet" type="text/css">

# Job Util - Changes

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

<hr />

## 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.

<hr />
## Version 1.04.01
* Minor fix for new Code Warrior version.

<hr />
## Version 1.04.00
* Fixed PFE to schedule the gather job in the same environment as the user
  provided entrypoint.

<hr />
## 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

<hr />
## 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

<hr />
## Version 1.01.00

###Minor Changes

* Official Wii Support.

* Atomic Inc/Dec return original value.

* Atomic fetch added.

* Documentation fixes. (Thanks to Russ Tront.)

<hr />  
## 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.
  
<hr />  
## Version 0.09.00

Pre one-point-oh release for community feedback.
