- 26 Mar, 2013 1 commit
-
-
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: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 22 Mar, 2013 1 commit
-
-
Siarhei Siamashka authored
This is still not perfect, because G2D can't saturate memory bandwidth for this color depth (it is fillrate limited). We should emulate 16bpp blits with 32bpp blits whenever it is possible. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 21 Mar, 2013 1 commit
-
-
Siarhei Siamashka authored
Now source and destination pixmaps don't need to be the same for using G2D acceleration (as long as both of them are allocated in the framebuffer). This allows using G2D to copy pixels from DRI2 buffers to the framebuffer on the fallback path (when the window of an OpenGL ES application is partially overlapped by some other windows). Though it only works when composite extension is disabled, for example by adding the following to xorg.conf: Section "Extensions" Option "Composite" "Disable" EndSection If composite extension is enabled, windows have backing pixmaps, and we have a longer chain of copies: DRI2 buffer -> backing pixmap -> framebuffer Because backing pixmap is not allocated in a physically contiguous memory, it can't be copied using G2D yet. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 18 Mar, 2013 1 commit
-
-
Siarhei Siamashka authored
Wrap CreateGC function to add a hook for CopyArea operation, which can be accelerated using G2D for the buffers inside of the visible part of the framebuffer. In the future we may try to also ensure that DRI2 buffers are copied using G2D instead of CPU in the case if we hit the fallback path and can't avoid this copy. Benchmark using "x11perf -scroll500 -copywinwin500": === ShadowFB (software rendering) === 3000 reps @ 2.0308 msec ( 492.0/sec): Scroll 500x500 pixels 3000 reps @ 1.9741 msec ( 507.0/sec): Scroll 500x500 pixels 3000 reps @ 1.9826 msec ( 504.0/sec): Scroll 500x500 pixels 3000 reps @ 1.9830 msec ( 504.0/sec): Scroll 500x500 pixels 3000 reps @ 1.9965 msec ( 501.0/sec): Scroll 500x500 pixels 15000 trep @ 1.9934 msec ( 502.0/sec): Scroll 500x500 pixels 1600 reps @ 3.3054 msec ( 303.0/sec): Copy 500x500 from window to window 1600 reps @ 3.3179 msec ( 301.0/sec): Copy 500x500 from window to window 1600 reps @ 3.2263 msec ( 310.0/sec): Copy 500x500 from window to window 1600 reps @ 3.2491 msec ( 308.0/sec): Copy 500x500 from window to window 1600 reps @ 3.2357 msec ( 309.0/sec): Copy 500x500 from window to window 8000 trep @ 3.2669 msec ( 306.0/sec): Copy 500x500 from window to window === G2D (hardware acceleration) === 3000 reps @ 2.1949 msec ( 456.0/sec): Scroll 500x500 pixels 3000 reps @ 2.1929 msec ( 456.0/sec): Scroll 500x500 pixels 3000 reps @ 2.1923 msec ( 456.0/sec): Scroll 500x500 pixels 3000 reps @ 2.1889 msec ( 457.0/sec): Scroll 500x500 pixels 3000 reps @ 2.1941 msec ( 456.0/sec): Scroll 500x500 pixels 15000 trep @ 2.1926 msec ( 456.0/sec): Scroll 500x500 pixels 2800 reps @ 1.8114 msec ( 552.0/sec): Copy 500x500 from window to window 2800 reps @ 1.8103 msec ( 552.0/sec): Copy 500x500 from window to window 2800 reps @ 1.8160 msec ( 551.0/sec): Copy 500x500 from window to window 2800 reps @ 1.8099 msec ( 553.0/sec): Copy 500x500 from window to window 2800 reps @ 1.8126 msec ( 552.0/sec): Copy 500x500 from window to window 14000 trep @ 1.8120 msec ( 552.0/sec): Copy 500x500 from window to window CPU usage remains low when running this test with G2D acceleration enabled. Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-
- 14 Mar, 2013 1 commit
-
-
Siarhei Siamashka authored
This initial G2D support code can speed up moving windows in XFCE. Currently disabled by default, but can be enabled by editing /etc/X11/xorg.conf and adding the following line to the "Device" section: Option "AccelMethod" "G2D" Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
-