On Thu, 30 Jun 2016 11:27:41 +1000 Daniel Kasak <[email protected]> said:

> Hi all.
> 
> My workplace is rolling out new display hardware, including a
> 'DisplayLink' hub. DisplayLink products provide connectivity to
> monitors over USB. We're using DisplayLink 3 devices, which have
> proprietary drivers. I'm having a lot of issues getting things working
> smoothly. A thread on our performance issues is at:
> 
> http://displaylink.org/forum/showthread.php?t=64603
> 
> I've recently been asked about the compositor's "swapping method". I
> currently have it set to auto. After I read this question, I thought
> I'd try out other methods ( at home, no DisplayLink stuff connected ).
> After this testing, I assume my setup is using the "Invalidate (full
> redraw)" method, because this is the only method that works well.
> 
> "Copy from back to front", "Double buffered swaps" and "Triple
> buffered swaps" produce a LOT of flickering and artifacts when I drag

ok. that's because you FORCE evas (the renderer) to assuming the gl back-end is
either doing copies, double or triple buffered swaps. it's not a driver bug.
it's forcing evas to assume the driver works in a specific way. auto is the
default because... well it asks the gl implementation how it works.  :)

> windows around. I assume this is a driver issue ( Intel GPU, mesa
> built from git, 4.7 kernel, X built from git )? If so, does anyone
> know if bugs are entered against the relevant components yet?

nope. as above. :)

> The DisplayLink people have said in other threads that compositing
> managers that force a full screen refresh leave them with no option
> but to do a lot of processing, causing high CPU usage and bad latency
> in display updates.

so. evas works by doing a glxswapbuffer() or an eglswapbuffer() depends if efl
is built for egl or glx). evas supports buffer age in glx. the only glx driver
to support this is the nvidia driver. what this extension does, it tells us how
old the buffer is after we swapped. knowing this means we can only draw the
changes between now and that older frame. this allows partial updates. evas
fully supports this if detected. i have noticed the nvidia driver seems buggy
here and reports and incorrect age. i am relatively sure it's the driver
because the same update region handling code has been tested with a simulated
driver where it pretends to do copies, double, triple, quadrouple etc.
buffering and can even change the age of a buffer every now and again. also the
exact same code for partial update handling ships on tizen for compositor and
all client apps and it works correctly there too.

we ALSO support the egl buffer age extension. in egl there is another extension
to swap buffer with region updates. this is basically supported only on some
embedded drivers and generally nowhere else. why? because on embedded this
really helps performance. :) this means we use buffer age to decide what
regions to update/redraw and then we TEL the display which regions were
updated when we swap buffers by providing a list of rectangles with the swap.

so we swap. we support just about every extension that exists to minimize
damaged regions. it's up tot he egl drivers to go support this. the for glx
there is only something to minimze what we render (buffer age) but nothing to
provide updated regions at swap time.

we COULD render to an fbo and literally do front buffer rendering and copy the
update to the frontbuffer. this has issues.

1. you cant vsync and do tear-free renderring this way
2. it ALWAYS is a copy and copies are not free. swapping above can be zero copy
if the driver is smart (if you render fullscreen like the compositor does, most
drivers switch to swapping from copying).

so 1. build for egl/gles, 2. poke your driver maintainers to support these
extensions above because these allow zero copy for the compositor AND zero copy
for client windows AND partial updating.

> Am I out of luck?
> 
> Dan
> 
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> _______________________________________________
> enlightenment-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to