mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-26 21:12:25 +00:00
glamor: Add glamor_transfer based glamor_get_image and glamor_put_image
These use the upload_boxes and download_boxes helpers to provide
reasonably efficient image transfer.
Fixes segfaults in Xephyr with x11perf -reps 1.
Performance improvements:
Improves -putimage10 by 548.218% +/- 88.601% (n=10).
Improves -putimage500 by 3.71014% +/- 1.5049% (n=10).
Improves -getimage10 by 8.37004% +/- 4.58274% (n=10).
No statistically significant difference on -getimage500 (n=10).
v2: Fix rebase failures, don't forget to check/prepare the gc in
putimage fallbacks (changes by anholt).
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
747160016b
commit
5062b4fadd
6 changed files with 190 additions and 275 deletions
|
|
@ -507,7 +507,6 @@ glamor_init(ScreenPtr screen, unsigned int flags)
|
|||
#ifdef GLAMOR_TRAPEZOID_SHADER
|
||||
glamor_init_trapezoid_shader(screen);
|
||||
#endif
|
||||
glamor_init_putimage_shaders(screen);
|
||||
glamor_init_finish_access_shaders(screen);
|
||||
#ifdef GLAMOR_GRADIENT_SHADER
|
||||
glamor_init_gradient_shader(screen);
|
||||
|
|
@ -541,7 +540,6 @@ glamor_release_screen_priv(ScreenPtr screen)
|
|||
#ifdef GLAMOR_TRAPEZOID_SHADER
|
||||
glamor_fini_trapezoid_shader(screen);
|
||||
#endif
|
||||
glamor_fini_putimage_shaders(screen);
|
||||
glamor_fini_finish_access_shaders(screen);
|
||||
#ifdef GLAMOR_GRADIENT_SHADER
|
||||
glamor_fini_gradient_shader(screen);
|
||||
|
|
|
|||
Loading…
Reference in a new issue