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/AM5728: Display rotation support

Part Number: AM5728


Tool/software: Linux

Hi,

I have one question regarding AM5728 Display controller.

According to the Display controller of AM572x TRM, AM5728 have a feature of rotation.

    - Rotation 0, 90, 180, and 270 degrees using DMM-TILER.

So I think AM5728 have rotation feature in hardware.

However, according to the Linux Core DSS User's Guide of TI wiki, it is written in the below.

********************************************************

Unsupported Features/Limitations

  • Rotation/Tiler 2D
    • Partially supported by the driver, but almost unusable due to HW limitations

**********************************************************

Is Rotation feature supported in Display driver of Linux SDK?

Also, for using rotation feature, is there some concerns related 2D, 3D accelaration?

Please advise me.

Best regards,

Michi

  • The software team have been notified. They will respond here.
  • Rotation feature works when TILED 2D memory is used. Today only ABGR32 format (future release will support NV12 and YUYV format as well) is supported for rotation by display driver. It is not in usable format  as other IPs that can provide buffer to display doesn't support working with TILED 2D memory. There's silicon errata that can trouble when ARM renders to the display buffer and hence the feature is not in usable format today. We are looking into enhancing other IPs to support 2D tiled memory. 

    If you are using Wayland, then rotation can be supported using weston. Not sure though if entire processing gets offloaded to GPU or it it's combination of GPU and CPU processing. Check this link for configuring the weston.ini file for rotation -

    http://manpages.ubuntu.com/manpages/wily/man5/weston.ini.5.html

  • Dear manisha-san,

    Thank you for your support. It is very helpful.

    My customer would like to get the source code that used Rotation feature of AM5728. Are there some sample code in Processor SDK?
    Customer would like to see the sample code that working is proved.

    I appreciate your continuous support.

    Best regards,
    Michi
  • Hi Michi,

    I have tested DSS based rotation with a sample application for RGB32 format. It works fine.

    rotation_patches.zip

    Apply the attached patches on git://git.ti.com/glsdk/omapdrmtest and rebuild the application.

    YUVRGBdisplay reads one frame into tiler buffer and DRM  is configured for rotation here.

    Ramprasad

  • Dear Ramprased-san,

    Thank you for your cooperation.

    My customer is trying to work DSS based rotation on TI EVM. But they have some error.
    So if possible, could you send me binary file that you had tested? At first they would like to see it works fine.
    Customer uses SD boot with TI EVM.

    I appreciate your quick reply.

    Best regards,
    Michi
  • Hi Michi san,

    Please find the application to test DSS rotation.

    rotationTest.zip

    usage: rotationTest -s 32:1280x720  abgr32.raw -W width -H height -c abgr32 -t auto -r 90

    W and H are width and height of the buffer. -r is the rotation value(0, 90, 180 and 270)

    Rotation works fine for only abgr32 format. 

    You can use any existing abgr32  files or generate using testvpe application.

    $testvpe /user/share/ti/video/airshow_p352x288.yuv 352 288 nv12 abgr32.raw 720 480 abgr32 0 1 40

    Ramprasad

  • Hi Michi,

    I hope you understand that while the rotation feature using DSS is functional when the content is rendered by ARM, silicon errata i878 prevents us to call that stable.

    My suggestion would be to try the rotation feature using wayland. It can be enabled through wayland by configuring /etc/weston.ini file. Add below lines to your weston file.. In my example, I used HDMI output named as HDMI-A-1. as below. Check for output name of your display by running modetest and modify the parameter accordingly.

    [output]
    name=HDMI-A-1
    transform=180

    You can rotate to different orientation following below settings -
    transform=normal
    The transformation applied to screen output (string). The
    transform key can be one of the following 8 strings:


    normal Normal output.
    90 90 degrees clockwise.
    180 Upside down.
    270 90 degrees counter clockwise.
    flipped Horizontally flipped
    flipped-90 Flipped and 90 degrees clockwise
    flipped-180 Flipped upside down
    flipped-270 Flipped and 90 degrees counter clockwise