This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: Graph Crashes when Changing Pyramid Level and Scale on TDA4

Part Number: TDA4VM

Hi,

My graph Crashes when I Change pyramid level and scale on TDA4.

Device: TDA4   OPN#J721EXSOMG01EVM   ASSY#PROC078E6(001)

Software: psdk_rtos_auto_j7_06_02_00_21

My Code:

...

vx_pyramid pyr_exemplar = vxCreatePyramid(context, 5, VX_SCALE_PYRAMID_HALF, 1280, 720, (vx_df_image)VX_DF_IMAGE_U8);
...
node_pyr = vxGaussianPyramidNode(graph, in_image[0] , pyr_exemplar);
...
It runs will.

But when I change the pyramid level to 8,
...
vx_pyramid pyr_exemplar = vxCreatePyramid(context, 8, VX_SCALE_PYRAMID_HALF, 1280, 720, (vx_df_image)VX_DF_IMAGE_U8);
...
The graph crash:
[MCU2_1] 50.220179 s: VX_ZONE_ERROR:[tivxVpacMscPmdProcess:936] tivxVpacMscPmdProcess: Failed to Submit Request
[MCU2_1] 50.220248 s: VX_ZONE_ERROR:[tivxTargetKernelExecute:372] tivxTargetKernelExecute: Kerne l process function for [] returned error code: -1

When I change the pyramid scale to VX_SCALE_PYRAMID_ORB,

...
vx_pyramid pyr_exemplar = vxCreatePyramid(context, 5, VX_SCALE_PYRAMID_ORB, 1280, 720, (vx_df_image)VX_DF_IMAGE_U8);
...

The graph crash too:

[MCU2_1] 57.175151 s: VX_ZONE_ERROR:[tivxVpacMscPmdProcess:936] tivxVpacMscPmdProcess: Failed to Submit Request
[MCU2_1] 57.175210 s: VX_ZONE_ERROR:[tivxTargetKernelExecute:372] tivxTargetKernelExecute: Kerne l process function for [] returned error code: -1

The error logs are from ${PSDKRA_PATH}/tiovx/kernels_j7/hwa/vpac_msc/vx_vpac_msc_pyramid_target.c

line 930:

/* Submit MSC Request*/

fvid2_status = Fvid2_processRequest(msc_obj->handle, inFrmList,
    outFrmList, FVID2_TIMEOUT_FOREVER);
if (FVID2_SOK != fvid2_status)
{
    VX_PRINT(VX_ZONE_ERROR,
        "tivxVpacMscPmdProcess: Failed to Submit Request\n");
    status = (vx_status)VX_FAILURE;
}
When I change the pyramid level to 8, fvid2_status = -3;
When I change the pyramid scale to VX_SCALE_PYRAMID_ORB, fvid2_status = -2.
What are the possible causes?
Best Regards!
Gao
  • Gao,

    Thanks for your query.

    For pyramid level set to 8, this is an unknown issue.  We will need to internally check and get back to you.

    For pyramid scale to VX_SCALE_PYRAMID_ORB, this is a known limitation in current release, and we have enabled this mode in the next release (7.0) scheduled for mid June.

    Jesse

  • Gao,

    For the pyramid level set to 8 issue you are seeing, I have reproduced the issue and confirmed that the same fix that fixed the ORB issue also fixes this.  Both of these issues have to do with the driver checking that single phase mode is only used for half scale.  Prior to the fix, single phase mode was always used, triggering this error.  Even in half scale, some levels may have odd pixel size so it is not exactly half scale and it triggers same error condition as ORB test. 

    Among other things added, the primary fix was to check each layer scale ratio, and choose single phase mode or multi-phase mode accordingly.  This fix is now done inside of the node implementation on top of the driver so that it is abstracted from the external application.

    Jesse

  • Jesse,

    Thanks for your support.

    Regards,

    Gao