Introduction and Overview
The VideoHWVF module 0.47 provides hardware acceleration using the features of an AGP graphics card, accessed through the ViewFinder podule. The acceleration provided is described below. It covers the vast majority of common operations which are used by applications. The operations are broken down into the core components for the abstracted video system.
All features which are not supported by the hardware driver will be deferred to the software driver which will use direct screen access to provide the required operation, or update its internal state.
Glossary :
| Term | Meaning |
|---|---|
| 'Not supported' | The hardware driver does not provide any facilities for this feature; it will be passed to the software driver. |
| 'Supported' | The hardware driver provides this facility but it does not gain from specialised hardware features for faster operation. |
| 'Accelerated' | The hardware driver provides this facility and uses specialised hardware features to improve performance. |
Technical Details
Text (VDU4-style text output)
| Operation | Support |
|---|---|
| VideoV_Text_ChangeDestination | Supported |
| VideoV_Text_DefineChar | Supported |
| VideoV_Text_SetTextColour | Supported |
| VideoV_Text_WriteTextChar | Accelerated |
| VideoV_Text_TextCursor | Accelerated |
| VideoV_Text_ClearBox | Accelerated |
VDU graphics operations
| Operation | Support |
|---|---|
| VideoV_Graf_SetColour1 | Accelerated [1] |
| VideoV_Graf_SetColour2 | Accelerated [1] |
| VideoV_Graf_ChangeDestination | Supported |
| VideoV_Graf_ChangeBase | Supported |
| VideoV_Graf_ReadPrimitives | Supported |
| VideoV_Graf_Rectangle | Accelerated |
| VideoV_Graf_Triangle | Accelerated [3] |
| VideoV_Graf_Parallelogram | Accelerated [3] |
| VideoV_Graf_BlockCopy | Accelerated |
| VideoV_Graf_CircleOutline | Accelerated [3] |
| VideoV_Graf_CircleFill | Accelerated [3] |
| VideoV_Graf_CircleArc | Accelerated [3] |
| VideoV_Graf_CircleSegment | Accelerated [3] |
| VideoV_Graf_CircleSector | Accelerated [3] |
| VideoV_Graf_EllipseOutline | Accelerated [3] |
| VideoV_Graf_EllipseFill | Accelerated [3] |
| VideoV_Graf_FillRight | Not supported |
| VideoV_Graf_FillLeftAndRight | Not supported |
| VideoV_Graf_FillFlood | Not supported |
| VideoV_Graf_PolyHLine | Accelerated |
Graphics primitives
| Operation | Support |
|---|---|
| HLine | Accelerated |
| VLine | Accelerated |
| Point | Accelerated |
Mouse pointer operations
| Operation | Support |
|---|---|
| VideoV_Pointer_Define | Supported |
| VideoV_Pointer_Select | Supported |
| VideoV_Pointer_Update | Supported |
| VideoV_Pointer_Remove | Supported |
| VideoV_Pointer_SetPalette | Supported [4] |
Mode / screen operations
| Operation | Support |
|---|---|
| VideoV_Mode_VetMode | Supported |
| VideoV_Mode_SetMode | Supported |
| VideoV_Mode_Scroll | Accelerated |
| VideoV_Mode_SetPalette | Supported |
| VideoV_Mode_Enable | Supported |
| VideoV_Mode_Disable | Supported |
| VideoV_Mode_PowerSave | Supported |
| VideoV_Mode_SetRGBTable | Supported |
| VideoV_Mode_AccelConfigure | Supported [2] |
| VideoV_Mode_AccelControl | Supported [2] |
| VideoV_Mode_DisplaySelect | Supported |
| VideoV_Mode_BankCount | Supported |
| VideoV_Mode_BankDisplay | Supported |
| VideoV_Mode_BankDriver | Supported |
| VideoV_Mode_BankCopy | Accelerated |
| Mode change fade | Supported |
| VSync IRQ provision | Supported |
| Monitor EDID acquisition | Supported |
Notes
- Multi-operation ECF's cannot be supported.
- Due to hardware restrictions cache cleaning is fixed at '1 VSync'.
- The operation is accelerated indirectly via the graphics primitives.
- The H/W pointer is 2 colour plus transparent. The RISC OS (3 colour plus transparent) pointer is translated. Colour 1 and either colour 2 or 3 are used.
FIXME: The notes are referred to from the table by the numbers [1] to [4] in the order given above. A revision of this document for the same module version lists the text and Triangle to EllipseFill operations as not supported in the base build, the Graf colour operations and Point as supported or accelerated subject to framebuffer access, and DrawV and SpriteV as not supported in the base build (with SpriteReason_TileSpriteScaled accelerated when viable); virtual modes are not supported in the base build, and rotated modes are not supported. Which revision applies to the released module needs to be confirmed.