Screen triangle tearing

arunkrish20 . arunkrish20 at gmail.com
Mon Apr 18 04:01:32 EDT 2016


Hi Michael,

Thanks for your reply and suggestions,

As you suggested we are trying to add sync points while copying the pixmap
in EGL codes. Mean time we have posted the query to our vendor also.

And let you know once we get the positive result.

We have another issue in our application while playing a video. If you have
any idea please share with us.

We have 2 hardware frame buffers in our hardware (FB0 & FB1), We are
creating pipeline with gstreamer (v4l sink) to play video.
Video content is updated with FB1 i.e Background and our GUI video play
controls are displayed in FB0. Apart from the play controls area we are
setting the alpha values are 0 to every pixel.

So that IPU(IMX peripheral) can blend FB0 & FB1 with alpha in pixel mode
configuration.

But the issue is, As per our GUI pixmap content alpha values are not
updated to FB0.

All the alpha values every pixels are 255 only.

But i tried with direct X application the final output is as expected by
GUI pixmap.

When i use Layermanager the final output pixel alpha values are updated
with 255 only.


>From LayerManager we have checked the final output to the display from
below functions. There the pixmap having correct alpha values.
GLESGraphicsystem::swapBuffers()

Do i need to configure something else for this in LayerManager?
Please suggest us.

screen 0 (0x0)
---------------------------------------
- resolution:           x=1280, y=480
- hardware layer count: 0
- layer render order:   1000(0x3e8),

    layer 1000 (0x3e8)
    ---------------------------------------
    - created by pid:       184
    - original size:        x=800, y=480
    - destination region:   x=0, y=0, w=800, h=480
    - source region:        x=0, y=0, w=800, h=480
    - orientation:          0 (up is top)
    - opacity:              1
    - visibility:           1
    - type:                 2 (software 2d)
    - chromakey:            disabled (r=0, g=0, b=0)
    - surface render order: 100(0x64),
    - on screen:            0(0x0)


        surface 100 (0x64)
        ---------------------------------------
        - created by pid:       338
        - original size:      x=800, y=480
        - destination region: x=0, y=0, w=800, h=480
        - source region:      x=0, y=0, w=800, h=480
        - orientation:        0 (up is top)
        - opacity:            1
        - visibility:         1
        - pixel format:       2 (RGBA-8888)
        - native surface:     6291459
        - accepts input from: keyboard mouse touch
        - has keyboard focus: true
        - chromakey:          disabled (r=0, g=0, b=0)
        - counters:           frame=115, draw=0, update=0
        - on layer:           1000(0x3e8)

Thanks,
Arun

On Thu, Apr 14, 2016 at 10:38 AM, <Michael.Schuldt at bmw.de> wrote:

> Hi Arun,
>
>
>
> we are facing the same issue some years ago. The root cause for this
>
> at our side was the fact that in the same time where
>
> the LayerManager is reading the content from the X11Pixmap another
>
> application renders / clears the buffer or is rendering into that. Due
>
> to the fact that there is no synchronization / double bufferin
>
> by default by accessing the pixmap, you will get into this issue.
>
>
>
> The solution was solved directly by introducing sync points in OpenGL ES
>
> Driver during texture access.
>
>
>
> I think you have discuss that with your silicon vendor which is providing
>
> your graphic driver.
>
>
>
> Cheers
>
>
>
> Michael.
>
>
>
> *Von:* genivi-ivi-layer-management-bounces at lists.genivi.org [mailto:
> genivi-ivi-layer-management-bounces at lists.genivi.org] *Im Auftrag von *arunkrish20
> .
> *Gesendet:* Mittwoch, 13. April 2016 08:48
> *An:* genivi-ivi-layer-management at lists.genivi.org
> *Betreff:* Screen triangle tearing
>
>
>
> Hi all,
>
> We are facing some (Screen Triangle tearing)issue while we update the 2
> surfaces in parallel.
>
> Using plugins GLES,X11 and we have 2 surfaces in a layer(i.e 2 X11
> windows) will be present in display.
>
> Most of the time triangle tearing is happening where we have a pixel
> update area.
>
> Is it like surface update completed, based on that x damage event
> layermanager started to blend mean time other surface update in half way?
>
> We tried to take the snapshot through dump command when that time issue is
> not there.
>
>
>
> In the attached image, as i said we have 2 surfaces top surface 75% of the
> surface is transparent to see the bottom of the surface informations. In
> the bottom of the surface we are seeing this triangle tearing.
>
> And this issue cleared when any one of the window surface is updated.
>
>
>
> If anyone faced this kind of problem or any idea about this issue, please
> share you thoughts.
>
> Thanks,
>
> Arun
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genivi.org/pipermail/genivi-ivi-layer-management_lists.genivi.org/attachments/20160418/546f91ee/attachment.html>


More information about the genivi-ivi-layer-management mailing list