VC4

The VC4 subsystem in addon/vc4 provides the VCHIQ driver as an interface to the audio and accelerated graphics services, which are offered by the Raspberry Pi firmware. The accelerated graphics support is not available on the Raspberry Pi 4 and with AARCH = 32 only. This section describes the components of the VC4 subsystem.

VCHIQ driver

#include <vc4/vchiq/vchiqdevice.h>
class CVCHIQDevice : public CLinuxDevice

This class is a driver for the VC host interface queue, which implements an interface to a number of service processes, which are running on the video processing unit (VPU) of the Raspberry Pi computers. Because this driver has been ported from Linux, it is based on the Linux kernel device driver emulation code in addon/linux. The API of the VCHIQ driver is based on the C language, and is not covered by this documentation.

CVCHIQDevice::CVCHIQDevice(CMemorySystem *pMemory, CInterruptSystem *pInterrupt)

Creates an instance of the VCHIQ driver class. There can be only one. pMemory and pInterrupt are pointers to the Circle memory and interrupt system objects.

boolean CVCHIQDevice::Initialize(void)

Initializes the VCHIQ driver. Returns TRUE on success. This method is inherited from the base class CLinuxDevice.

VCHIQ sound

The VCHIQ sound driver class CVCHIQSoundBaseDevice is described in the Audio devices section.

Accelerated graphics

The accelerated graphics support in addon/vc4/interface has been ported from the Raspberry Pi OS (former Raspbian) userland libraries, which implement the following APIs:

  • EGL 1.4

  • OpenGL ES 1.1 and 2.0

  • OpenVG 1.1

  • Dispmanx (proprietary)

Please see this website for detailed information about the first three APIs, which are not specific to Circle and are based on the C language.

Note

The accelerated graphics support is not available on the Raspberry Pi 4 and with AARCH = 32 only.