[Mesa-dev] [PATCHv2 0/9] drisw/glx: use XShm if possible
Marc-André Lureau
marcandre.lureau at gmail.com
Mon Jun 15 06:34:06 PDT 2015
Hi,
XPutImage/XGetImage requires to copy the images around, and the
request may be split over several chunks. Using XShm should improve
performance.
In particular, the performances are bad when using gnome-shell with
Spice and playing video. Chunking the update confuses the video
detection heuristic: unfortunately it's not easy to change it without
breaking further other cases. Making one big request per video frames
solves most of the issues.
Changes since v1, after Adam Jackson review:
- fix a wrong ximage != NULL condition
- add XSync() after XPutImageShm to ensure server is done with it
- add getImageShm()
Marc-André Lureau (9):
dri: add putImageShm and getImageShm to swrastLoader
drisw: use putImageShm if available
drisw: use shared memory when possible
drisw/glx: use XShm if possible
gallium: move winsys_handle to its own header
gallium: rename DRM_API_HANDLE_TYPE* WINSYS_HANDLE_TYPE*
drisw: learn to query shmid handle type
drisw: use getImageShm() if available
drisw/glx: implement getImageShm
include/GL/internal/dri_interface.h | 18 +-
src/gallium/auxiliary/vl/vl_winsys_dri.c | 2 +-
src/gallium/drivers/freedreno/freedreno_screen.c | 12 +-
src/gallium/drivers/nouveau/nouveau_screen.c | 12 +-
src/gallium/drivers/vc4/vc4_screen.c | 10 +-
src/gallium/include/state_tracker/drisw_api.h | 4 +
src/gallium/include/state_tracker/drm_driver.h | 32 +---
src/gallium/include/state_tracker/sw_winsys.h | 3 +-
src/gallium/include/state_tracker/winsys_handle.h | 42 +++++
src/gallium/state_trackers/dri/dri2.c | 20 +--
src/gallium/state_trackers/dri/drisw.c | 60 ++++++-
src/gallium/state_trackers/nine/swapchain9.c | 2 +-
src/gallium/state_trackers/xa/xa_tracker.c | 6 +-
src/gallium/winsys/i915/drm/i915_drm_buffer.c | 10 +-
src/gallium/winsys/intel/drm/intel_drm_winsys.c | 10 +-
src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 14 +-
src/gallium/winsys/svga/drm/vmw_screen_dri.c | 14 +-
src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 6 +-
src/gallium/winsys/sw/dri/dri_sw_winsys.c | 82 +++++++--
src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c | 12 +-
src/glx/drisw_glx.c | 192 +++++++++++++++++++---
src/glx/drisw_priv.h | 3 +
22 files changed, 421 insertions(+), 145 deletions(-)
create mode 100644 src/gallium/include/state_tracker/winsys_handle.h
--
2.4.2
More information about the mesa-dev
mailing list