Main Page
Modules Alphabetical List Data Structures Data Fields
Potential conflicts in VU0 usage
[Restrictions]
There is currently no arbitration system available in RenderWare to
manage the usage of the VU0 vector processor by different processes
within the application. Hence developers must be careful that no
conflicts arise.
RenderWare Graphics currently uses VU0 only in macro mode, so it
should always be safe to use VU0 in macro mode in application code.
Quaternion bone animation for skinning is performed using VU0.
Several math-related functions are implemented in a platform
specific manner, using VU0 macro mode instructions in inline
assembler. The functions which are currently overloaded in this way
are: RwMatrixMultiply, RwV3dTransformPoints and RwV3dTransformVectors.
When using VU0 in micro mode, it can conflict with RenderWare's
usage of macro mode instructions in the following two ways:
- Macro mode instructions will stall on micro mode execution.
This can potentially waste a lot of CPU time, although no code
should actually break.
- Micro mode execution (assuming it is kicked off by the DMA
engine) may interrupt a sequence of macro mode instructions, thus
trashing the temporary variables in use by the macro mode
instructions and invalidation their results.
Thus care should be taken to ensure that VU0 micro mode code
completes before it can cause macro mode RenderWare code to stall
and also that initiation of VU0 micro mode code does not interrupt
macro mode RenderWare code.
© 1993-2003 Criterion Software Limited. All
rights reserved. Built Tue Apr 22 12:46:24 2003. Send Feedback