Issue Reconciling Buffer attribute lists for NvSci

Please provide the following info:
Hardware Platform: DRIVE AGX Xavier™
Software Version: DRIVE Software 10
Host Machine Version: Ubuntu 18.04
SDK Manager Version: 5.1.15.0

Hi,

I am having some issues reconciling buffer attribute lists between producers and consumers using NvSci.
In this case my surface types are the same as well as my colourstd and image size but the lists are still failing to reconcile.

Is there a way I can view the elements in the conflict list to see what is preventing the lists from being reconciled?
Is there any documentation that summarizes what can be reconciled and what cannot be reconciled?

Hi @jaisood,

May I know which API call fails? NvSciBufAttrListReconcile()? If yes, is newConflictList output of the API what you’re looking for?

Hi Vick,

Yes NvSciBufAttrListReconcile() is failing. I would like to print the conflict list in a human readable way so I can see what is causing the failure.

Please try with NvSciBufAttrListGetAttrs() to access the list. Let me know if still any problem. Thanks!

Hi Vick,

I do not know what key value pairs are in the conflict list so I am not sure how to use that API call to get the information. Can you advise?

We are discussing this internally and will get back to you.

You can try as below:

NvSciBufAttrKeyValuePair array[50];

NvSciBufAttrListGetAttrs(newConflictList, array, 50);

// then check the key-value pairs by iterating the array elements.

The output of this is not really useful…
Most of the information is garbage information and it is hard to tell what is real data vs garbage data.

key : value
49 28
269251984 105ecd10
-1540934464 100c7550
2013451028 876b4fc0
-1540934464 78061000
256 2710
269254506 ffffff80a7179090
12 7801d4b4
27 10552fc0
274018240 10552fde
-2023010368 876b4fc0
269493976 1
0 100c7490
273201024 be004a3aa42734c0
269284320 1048b780
269251792 8764c7a4
1 100c7510
269251888 103a94c
17017132 10af968
269251920 105d450
17489920 100c7570
32 10ae000
274018240 b
269252016 100f6854
269253480 100c7b78
11 100c7f6a
269467644 1048b780
269252666 1048b780
512 10106ed0
-2023009112 100cf5c0
-1540934464 100c7700
273201024 100c7b68
-1491615744 10106ea8
269252576 100c77e0
269252576 100c77e0
269252576 100c77e0
1 0
269252320 100cf5c0
-1540934464 100c77c0
273201024 100c7b68
-1491615744 100c7880
269493976 876b54a0
269252736 100c7880
-2023010368 100c7880
17159248 10afb38
269252544 103aae4
0 0
0 0
0 0
33 18

Hi Vick,

Do you have any ideas for how I can decode this output?

If you are particularly trying to reconcile image type, you can first query for all keys under NvSciBufGeneralAttrKey_* (defined in NvSciBufAttrKey) using NvSciBufAttrListGetAttrs() and then query for all keys under NvSciBufImageAttrKey_* using NvSciBufAttrListGetAttrs().
The keys which successfully reconciled will have reconciled value, the keys which didn’t reconcile will not have any value in them.

You can also send us conflictListBinaryDump.bin dumped by below code snippet for our checking.

err = NvSciBufAttrListReconcile(inputArray,

                                inputCount,

                                &newReconciledAttrList,

                                &newConflictList);

if (err != NvSciError_Success) {

    if (newConflictList != NULL) {

        void* buf = NULL;

        size_t len = 0UL;

        err2 = NvSciBufAttrListDebugDump(newConflictList, &buf, &len);

        FILE* pFile = fopen("conflictListBinaryDump.bin", "wb");

        fwrite(buf, len, 1, pFile);

        fclose(pFile);

    }

}

Sharing your changes based on the sample is also another way in which we can help. Thanks!

Hi,

I am seeing a similar problem currently with NvSci Buffer reconciliation and thought to bump this old topic rather than starting a new thread for the same issue with the same setup.

Using the NvSciBufAttrListReconcile() function, I am getting the following errors:

The setup and function call is as follows:

NvMedia buffer is setup as follows:

Hi @Mike_W,

Could you help to create a new topic linked to this one? Thanks.