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.

Linux/TDA2: question about vmem-exp

Part Number: TDA2

Tool/software: Linux

hi , TI experts, 

I am using  Linux usecase (OV490 3D srv ) in vision SDK 3.04.00.

Now my problem is that the display output only tex[0], tex[3], tex[1] and tex[2] are same with tex[1], tex[3].

I find out in vmem-exp.c ( kernel driver ), vmem_export_single function export the  2 video  virtual addr (such as 0xa7a2b000, 0xa7a2b500)

to a same dmafd. It seems like the PAGE_MASK (4K Align) mask the offset(0x500). 

If this, how GPU map the correct physical address ?  I mean, the same dmafd get 2 different address (such as YUV  0xa7a2b000, 0xa7a2b500) ?

regards, 

John

  • Hello,

    This is a standard Linux limitation in Linux.

    DMABUF can be used only to export certain pages from the kernel

    For GPU, most likely, one of the following should work

    - just pass one dmabuf, GPU finds out the UV offset based on the size of Y

    - pass the same dmabuf for both Y and UV and provide offset values

    Regards,

    Nikhil D

  • Hi ,Nikhil
    thanks for reply.
    "- pass the same dmabuf for both Y and UV and provide offset values"
    In Vision SDK SGX drivers, I cannot find the provided offset values in System_eglWindowGetTexYuv().
    For frameBuffer as below:
    Y1 Y2
    UV1 UV2
    It can only checkout the Y1 and UV1, Y2 and UV2 are missed.
    Can u give me more tips to find offset manipulation?
    regards,
    John
  • John, are you still facing this issue? I am closing this thread.