Acceleration and support provided by VideoHWVF

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 :

TermMeaning
'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)

OperationSupport
VideoV_Text_ChangeDestinationSupported
VideoV_Text_DefineCharSupported
VideoV_Text_SetTextColourSupported
VideoV_Text_WriteTextCharAccelerated
VideoV_Text_TextCursorAccelerated
VideoV_Text_ClearBoxAccelerated

VDU graphics operations

OperationSupport
VideoV_Graf_SetColour1Accelerated [1]
VideoV_Graf_SetColour2Accelerated [1]
VideoV_Graf_ChangeDestinationSupported
VideoV_Graf_ChangeBaseSupported
VideoV_Graf_ReadPrimitivesSupported
VideoV_Graf_RectangleAccelerated
VideoV_Graf_TriangleAccelerated [3]
VideoV_Graf_ParallelogramAccelerated [3]
VideoV_Graf_BlockCopyAccelerated
VideoV_Graf_CircleOutlineAccelerated [3]
VideoV_Graf_CircleFillAccelerated [3]
VideoV_Graf_CircleArcAccelerated [3]
VideoV_Graf_CircleSegmentAccelerated [3]
VideoV_Graf_CircleSectorAccelerated [3]
VideoV_Graf_EllipseOutlineAccelerated [3]
VideoV_Graf_EllipseFillAccelerated [3]
VideoV_Graf_FillRightNot supported
VideoV_Graf_FillLeftAndRightNot supported
VideoV_Graf_FillFloodNot supported
VideoV_Graf_PolyHLineAccelerated

Graphics primitives

OperationSupport
HLineAccelerated
VLineAccelerated
PointAccelerated

Mouse pointer operations

OperationSupport
VideoV_Pointer_DefineSupported
VideoV_Pointer_SelectSupported
VideoV_Pointer_UpdateSupported
VideoV_Pointer_RemoveSupported
VideoV_Pointer_SetPaletteSupported [4]

Mode / screen operations

OperationSupport
VideoV_Mode_VetModeSupported
VideoV_Mode_SetModeSupported
VideoV_Mode_ScrollAccelerated
VideoV_Mode_SetPaletteSupported
VideoV_Mode_EnableSupported
VideoV_Mode_DisableSupported
VideoV_Mode_PowerSaveSupported
VideoV_Mode_SetRGBTableSupported
VideoV_Mode_AccelConfigureSupported [2]
VideoV_Mode_AccelControlSupported [2]
VideoV_Mode_DisplaySelectSupported
VideoV_Mode_BankCountSupported
VideoV_Mode_BankDisplaySupported
VideoV_Mode_BankDriverSupported
VideoV_Mode_BankCopyAccelerated
Mode change fadeSupported
VSync IRQ provisionSupported
Monitor EDID acquisitionSupported

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.