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.

cloning a buffer allocated by tiler

  I have a dual LCD device and I would like to display the same buffer on the displays when running android.   When just running linux this works fine by setting up up the displays and overlays and then doing something like echo "0,2" > $fb0/overlays.

  However, when android is running the linux framebuffers are not used and instead buffers are used that have been allocated by tiler.   I'm looking for any information on what tiler and ion is and if there is a way for me to "clone" that buffer the same way as the linux framebuffer.

  • TILER is conceptually a system wide MMU. Memory mapped in TILE space can be used for more efficient video processing and free rotations. It is very similar to normal memory but allocation/deallocation must be handled by tiler driver.

    Cloning the framebuffer on multiple displays should be possible and independent of the buffer allocated in TILER/regular space.

  •  I don't see an obvious way to clone the TILER allocated buffer.  For example, when running linux only, I can clone framebuffer 0 to overlay 0 & 1(and their associated displays) by setting fb0's sysfs 'overlays' entry to '0,1'  When running android it appears the display controllers dma engine gets the data from the TILER buffers not the linux framebuffer so setting the framebuffers overlays entry has no effect. 

      After adding some additional logging I can see that android is using multiple overlay and compositing them in the WB pipeline before being displayed to the primary lcd.   What I really need is for the WB buffer(which also appears to be allocated by the TILER) to be displayed on the second LCD also.  I'm going to look into this more today but would welcome any additional input.

    thanks,

    jeff