- Verify if the VPU driver is successfully loaded
- Verify if decoding/encoding is successfully offloaded to the VPU
- Debug the VPU driver, firmware, and GStreamer video plugins
Figure: Workflow to verify the VPU driver
- Boot up the driver to begin the startup process and initialize the VPU driver.
- Verify if the VPU driver is successfully loaded into the video system.
- Verify if the video decoding and encoding tasks are appropriately handled by the VPU.
- Run use cases to validate the VPU functionality.
Verify if VPU driver is loaded on qcom-multimedia-proprietary-image
The kernel image loads the VPU driver. You can use thelsmod or udevadm commands to check if the VPU driver loads successfully on qcom-multimedia-proprietary-image.
Verify using the lsmod command
- Run the
lsmodcommand on the device shell: - To verify that the VPU driver is loaded successfully, review the sample output and ensure that an entry for
iris_vpuis available under the Module column:
Verify using the udevadm command
- Run the
udevadmcommand on the device shell: - To verify that the VPU is loaded successfully, review that the following sample output shows
msm_vidc_decoderandmsm_vidc_encoderagainst theID_V4L_PRODUCTtag:
Note:
To identify the device nodes, check the DEVNAME tag. In the earlier example, /dev/video32 corresponds to the VPU decoder node and /dev/video33 corresponds to the VPU encoder node.
Verify if VPU driver is loaded on qcom-multimedia-image
The kernel image loads the VPU driver. You can use thelsmod and udevadm commands to check if the VPU driver loads successfully on qcom-multimedia-image.
Verify using the lsmod command
- Run the following
lsmodcommand on the device shell for Dragonwing IQ-8275, Dragonwing IQ-9075, QCS6490: - To verify that the VPU driver is loaded successfully, review the sample output and ensure that an entry for
qcom_irisis available under the Module column: - Run the following
lsmodcommand on the device shell for QCS615: - To verify that the VPU driver is loaded successfully, review the sample output and ensure that an entry for
venusis available under the Module column:
Verify using the udevadm command
- Run the
udevadmcommand on the device shell:Note:
Run the
udevadm info -a -n /dev/video<0 to 27>command on all available video nodes. - To verify that the VPU is loaded successfully for Dragonwing IQ-8275/Dragonwing IQ-9075/ QCS6490, review that the sample output shows
qcom-iris-decoderandqcom-iris-encoderagainst available video devices: - To verify that the VPU is loaded successfully for QCS615, review that the sample output shows
qcom-venus-decoderandqcom-venus-encoderagainst available video devices:
Verify if decoding and encoding are offloaded on qcom-multimedia-proprietary-image
To confirm if video decoding or encoding is successfully offloaded to the VPU:- Run the following command in a loop:
Sample output:
- Verify that the interrupt count from
msm-vidcincreases on any CPU while the decoding or encoding use case is running.
Verify if decoding/encoding is offloaded on qcom-multimedia-image
To confirm if the video decoding or encoding is successfully offloaded to the VPU:- Run the following command in a loop for Dragonwing IQ-8275/Dragonwing IQ-9075/QCS6490:
Sample output:
- Verify that the interrupt count from
irisincreases on any CPU while the decoding or encoding use case is running. - Run the following command in a loop for QCS615:
Sample output:
- Verify that the interrupt count from
venusincreases on any CPU while the decoding or encoding use case is running.
Debug video
If you face an issue while running a video decode or encode use case, debugging can help identify the root cause.Debug the VPU driver
This section provides the commands to use, debug log levels, and log value information that helps in debugging the VPU driver and firmware. The following workflow diagram shows the sequence to debug the VPU driver and firmware:Figure: Debug VPU workflow
- Mount the debug file system to start the debug process.
- Choose the preferred log level.
- Configure the log levels for the VPU driver and/or the firmware as needed.
- Apply the chosen log level using the
debugfsnode. - Start capturing logs for both the VPU driver and the firmware.
- Mount the
debugfsnode using the following command: - Choose the VPU driver debug log level and debug log value as listed in the following table. You can also select multiple debug log levels by using the bitmask of debug log values.
Note: The VPU driver sets the default debug level to
VIDC_ERR and limits debug logs to error scenarios. - Set the VPU driver debug log value to the
/sys/module/iris_vpu/parameters/msm_vidc_debugnode. The sample command to activate all message levels: - Choose the VPU firmware debug log level and debug log value as listed in the following table. You can also select many debug log levels by using the bitmask of debug log values.
Note: The VPU firmware debug logs are limited to error and fatal scenarios, and the default debug level is set to `FW_ERROR | FW_FATAL`.
- Set the VPU firmware debug log value to the
/sys/module/iris_vpu/parameters/msm_fw_debugnode. Sample command to activate all message levels: - Start capturing kernel messages for both the VPU driver and the firmware using the following command in device shell and run the use case:
Note:
- The debug video instructions provided in this section are applicable only to
qcom-multimedia-prop-image. - No debug logs are available in the
qcom-multimedia-imageof the Adreno VPU driver. - To debug the Adreno video driver on
qcom-multimedia-image, adddev_errlogs in the driver source and build theqcom-multimedia-image. - For more information, see VPU driver build instructions for qcom-multimedia-image.

