1. 17 Jun, 2013 1 commit
  2. 12 Jun, 2013 3 commits
    • Siarhei Siamashka's avatar
      CPU: use VFP overlapped blit on VFP-capable hardware by default · 3ad74420
      Siarhei Siamashka authored
      
      
      This should be useful for Raspberry Pi. When reading uncached source buffers,
      the VFP optimized overlapped two-pass blit is roughly 2-3 times slower than
      memcpy in cached memory. Which makes it reasonably competitive compared to
      ShadowFB (considering that ShadowFB allocates an extra buffer, does extra
      memory copies which take time and thrash L2 cache, etc.). It even provides
      a slight performance advantage in a more or less realistic use case
      (scrolling in xterm), which needs reads from the framebuffer:
      
      ==== Before (xf86-video-fbdev with ShadowFB) ====
      
      $ time DISPLAY=:0 xterm +j -maximized -e cat longtext.txt
      
      real    1m50.245s
      user    0m1.750s
      sys     0m0.800s
      
      ==== After (xf86-video-sunxifb without ShadowFB) ====
      
      $ time DISPLAY=:0 xterm +j -maximized -e cat longtext.txt
      
      real    1m27.709s
      user    0m1.690s
      sys     0m0.920s
      
      We get decent results even when reading from the framebuffer. However
      in many typical workloads (excluding scrolling and dragging windows)
      the framebuffer is primarily used as write-only. In write-only use
      cases ShadowFB is just pure overhead. So getting rid of it is a
      very good idea as this improves overall graphics performance.
      Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
      3ad74420
    • Siarhei Siamashka's avatar
      Fix segfault on exit (introduced by the new backing store code) · 3676a495
      Siarhei Siamashka authored
      
      
      A small typo in a function argument and C compiler happily accepting
      void pointers instead of something else is a dangerous combo. Need to
      be more careful.
      Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
      3676a495
    • Siarhei Siamashka's avatar
      Backing store heuristics for improving windows dragging performance · f5501ff1
      Siarhei Siamashka authored
      
      
      This patch implements a heuristics, which enables backing store for some
      windows. When backing store is enabled for a window, the window gets a
      backing pixmap (via automatic redirection provided by composite extension).
      It acts a bit similar to ShadowFB, but for individual windows.
      
      The advantage of backing store is that we can avoid "expose event -> redraw"
      animated trail in the exposed area when dragging another window on top of it.
      Dragging windows becomes much smoother and faster.
      
      But the disadvantage of backing store is the same as for ShadowFB. That's a
      loss of precious RAM, extra buffer copy when somebody tries to update window
      content, potentially skip of some frames on fast animation (they just do
      not reach screen). Also hardware accelerated scrolling does not currently
      work for the windows with backing store enabled.
      
      We try to make the best use of backing store by enabling backing store for
      all the windows that are direct children of root, except the one which has
      keyboard focus (either directly or via one of its children). In practice this
      heuristics seems to provide nearly perfect results:
       1) dragging windows is fast and smooth.
       2) the top level window with the keyboard focus (typically the application
          that a user is working with) is G2D accelerated and does not suffer from
          any intermediate buffer copy overhead.
      Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
      f5501ff1
  3. 07 Jun, 2013 2 commits
  4. 30 Mar, 2013 1 commit
  5. 26 Mar, 2013 1 commit
    • Siarhei Siamashka's avatar
      G2D: Now sunxi_x_g2d.c code does not require sunxi disp anymore · 1cd5f084
      Siarhei Siamashka authored
      
      
      The sunxi_x_g2d.c file contains the midlayer code for hooking the
      G2D optimized blit into xserver. But in fact it does not strictly
      need to depend on anything sunxi specific.
      
      So now we introduce a simple "blt2d_i" interface struct which
      specifically provides a pointer to the accelerated blit function.
      And just use this interface struct instead of the whole "sunxi_disp_t".
      This allows to easily reuse the same code for other non-G2D or even
      non-sunxi blit implementations in the future.
      Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
      1cd5f084
  6. 22 Mar, 2013 1 commit
  7. 17 Mar, 2013 2 commits
  8. 14 Mar, 2013 2 commits
  9. 12 Mar, 2013 1 commit
  10. 24 Jan, 2013 1 commit
  11. 20 Jan, 2013 4 commits
    • Siarhei Siamashka's avatar
      Support for sunxi hardware cursor · 64d51c0f
      Siarhei Siamashka authored
      Hardware cursor is necessary because it is also visible on
      top of sunxi disp layers, while software cursor is not.
      
      FIXME: there is one minor problem with negative cursor
      positions. The hardware does not support them, so such
      positions are just set to 0 for now. In the future this
      can be solved better by changing the cursor picture and
      showing only the parts which are visible on screen.
      64d51c0f
    • Siarhei Siamashka's avatar
      Added supplementary wrapper functions for sunxi display controller ioctls · bf7c7a6c
      Siarhei Siamashka authored
      Note: the header file "sunxi_disp_ioctl.h" is GPL licensed. So until
      it is gets a MIT/X11 replacement, the DDX driver is GPL licensed as
      a whole. The individual source files still have their own license.
      Also in order to avoid any possible confusion, the MIT/X11 license
      header from COPYING has been added to "fbdev.c" and "fbdev_priv.h".
      bf7c7a6c
    • Siarhei Siamashka's avatar
      Move driver private data into a separate header file · b0813ddf
      Siarhei Siamashka authored
      It is going to be included by multiple different source files.
      b0813ddf
    • Siarhei Siamashka's avatar
      Rename "fbdev" -> "sunxifb" and update man page · 703aea28
      Siarhei Siamashka authored
      As there is no way for the hardware specific bits to be accepted
      in xf86-video-fbdev, we need a new driver with its own name.
      703aea28
  12. 25 Sep, 2012 1 commit
  13. 05 Jun, 2012 3 commits
  14. 17 Dec, 2010 1 commit
  15. 10 Nov, 2010 3 commits
  16. 08 Feb, 2010 1 commit
  17. 14 Dec, 2009 1 commit
  18. 28 Jul, 2009 2 commits
  19. 28 May, 2009 1 commit
  20. 04 Mar, 2009 1 commit
  21. 24 Nov, 2008 1 commit
  22. 12 Oct, 2007 1 commit
  23. 22 Jan, 2007 1 commit
  24. 31 Dec, 2006 1 commit
  25. 29 Dec, 2006 2 commits
  26. 27 Dec, 2006 1 commit