h6. [[GraphicsV]] h6(. » GraphicsV 13 h2. Graphics Vector (42) |_<^{width:3em}. Entry |<^. | |/3<^. R0|<^. Flags: | |Bit 0: Synchronise | |Bit 1: Synchronise if unclaimed | |/4<^. R1|<^. Render operation: | |0 = [[GraphicsV 13 0|No-op]] | |1 = [[GraphicsV 13 1|Copy rectangle]] | |2 = [[GraphicsV 13 2|Fill rectangle]] | |<^. R2|<^. Pointer to operation parameter block | |/3<^. R4|<^. Bits 0-15: 13 (reason code)| |<^. Bits 16-23: Head number| |<^. Bits 24-31: Driver number| |_<^{width:3em}. Exit |<^. | |<^. R4|<^. 0| |- |<^. All other registers preserved | h4. Use The kernel issues this call to instruct the driver to perform a hardware-accelerated rendering task. The appropriate driver should respond to the call in the following manner: * If the render operation is supported, perform the requested action and set R4 to 0 to claim the call. If bit 0 of R0 is set, synchronise with the video controller to ensure the operation is complete before returning. * If the render operation is unsupported, leave the call unclaimed. If bit 1 of R0 is set, synchronise with the video controller to ensure that any previous render operations have completed. * If no hardware acceleration is supported at all, the driver can safely ignore the call. h4. Notes Screen memory will typically be bufferable - GraphicsV driver implementations should make sure to perform the necessary memory barrier operations at the start/end of any given acceleration op (e.g. write barrier at start, read barrier at end). Suitable barrier routines are available via [[OS_MMUControl 2]]. If no driver responds to the request, then there is no generic software fallback in place. Software rendering fallbacks must be handled on a case-by-case basis by the caller. Therefore, any user software which wishes to make use of hardware acceleration should either do so via the VDU interface (e.g. use block copy/fill [[OS_Plot]] operations, which will have the appropriate fallbacks in place inside the kernel), or call GraphicsV directly and use their own software fallback for any unsupported operations. Just because one call succeeds, it does not guarantee that the next call will succeed, or that a call made with slightly different parameters will succeed. h4. See also * [[GraphicsV]]