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.

16-bit display with AM335x SDK 02.00.01.07



Is it possible to use a 16-bit display (such as the BeagleBone Black's HDMI) with the am335x-evm-sdk-bin-02.00.01.07, 4.1.13 kernel *AND* accelerated graphics? I am using the am335x-evm-sdk-bin-02.00.01.07.tar.gz downloaded from the TI web site, and the tisdk-rootfs-image-am335x-evm.tar.gz from its filesystems.


The framebuffer still looks to be fine (according to the psplash during boot and shutdown), but anything which uses the new DRM driver (omapdrm_pvr as opposed to the old-style pvrsrvkm and omaplfb modules) in the most recent SDK has a swapped red-blue channels. This affects Qt apps (like the matrix browser) and the Imagination OGLES demos (like OGLES2ChameleonMan, OGLESEvilSkull, OGLESFilmTV, etc.).


I understand the color swap problem is in the processor errata. However, it does not seem to be possible to use 16-bit color whenever running any of these demos or Qt applications on the eglfs platform; the framebuffer is always being set to the XRGB pixel format whenever these demos are run, according to debugfs:

root@am335x-evm:~# cat /sys/kernel/debug/dri/0/fb                               
fb: 1024x768@XR24                                                               
   0: offset=0 pitch=4096, obj:  0 ( 3) 00010180 0x9d300000 dd300000 3145728    
fb: 1024x768@RG16                                                               
   0: offset=0 pitch=2048, obj:  0 ( 1) 00010000 0x9d100000 dd100000 1572864    

When none of these processes are running, only the RG16 fb is reported.

fbset only reports 16-bit color:

root@am335x-evm:~# fbset                                                        
                                                                                
mode "1024x768"                                                                 
    geometry 1024 768 1024 768 16                                               
    timings 0 0 0 0 0 0 0                                                       
    accel true                                                                  
    rgba 5/11,6/5,5/0,0/0                                                       
endmode                                                                         

I have tried adding video=1024x768-16@60 to the bootargs, but this did not make a difference.

modetest is also reporting that only the 24-bit pixel formats are available:

Planes:                                                                         
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs  
17      18      26      0,0             0,0     0               0x00000001      
  formats: XR24 AR24                                                            

WIth the previous SDK release, it was possible to run these demos on the BeagleBone Black HDMI without the red-blue swap. Is this no longer possible with the new SDK? Does the DRM driver not support 16-bit color?

  • I will forward this to the LCD experts.
  • This is a known issue because DDK 1.14 supports only XRGB. We can try to get this addressed in next PSDK release scheduled end of 2Q, 2016.

  • That's what I figured.

    Hopefully, this post will come up for any one else searching for an answer to (or at least a reason for) this problem, because I didn't see it addressed anywhere else.
  • Any chance this will get fixed earlier than end of 2Q? I am having the same issue with our product after upgrading to a newer version the of Yocto (fido) build for the Variscite VAR-SOM-AM33. The newer yocto build uses the newer DRM driver so I may need to revert back to the older (daisy) build of Linux.
    Is the older driver compatible with the Linux 4.1 kernel?
    Rob
  • I would like to take my earlier comment back. The issue that I mentioned above is applicable to 2.02 release. PSDK 2.00.01.07 is still with DDK 1.9. You can set the pixel format in PSD 2.00.01.07 by setting DefaultPixelFormat=RGB565 in /etc/powervr.ini file. You can refer to below wiki for same -

    processors.wiki.ti.com/.../SGXDbgInfo
  • The Imagination demos looked proper with DefaultPixelFormat=RGB565 in the .ini file. Thank you.
  • The yocto (fido) build I am using uses the 1.9.11 version of the DDK. Even after adding RGB565 in /etc/powervr.ini I still get the swapped Red and Blue colors. Is there something else I need to do to fix this issue?
    Rob
  • Can you run the SGX demo and share the logs?
  • Thanks for the reply. Is this the logging you are looking for? or would something like strace?
    Rob

    pvr_trace /usr/bin/SGX/demos/Raw/OGL
    LESEvilSkull
    Launching /usr/bin/SGX/demos/Raw/OGLESEvilSkull...
    TO_PROFILE has not been defined, assuming TO_PROFILE = 0

    OpenGL ES libraries found on the system!
    Changing the base configuration file...
    PVRTrace config file has been updated:
    EglLibraryPath set to "/usr/lib/libEGL.so.1",
    Es1LibraryPath set to "/usr/lib/libGLESv1_CM.so.1",
    Es2LibraryPath set to "/usr/lib/libGLESv2.so.2",

    NOTE: To edit the pvrtraceconfig.json just use a text editor of your choice

    Starting to trace the application...
    /usr/bin/SGX/demos/Raw/OGLESEvilSkull: /lib/libstdc++.so.6: no version information available (required by /opt/img-powervr-sdk/PVRHub/PVRTrace/Recorder/libPVRTrace.so)
    /usr/bin/SGX/demos/Raw/OGLESEvilSkull: /lib/libstdc++.so.6: no version information available (required by /opt/img-powervr-sdk/PVRHub/PVRTrace/Recorder/libPVRTrace.so)
    /usr/bin/SGX/demos/Raw/OGLESEvilSkull: /lib/libstdc++.so.6: no version information available (required by /opt/img-powervr-sdk/PVRHub/PVRTrace/Recorder/libPVRTrace.so)
    Config file found: /opt/img-powervr-sdk/PVRHub/PVRTrace/Recorder/pvrtraceconfig.json

    Reading config section: *
    PVRTrace has disabled support for shader/program binaries in the API. This can be changed by setting DisableBinaries to false in the config.
    Opening trace file '/opt/img-powervr-sdk/PVRHub/recordings/trace-OGLESEvilSkull895.pvrt' for recording.
    Recorder Version: 3.5@3533642
    Loading host library '/usr/lib/libEGL.so.1'
    Host library '/usr/lib/libEGL.so.1' loaded
    PVR: Hint: Setting WindowSystem to libpvrDRMWSEGL_FRONT.so

    mode for connector 20 is 480x272
    DRM SET CRTC: index: 0 fd: 8, crtc: 12, fb: 18, conn: 14, mode: 480x272
    PVRShell: EGL 1.4 initialized
    PVR: Hint: Setting DisableHWTQTextureUpload to 1

    Loading host library '/usr/lib/libGLESv1_CM.so.1'
    Host library '/usr/lib/libGLESv1_CM.so.1' loaded
    Recording... Current frame: 1
  • We do not see in your logs -

    PVR: Hint: Setting DefaultPixelFormat to RGB565

     


    We tried building DDK 1.9.11 using yocto recipe from AM335x PSDK release version 2.0.1.7 and do not see the issue.

    @oe-layersetup\sources\meta-ti\recipes-graphics\libgles\omap5-sgx-ddk-um-linux_1.9.0.12.bb

    SRCREV_ti33x    = "84ae5444c7cbc3f4c65a226b9fea62d4a513f3e0"

  • I have DefaultPixelFormat=RGB565 in the powervr.ini which is in etc. Is that the correct place to set it?

    [default]
    WindowSystem=libpvrDRMWSEGL_FRONT.so
    #WindowSystem=libpvrDRMWSEGL.so
    DisableHWTQTextureUpload=1
    DefaultPixelFormat=RGB565

    Rob

  • Not sure what to try next. I have the DefaultPixelFormat=RGB565 property in the ini file but I'm not seeing the demo pick up the property in its output. I ran OGELSEvilSkull in strace and it seems to be reading the powervr.ini file in etc. Any ideas?
  • Either the powervr.ini is incorrect or it is not the right library.
    Did you try with the release build directly from proc sdk 2.00.01.07?
  • Ah, it looks like I am actually building with a 02.00.00 config. Can I just change the meta-processor-sdk version to the 02.00.01.07 version?

    -- from  processor-sdk-02.00.01.07

    meta-processor-sdk,git://arago-project.org/git/projects/meta-processor-sdk.git,master,12c6ff170389762b6f7f7bf290cd26bfa316cf47,layers=

    my yocto config --- var-som-amx3_sdk-02.00.00-config.txt

    # This file takes repo entries in the format
    # repo name,repo uri,repo branch,repo commit[,layers=layer1:layer2...:layern]

    bitbake,git://git.openembedded.org/bitbake,1.26,ed30f4ee1cef8db9ea422c5e54b2375c4f3b1d6f,layers=
    meta-variscite-amx3,git://github.com/varigit/meta-variscite-amx3.git,fido,HEAD,layers=
    meta-processor-sdk,git://arago-project.org/git/projects/meta-processor-sdk.git,master,bfc49c171cead0cf0b5d859f51c45364a74e1ea7,layers=
    meta-arago,git://arago-project.org/git/meta-arago.git,master,ti2015.01,layers=meta-arago-distro:meta-arago-extras
    meta-qt5,git://github.com/meta-qt5/meta-qt5.git,master,97ce05c0b2a81f05388d7f727741529fb9177775,layers=
    meta-openembedded,git://git.openembedded.org/meta-openembedded,fido,214e1801d0efc38d3b6142bdc0d8e58ca593e34c,layers=meta-networking:meta-ruby:meta-python:meta-oe
    meta-ti,git://arago-project.org/git/meta-ti.git,fido,ti2015.01,layers=
    meta-linaro,git://git.linaro.org/openembedded/meta-linaro.git,fido,3f1933242062d1cf473d20b86fa4582963ff9441,layers=meta-linaro-toolchain
    oe-core,git://git.openembedded.org/openembedded-core,fido,4c02a30f084408d0a6a5149937ef74520f8346dc,layers=meta
    OECORELAYERCONF=./sample-files/bblayers.conf.sample
    OECORELOCALCONF=./sample-files/local-arago64.conf.sample

  • Not sure if above will work. In case you see issue, you can follow this page to build processor-sdk-02.00.01.07. Use configs/processor-sdk/processor-sdk-02.00.01.07-config.txt
    processors.wiki.ti.com/.../Processor_SDK_Building_The_SDK