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

# AsyncMemCpy

## API

###`EA::Jobs::JobInstanceHandle AsyncMemCpy(EA::Jobs::JobScheduler &js, void const * destination, void const * source, size_t size, bool allowSleepOn, JobAffinity affinty, JobPriority priority)`

Uses a job to preform `memcpy(destination, source, size)`.

There are no alignment or size constraints, even on the PS3 (unaligned
transfers are ~20x slower, so avoid them if you can).

###`EA::Jobs::JobInstanceHandle AsyncMemCpyNotReady(EA::Jobs::JobScheduler &js, void const * destination, void const * source, size_t size, bool allowSleepOn, JobAffinity affinty, JobPriority priority)`

Similar to AsyncMemCpy but the job used to perform the memory copy is added in a not-ready state so that it may be incorporated into other job chains.

![Aligned](../img/amca.png)
![Unaligned](../img/amcu.png)
