cd3681976c
The general direction at this time is to phase out pread/write ioctls and not support them in future products. The ioctls have already been disabled in i915 for future products. This means libdrm must handle the absence of these ioctls. This patch does this by modifying drm_intel_gem_bo_subdata() and drm_intel_gem_bo_get_subdata() to do the read/write using the pread/pwrite ioctls first but when these ioctls are unavailable fall back to doing the read/write using a combination of mmap and memcpy. A similar solution was added to igt-gpu-tools in commit ad5eb02eb3 ("lib/ioctl_wrappers: Keep IGT working without pread/pwrite ioctls"). Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> |
||
---|---|---|
.gitlab-ci | ||
amdgpu | ||
android | ||
data | ||
etnaviv | ||
exynos | ||
freedreno | ||
include/drm | ||
intel | ||
libkms | ||
man | ||
nouveau | ||
omap | ||
radeon | ||
tegra | ||
tests | ||
vc4 | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
Android.common.mk | ||
Android.mk | ||
CONTRIBUTING.rst | ||
CleanSpec.mk | ||
Makefile.sources | ||
README.rst | ||
RELEASING | ||
core-symbols.txt | ||
libdrm.pc.in | ||
libdrm_lists.h | ||
libdrm_macros.h | ||
libsync.h | ||
meson.build | ||
meson_options.txt | ||
symbols-check.py | ||
util_double_list.h | ||
util_math.h | ||
xf86atomic.h | ||
xf86drm.c | ||
xf86drm.h | ||
xf86drmHash.c | ||
xf86drmHash.h | ||
xf86drmMode.c | ||
xf86drmMode.h | ||
xf86drmRandom.c | ||
xf86drmRandom.h | ||
xf86drmSL.c |
README.rst
libdrm - userspace library for drm ---------------------------------- This is libdrm, a userspace library for accessing the DRM, direct rendering manager, on Linux, BSD and other operating systems that support the ioctl interface. The library provides wrapper functions for the ioctls to avoid exposing the kernel interface directly, and for chipsets with drm memory manager, support for tracking relocations and buffers. New functionality in the kernel DRM drivers typically requires a new libdrm, but a new libdrm will always work with an older kernel. libdrm is a low-level library, typically used by graphics drivers such as the Mesa drivers, the X drivers, libva and similar projects. Compiling --------- To set up meson: meson builddir/ By default this will install into /usr/local, you can change your prefix with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after the initial meson setup). Then use ninja to build and install: ninja -C builddir/ install If you are installing into a system location you will need to run install separately, and as root.